Claude Platform Docs
  • Mensajes
  • Agentes gestionados
  • Administración

Search...
⌘K
Casos de uso
Descripción generalEnrutamiento de ticketsAgente de atención al clienteModeración de contenidoResumen legal
Ingeniería de prompts
Descripción generalMejores prácticas de promptsPrompts para Claude Fable 5Prompts para Claude Opus 4.8Prompts para Claude Sonnet 5Herramientas de prompts de la Consola
Probar y evaluar
Definir el éxito y crear evaluacionesUso de la herramienta de evaluación en la ConsolaReducir la latencia
Reforzar las barreras de protección
Reducir alucinacionesAumentar la consistencia de salidaMitigar jailbreaksReducir la filtración de prompts
Referencia
Glosario

Log in
Resumen legal
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Claude Platform Docs

Solutions

  • AI agents
  • Code modernization
  • Coding
  • Customer support
  • Education
  • Financial services
  • Government
  • Life sciences

Partners

  • Claude on AWS
  • Claude on Google Cloud

Learn

  • Blog
  • Courses
  • Use cases
  • Connectors
  • Customer stories
  • Engineering at Anthropic
  • Events
  • Powered by Claude
  • Service partners
  • Startups program

Company

  • Anthropic
  • Careers
  • Economic Futures
  • Research
  • News
  • Responsible Scaling Policy
  • Security and compliance
  • Transparency

Learn

  • Blog
  • Courses
  • Use cases
  • Connectors
  • Customer stories
  • Engineering at Anthropic
  • Events
  • Powered by Claude
  • Service partners
  • Startups program

Help and security

  • Availability
  • Status
  • Support
  • Discord

Terms and policies

  • Privacy policy
  • Responsible disclosure policy
  • Terms of service: Commercial
  • Terms of service: Consumer
  • Usage policy
Mejores prácticas/Casos de uso

Resumen de documentos legales

Esta guía explica cómo aprovechar las capacidades avanzadas de procesamiento de lenguaje natural de Claude para resumir documentos legales de manera eficiente, extrayendo información clave y agilizando la investigación jurídica. Con Claude, puedes optimizar la revisión de contratos, la preparación de litigios y el trabajo regulatorio, ahorrando tiempo y garantizando precisión en tus procesos legales.

Visita el cookbook de resumen para ver un ejemplo de implementación de resumen legal usando Claude.

Antes de construir con Claude

Decide si usar Claude para el resumen de documentos legales

Estos son algunos indicadores clave de que deberías emplear un LLM como Claude para resumir documentos legales:

Determina los detalles que quieres que el resumen extraiga

No existe un único resumen correcto para un documento dado. Sin una dirección clara, puede ser difícil para Claude determinar qué detalles incluir. Para lograr resultados óptimos, identifica la información específica que deseas incluir en el resumen.

Por ejemplo, al resumir un contrato de subarrendamiento, podrías querer extraer los siguientes puntos clave:

details_to_extract = [
    "Parties involved (sublessor, sublessee, and original lessor)",
    "Property details (address, description, and permitted use)",
    "Term and rent (start date, end date, monthly rent, and security deposit)",
    "Responsibilities (utilities, maintenance, and repairs)",
    "Consent and notices (landlord's consent, and notice requirements)",
    "Special provisions (furniture, parking, and subletting restrictions)",
]

Establece criterios de éxito

Evaluar la calidad de los resúmenes es una tarea notoriamente difícil. A diferencia de muchas otras tareas de procesamiento de lenguaje natural, la evaluación de resúmenes a menudo carece de métricas claras y objetivas. El proceso puede ser altamente subjetivo, ya que diferentes lectores valoran diferentes aspectos de un resumen. Estos son algunos criterios que podrías considerar al evaluar qué tan bien Claude realiza el resumen de documentos legales.

Consulta la guía sobre cómo establecer criterios de éxito para obtener más información.


Cómo resumir documentos legales usando Claude

Selecciona el modelo de Claude adecuado

La precisión del modelo es extremadamente importante al resumir documentos legales. Claude Opus 4.8 es una excelente opción para casos de uso como este, donde se requiere alta precisión. Si el tamaño y la cantidad de tus documentos son grandes, de modo que los costos comienzan a ser una preocupación, también puedes probar usar un modelo más pequeño como Claude Haiku 4.5.

Para ayudar a estimar estos costos, a continuación se muestra una comparación del costo de resumir 1.000 contratos de subarrendamiento usando tanto Opus como Haiku:

  • Tamaño del contenido

    • Número de contratos: 1.000
    • Caracteres por contrato: 300.000
    • Total de caracteres: 300M
  • Tokens estimados

    • Tokens de entrada: 86M (asumiendo 1 token por cada 3,5 caracteres)
    • Tokens de salida por resumen: 350
    • Total de tokens de salida: 350.000
  • Costo estimado de Claude Opus 4.8

    • Costo de tokens de entrada: 86 MTok * $5,00/MTok = $430,00 USD
    • Costo de tokens de salida: 0,35 MTok * $25,00/MTok = $8,75 USD
    • Costo total: $430,00 + $8,75 = $438,75 USD
  • Costo estimado de Claude Haiku 4.5

    • Costo de tokens de entrada: 86 MTok * $1,00/MTok = $86,00 USD
    • Costo de tokens de salida: 0,35 MTok * $5,00/MTok = $1,75 USD
    • Costo total: $86,00 + $1,75 = $87,75 USD

Los costos reales pueden diferir de estas estimaciones. Estas estimaciones se basan en el ejemplo destacado en la sección sobre prompting.

Transforma los documentos a un formato que Claude pueda procesar

Antes de comenzar a resumir documentos, necesitas preparar tus datos. Esto implica extraer texto de archivos PDF, limpiar el texto y asegurarte de que esté listo para ser procesado por Claude.

Aquí tienes una demostración de este proceso en un PDF de muestra:

from io import BytesIO
import re

import pypdf
import requests


def get_llm_text(pdf_file):
    reader = pypdf.PdfReader(pdf_file)
    text = "\n".join([page.extract_text() for page in reader.pages])

    # Elimina los números de página
    text = re.sub(r"\n\s*\d+\s*\n", "\n", text)

    # Elimina los espacios en blanco adicionales
    text = re.sub(r"\s+", " ", text)

    return text


# Crea la URL completa a partir del repositorio de GitHub
url = "https://raw.githubusercontent.com/anthropics/anthropic-cookbook/main/skills/summarization/data/Sample Sublease Agreement.pdf"
url = url.replace(" ", "%20")

# Descarga el archivo PDF en memoria
response = requests.get(url)

# Carga el PDF desde la memoria
pdf_file = BytesIO(response.content)

document_text = get_llm_text(pdf_file)
print(document_text[:50000])

En este ejemplo, primero descargas un PDF de un contrato de subarrendamiento de muestra utilizado en el cookbook de resumen. Este contrato se obtuvo de un contrato de subarrendamiento disponible públicamente en el sitio web de sec.gov.

El ejemplo usa la biblioteca pypdf para extraer el contenido del PDF y convertirlo a texto. Luego, los datos de texto se limpian eliminando los números de página y los espacios en blanco adicionales.

Construye un prompt sólido

Claude puede adaptarse a varios estilos de resumen. Puedes cambiar los detalles del prompt para guiar a Claude a ser más o menos detallado, incluir más o menos terminología técnica, o proporcionar un resumen de mayor o menor nivel del contexto en cuestión.

Aquí tienes un ejemplo de cómo crear un prompt que garantice que los resúmenes generados sigan una estructura consistente al analizar contratos de subarrendamiento:

Python
# Inicializa el cliente de Anthropic
client = anthropic.Anthropic()


def summarize_document(
    text, details_to_extract, model="claude-opus-4-8", max_tokens=1000
):
    # Formatea los detalles a extraer para colocarlos dentro del contexto del prompt
    details_to_extract_str = "\n".join(details_to_extract)

    # Solicita al modelo que resuma el contrato de subarrendamiento
    prompt = f"""Summarize the following sublease agreement. Focus on these key aspects:

    {details_to_extract_str}

    Provide the summary in bullet points nested within the XML header for each section. For example:

    <parties involved>
    - Sublessor: [Name]
    // Add more details as needed
    </parties involved>

    If any information is not explicitly stated in the document, note it as "Not specified". Do not preamble.

    Sublease agreement text:
    {text}
    """

    response = client.messages.create(
        model=model,
        max_tokens=max_tokens,
        system="You are a legal analyst specializing in real estate law, known for highly accurate and detailed summaries of sublease agreements.",
        messages=[
            {"role": "user", "content": prompt},
        ],
    )

    return response.content[0].text


sublease_summary = summarize_document(document_text, details_to_extract)
print(sublease_summary)

Este código implementa una función summarize_document que usa Claude para resumir el contenido de un contrato de subarrendamiento. La función acepta una cadena de texto y una lista de detalles a extraer como entradas. En este ejemplo, el código llama a la función con las variables document_text y details_to_extract que se definieron en los fragmentos de código anteriores.

Dentro de la función, se genera un prompt para Claude, que incluye el documento a resumir, los detalles a extraer e instrucciones específicas para resumir el documento. El prompt indica a Claude que responda con un resumen de cada detalle a extraer anidado dentro de encabezados XML.

Debido a que el código genera cada sección del resumen dentro de etiquetas, cada sección puede analizarse fácilmente como un paso de posprocesamiento. Este enfoque permite resúmenes estructurados que pueden adaptarse a tu caso de uso, de modo que cada resumen siga el mismo patrón.

Evalúa tu prompt

El prompting a menudo requiere pruebas y optimización para estar listo para producción. Para determinar si tu solución está lista, evalúa la calidad de tus resúmenes usando un proceso sistemático que combine métodos cuantitativos y cualitativos. Crear una evaluación empírica sólida basada en tus criterios de éxito definidos te permite optimizar tus prompts. Estas son algunas métricas que podrías incluir en tu evaluación empírica:

Implementa tu prompt

Estas son algunas consideraciones adicionales a tener en cuenta al implementar tu solución en producción.

  1. Asegúrate de no incurrir en responsabilidad legal: Comprende las implicaciones legales de los errores en los resúmenes, que podrían generar responsabilidad legal para tu organización o clientes. Proporciona descargos de responsabilidad o avisos legales que aclaren que los resúmenes son generados por IA y deben ser revisados por profesionales del derecho.

  2. Maneja diversos tipos de documentos: Esta guía explica cómo extraer texto de archivos PDF. En el mundo real, los documentos pueden venir en una variedad de formatos (PDF, documentos de Word, archivos de texto, etc.). Asegúrate de que tu pipeline de extracción de datos pueda convertir todos los formatos de archivo que esperas recibir.

  3. Paraleliza las llamadas a la API de Claude: Los documentos largos con una gran cantidad de tokens pueden requerir hasta un minuto para que Claude genere un resumen. Para colecciones grandes de documentos, es posible que desees enviar llamadas a la API de Claude en paralelo para que los resúmenes puedan completarse en un plazo razonable. Consulta los límites de velocidad de Anthropic para determinar la cantidad máxima de llamadas a la API que se pueden realizar en paralelo.


Mejora el rendimiento

En escenarios complejos, puede ser útil considerar estrategias adicionales para mejorar el rendimiento más allá de las técnicas estándar de ingeniería de prompts. Estas son algunas estrategias avanzadas:

Realiza meta-resumen para resumir documentos largos

El resumen de documentos legales a menudo implica manejar documentos largos o muchos documentos relacionados a la vez, de modo que se supera la ventana de contexto de Claude. Puedes usar un método de fragmentación conocido como meta-resumen para manejar este caso de uso. Esta técnica implica dividir los documentos en fragmentos más pequeños y manejables, y luego procesar cada fragmento por separado. Después puedes combinar los resúmenes de cada fragmento para crear un meta-resumen de todo el documento.

Aquí tienes un ejemplo de cómo realizar un meta-resumen:

Python
# Inicializa el cliente de Anthropic
client = anthropic.Anthropic()


def chunk_text(text, chunk_size=20000):
    return [text[i : i + chunk_size] for i in range(0, len(text), chunk_size)]


def summarize_long_document(
    text, details_to_extract, model="claude-opus-4-8", max_tokens=1000
):
    # Formatea los detalles a extraer para colocarlos dentro del contexto del prompt
    details_to_extract_str = "\n".join(details_to_extract)

    # Itera sobre los fragmentos y resume cada uno
    chunk_summaries = [
        summarize_document(
            chunk, details_to_extract, model=model, max_tokens=max_tokens
        )
        for chunk in chunk_text(text)
    ]

    final_summary_prompt = f"""

    You are looking at the chunked summaries of multiple documents that are all related.
    Combine the following summaries of the document from different truthful sources into a coherent overall summary:

    <chunked_summaries>
    {"".join(chunk_summaries)}
    </chunked_summaries>

    Focus on these key aspects:
    {details_to_extract_str}

    Provide the summary in bullet points nested within the XML header for each section. For example:

    <parties involved>
    - Sublessor: [Name]
    // Add more details as needed
    </parties involved>

    If any information is not explicitly stated in the document, note it as "Not specified". Do not preamble.
    """

    response = client.messages.create(
        model=model,
        max_tokens=max_tokens,
        system="You are a legal expert that summarizes notes on one document.",
        messages=[
            {"role": "user", "content": final_summary_prompt},
        ],
    )

    return response.content[0].text


long_summary = summarize_long_document(document_text, details_to_extract)
print(long_summary)

La función summarize_long_document se basa en la función summarize_document anterior, dividiendo el documento en fragmentos más pequeños y resumiendo cada fragmento individualmente.

El código logra esto aplicando la función summarize_document a cada fragmento de 20.000 caracteres dentro del documento original. Luego, los resúmenes individuales se combinan y se crea un resumen final a partir de estos resúmenes de fragmentos.

Ten en cuenta que la función summarize_long_document no es estrictamente necesaria para el PDF de ejemplo, ya que todo el documento cabe dentro de la ventana de contexto de Claude. Sin embargo, se vuelve esencial para documentos que exceden la ventana de contexto de Claude o al resumir múltiples documentos relacionados juntos. De todos modos, esta técnica de meta-resumen a menudo captura detalles importantes adicionales en el resumen final que se omitieron en el enfoque anterior de resumen único.

Usa documentos indexados por resumen para explorar una gran colección de documentos

Buscar en una colección de documentos con un LLM generalmente implica "retrieval-augmented generation" (generación aumentada por recuperación), o RAG. Sin embargo, en escenarios que involucran documentos grandes o cuando la recuperación precisa de información es crucial, un enfoque básico de RAG puede ser insuficiente. Los documentos indexados por resumen son un enfoque avanzado de RAG que proporciona una forma más eficiente de clasificar documentos para su recuperación, usando menos contexto que los métodos tradicionales de RAG. En este enfoque, primero usas Claude para generar un resumen conciso de cada documento en tu corpus, y luego usas Claude para clasificar la relevancia de cada resumen con respecto a la consulta que se está realizando. Para obtener más detalles sobre este enfoque, incluido un ejemplo basado en código, consulta la sección de documentos indexados por resumen en el cookbook de resumen.

Aplica fine-tuning a Claude para que aprenda de tu conjunto de datos

Otra técnica avanzada para mejorar la capacidad de Claude de generar resúmenes es el "fine-tuning" (ajuste fino). El fine-tuning implica entrenar a Claude con un conjunto de datos personalizado que se alinea específicamente con tus necesidades de resumen legal, asegurando que Claude se adapte a tu caso de uso. Aquí tienes una descripción general de cómo realizar el fine-tuning:

  1. Identifica errores: Comienza recopilando instancias en las que los resúmenes de Claude no cumplen con las expectativas; esto podría incluir la omisión de detalles legales críticos, la mala interpretación del contexto o el uso de terminología legal inapropiada.

  2. Selecciona un conjunto de datos: Una vez que hayas identificado estos problemas, compila un conjunto de datos con estos ejemplos problemáticos. Este conjunto de datos debe incluir los documentos legales originales junto con tus resúmenes corregidos, asegurando que Claude aprenda el comportamiento deseado.

  3. Realiza el fine-tuning: El fine-tuning implica reentrenar el modelo con tu conjunto de datos seleccionado para ajustar sus pesos y parámetros. Este reentrenamiento ayuda a Claude a comprender mejor los requisitos específicos de tu dominio legal, mejorando su capacidad para resumir documentos según tus estándares.

  4. Mejora iterativa: El fine-tuning no es un proceso único. A medida que Claude continúa generando resúmenes, puedes agregar iterativamente nuevos ejemplos en los que haya tenido un rendimiento deficiente, refinando aún más sus capacidades. Con el tiempo, este ciclo de retroalimentación continua dará como resultado un modelo altamente especializado para tus tareas de resumen legal.


El fine-tuning actualmente solo está disponible a través de Amazon Bedrock. Hay detalles adicionales disponibles en el blog de lanzamiento de AWS.

Cookbook de resumen


Consulta un ejemplo completamente implementado basado en código de cómo usar Claude para resumir contratos.


Cookbook de citas


Explora la receta del cookbook de citas para obtener orientación sobre cómo garantizar la precisión y la explicabilidad de la información.

Was this page helpful?

  • Antes de construir con Claude
  • Decide si usar Claude para el resumen de documentos legales
  • Determina los detalles que quieres que el resumen extraiga
  • Establece criterios de éxito
  • Cómo resumir documentos legales usando Claude
  • Selecciona el modelo de Claude adecuado
  • Transforma los documentos a un formato que Claude pueda procesar
  • Construye un prompt sólido
  • Evalúa tu prompt
  • Implementa tu prompt
  • Mejora el rendimiento
  • Realiza meta-resumen para resumir documentos largos
  • Usa documentos indexados por resumen para explorar una gran colección de documentos
  • Aplica fine-tuning a Claude para que aprenda de tu conjunto de datos