Besuchen Sie das Zusammenfassungs-Cookbook, um ein Beispiel einer Implementierung der Zusammenfassung von Rechtsdokumenten mit Claude zu sehen.
Hier sind einige wichtige Indikatoren dafür, dass Sie ein LLM wie Claude zur Zusammenfassung von Rechtsdokumenten einsetzen sollten:
Es gibt keine einzige richtige Zusammenfassung für ein gegebenes Dokument. Ohne klare Anleitung kann es für Claude schwierig sein, zu bestimmen, welche Details einzubeziehen sind. Um optimale Ergebnisse zu erzielen, identifizieren Sie die spezifischen Informationen, die Sie in die Zusammenfassung aufnehmen möchten.
Wenn Sie beispielsweise eine Untermietvereinbarung zusammenfassen, möchten Sie möglicherweise die folgenden wichtigsten Punkte extrahieren:
details_to_extract = [
"Beteiligte Parteien (Untervermieter, Untermieter und ursprünglicher Vermieter)",
"Immobiliendetails (Adresse, Beschreibung und zulässige Nutzung)",
"Laufzeit und Miete (Startdatum, Enddatum, monatliche Miete und Kaution)",
"Verantwortlichkeiten (Nebenkosten, Wartung und Reparaturen)",
"Zustimmung und Mitteilungen (Zustimmung des Vermieters und Mitteilungsanforderungen)",
"Besondere Bestimmungen (Möbel, Parkplatz und Untermietbeschränkungen)",
]Die Bewertung der Qualität von Zusammenfassungen ist notorisch schwierig. Im Gegensatz zu vielen anderen Aufgaben der Verarbeitung natürlicher Sprache fehlt der Bewertung von Zusammenfassungen oft klare, objektive Metriken. Der Prozess kann sehr subjektiv sein, wobei verschiedene Leser verschiedene Aspekte einer Zusammenfassung schätzen. Hier sind Kriterien, die Sie bei der Bewertung der Leistung von Claude bei der Zusammenfassung von Rechtsdokumenten berücksichtigen möchten.
Weitere Informationen finden Sie in der Anleitung zum Etablieren von Erfolgskriterien.
Die Modellgenauigkeit ist äußerst wichtig bei der Zusammenfassung von Rechtsdokumenten. Claude Opus 4.7 ist eine ausgezeichnete Wahl für Anwendungsfälle wie diesen, bei denen hohe Genauigkeit erforderlich ist. Wenn die Größe und Menge Ihrer Dokumente so groß ist, dass die Kosten zu einem Problem werden, können Sie auch ein kleineres Modell wie Claude Haiku 4.5 verwenden.
Um diese Kosten zu schätzen, finden Sie hier einen Vergleich der Kosten für die Zusammenfassung von 1.000 Untermietvereinbarungen mit Sonnet und Haiku:
Inhaltsgröße
Geschätzte Token
Claude Opus 4.7 geschätzte Kosten
Claude Haiku 3 geschätzte Kosten
Bevor Sie mit der Zusammenfassung von Dokumenten beginnen, müssen Sie Ihre Daten vorbereiten. Dies umfasst das Extrahieren von Text aus PDFs, das Bereinigen des Textes und das Sicherstellen, dass er von Claude verarbeitet werden kann.
Hier ist eine Demonstration dieses Prozesses auf einer Beispiel-PDF:
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])
# Remove extra whitespace
text = re.sub(r"\s+", " ", text)
# Remove page numbers
text = re.sub(r"\n\s*\d+\s*\n", "\n", text)
return text
# Create the full URL from the GitHub repository
url = "https://raw.githubusercontent.com/anthropics/anthropic-cookbook/main/skills/summarization/data/Sample Sublease Agreement.pdf"
url = url.replace(" ", "%20")
# Download the PDF file into memory
response = requests.get(url)
# Load the PDF from memory
pdf_file = BytesIO(response.content)
document_text = get_llm_text(pdf_file)
print(document_text[:50000])In diesem Beispiel laden Sie zunächst eine PDF einer Beispiel-Untermietvereinbarung herunter, die im Zusammenfassungs-Cookbook verwendet wird. Diese Vereinbarung stammt aus einer öffentlich verfügbaren Untermietvereinbarung von der sec.gov-Website.
Das Beispiel verwendet die pypdf-Bibliothek, um den Inhalt der PDF zu extrahieren und in Text umzuwandeln. Die Textdaten werden dann bereinigt, indem zusätzliche Leerzeichen und Seitenzahlen entfernt werden.
Claude kann sich an verschiedene Zusammenfassungsstile anpassen. Sie können die Details des Prompts ändern, um Claude anzuleiten, ausführlicher oder weniger ausführlich zu sein, mehr oder weniger technische Terminologie einzubeziehen oder eine höhere oder niedrigere Zusammenfassung des Kontexts bereitzustellen.
Hier ist ein Beispiel, wie Sie einen Prompt erstellen, der sicherstellt, dass die generierten Zusammenfassungen eine konsistente Struktur bei der Analyse von Untermietvereinbarungen befolgen:
# Initialize the Anthropic client
client = anthropic.Anthropic()
def summarize_document(
text, details_to_extract, model="claude-opus-4-7", max_tokens=1000
):
# Format the details to extract to be placed within the prompt's context
details_to_extract_str = "\n".join(details_to_extract)
# Prompt the model to summarize the sublease agreement
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)Dieser Code implementiert eine summarize_document-Funktion, die Claude verwendet, um den Inhalt einer Untermietvereinbarung zusammenzufassen. Die Funktion akzeptiert eine Textzeichenkette und eine Liste von zu extrahierenden Details als Eingaben. In diesem Beispiel ruft der Code die Funktion mit den Variablen document_text und details_to_extract auf, die in den vorherigen Code-Snippets definiert wurden.
Innerhalb der Funktion wird ein Prompt für Claude generiert, der das zusammenzufassende Dokument, die zu extrahierenden Details und spezifische Anweisungen zur Zusammenfassung des Dokuments enthält. Der Prompt weist Claude an, mit einer Zusammenfassung jedes zu extrahierenden Details zu antworten, die in XML-Headern verschachtelt ist.
Da der Code jeden Abschnitt der Zusammenfassung innerhalb von Tags ausgibt, kann jeder Abschnitt leicht als Nachbearbeitungsschritt analysiert werden. Dieser Ansatz ermöglicht strukturierte Zusammenfassungen, die für Ihren Anwendungsfall angepasst werden können, sodass jede Zusammenfassung dem gleichen Muster folgt.
Das Prompting erfordert oft Tests und Optimierungen, um produktionsreif zu sein. Um die Bereitschaft Ihrer Lösung zu bestimmen, bewerten Sie die Qualität Ihrer Zusammenfassungen mit einem systematischen Prozess, der quantitative und qualitative Methoden kombiniert. Die Erstellung einer starken empirischen Bewertung basierend auf Ihren definierten Erfolgskriterien ermöglicht es Ihnen, Ihre Prompts zu optimieren. Hier sind einige Metriken, die Sie möglicherweise in Ihre empirische Bewertung aufnehmen möchten:
Hier sind einige zusätzliche Überlegungen, die Sie bei der Bereitstellung Ihrer Lösung in der Produktion beachten sollten.
Stellen Sie sicher, dass keine Haftung besteht: Verstehen Sie die rechtlichen Auswirkungen von Fehlern in den Zusammenfassungen, die zu rechtlicher Haftung für Ihre Organisation oder Ihre Kunden führen könnten. Geben Sie Haftungsausschlüsse oder rechtliche Hinweise ab, die klarstellen, dass die Zusammenfassungen von KI generiert werden und von Rechtsanwälten überprüft werden sollten.
Behandeln Sie verschiedene Dokumenttypen: Diese Anleitung beschreibt, wie Sie Text aus PDFs extrahieren. In der Praxis können Dokumente in verschiedenen Formaten vorliegen (PDFs, Word-Dokumente, Textdateien usw.). Stellen Sie sicher, dass Ihre Datenextraktions-Pipeline alle Dateiformate konvertieren kann, die Sie erwarten zu erhalten.
Parallelisieren Sie API-Aufrufe an Claude: Lange Dokumente mit einer großen Anzahl von Token können bis zu eine Minute dauern, bis Claude eine Zusammenfassung generiert. Für große Dokumentsammlungen möchten Sie möglicherweise API-Aufrufe an Claude parallel senden, damit die Zusammenfassungen in angemessener Zeit abgeschlossen werden können. Beachten Sie Anthropics Ratenlimits, um die maximale Anzahl von API-Aufrufen zu bestimmen, die parallel durchgeführt werden können.
In komplexen Szenarien kann es hilfreich sein, zusätzliche Strategien in Betracht zu ziehen, um die Leistung über standardmäßige Prompt-Engineering-Techniken hinaus zu verbessern. Hier sind einige fortgeschrittene Strategien:
Die Zusammenfassung von Rechtsdokumenten beinhaltet oft die Behandlung langer Dokumente oder vieler verwandter Dokumente gleichzeitig, sodass Sie das Kontextfenster von Claude überschreiten. Sie können eine Chunking-Methode namens Meta-Zusammenfassung verwenden, um diesen Anwendungsfall zu behandeln. Diese Technik beinhaltet das Aufteilen von Dokumenten in kleinere, handhabbare Chunks und das separate Verarbeiten jedes Chunks. Sie können dann die Zusammenfassungen jedes Chunks kombinieren, um eine Meta-Zusammenfassung des gesamten Dokuments zu erstellen.
Hier ist ein Beispiel, wie Sie Meta-Zusammenfassung durchführen:
# Initialize the Anthropic client
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-7", max_tokens=1000
):
# Format the details to extract to be placed within the prompt's context
details_to_extract_str = "\n".join(details_to_extract)
# Iterate over chunks and summarize each one
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)Die summarize_long_document-Funktion baut auf der früheren summarize_document-Funktion auf, indem sie das Dokument in kleinere Chunks aufteilt und jeden Chunk einzeln zusammenfasst.
Der Code erreicht dies, indem er die summarize_document-Funktion auf jeden Chunk von 20.000 Zeichen im ursprünglichen Dokument anwendet. Die einzelnen Zusammenfassungen werden dann kombiniert, und eine endgültige Zusammenfassung wird aus diesen Chunk-Zusammenfassungen erstellt.
Beachten Sie, dass die summarize_long_document-Funktion für die Beispiel-PDF nicht unbedingt erforderlich ist, da das gesamte Dokument in Claudes Kontextfenster passt. Sie wird jedoch für Dokumente, die Claudes Kontextfenster überschreiten, oder bei der Zusammenfassung mehrerer verwandter Dokumente zusammen unverzichtbar. Unabhängig davon erfasst diese Meta-Zusammenfassungstechnik oft zusätzliche wichtige Details in der endgültigen Zusammenfassung, die im früheren Single-Summary-Ansatz übersehen wurden.
Das Durchsuchen einer Dokumentsammlung mit einem LLM beinhaltet normalerweise Retrieval-Augmented Generation (RAG). In Szenarien mit großen Dokumenten oder wenn eine präzise Informationsbeschaffung entscheidend ist, kann ein grundlegender RAG-Ansatz jedoch unzureichend sein. Zusammengefasste indizierte Dokumente ist ein fortgeschrittener RAG-Ansatz, der eine effizientere Möglichkeit zur Bewertung von Dokumenten für die Beschaffung bietet und weniger Kontext als traditionelle RAG-Methoden verwendet. Bei diesem Ansatz generieren Sie zunächst mit Claude eine prägnante Zusammenfassung für jedes Dokument in Ihrem Corpus und verwenden dann Claude, um die Relevanz jeder Zusammenfassung für die gestellte Frage zu bewerten. Weitere Details zu diesem Ansatz, einschließlich eines Code-basierten Beispiels, finden Sie im Abschnitt zu zusammengefassten indizierten Dokumenten im Zusammenfassungs-Cookbook.
Eine weitere fortgeschrittene Technik zur Verbesserung der Fähigkeit von Claude, Zusammenfassungen zu generieren, ist Fine-Tuning. Fine-Tuning beinhaltet das Training von Claude auf einem benutzerdefinierten Datensatz, der speziell mit Ihren Anforderungen zur Zusammenfassung von Rechtsdokumenten übereinstimmt, um sicherzustellen, dass Claude sich an Ihren Anwendungsfall anpasst. Hier ist ein Überblick über die Durchführung von Fine-Tuning:
Identifizieren Sie Fehler: Beginnen Sie damit, Instanzen zu sammeln, in denen Claudes Zusammenfassungen zu kurz kommen – dies könnte das Fehlen kritischer Rechtsdetails, das Missverständnis von Kontext oder die Verwendung unangemessener Rechtsterminologie umfassen.
Kuratieren Sie einen Datensatz: Sobald Sie diese Probleme identifiziert haben, stellen Sie einen Datensatz dieser problematischen Beispiele zusammen. Dieser Datensatz sollte die ursprünglichen Rechtsdokumente zusammen mit Ihren korrigierten Zusammenfassungen enthalten, um sicherzustellen, dass Claude das gewünschte Verhalten lernt.
Führen Sie Fine-Tuning durch: Fine-Tuning beinhaltet das erneute Training des Modells auf Ihrem kuratierten Datensatz, um seine Gewichte und Parameter anzupassen. Dieses erneute Training hilft Claude, die spezifischen Anforderungen Ihrer Rechtsdomäne besser zu verstehen und verbessert seine Fähigkeit, Dokumente nach Ihren Standards zusammenzufassen.
Iterative Verbesserung: Fine-Tuning ist kein einmaliger Prozess. Während Claude weiterhin Zusammenfassungen generiert, können Sie iterativ neue Beispiele hinzufügen, bei denen es unterperformt hat, und seine Fähigkeiten weiter verfeinern. Im Laufe der Zeit wird diese kontinuierliche Feedback-Schleife zu einem Modell führen, das hochgradig spezialisiert auf Ihre Aufgaben zur Zusammenfassung von Rechtsdokumenten ist.
Sehen Sie sich ein vollständig implementiertes Code-basiertes Beispiel an, wie Sie Claude zur Zusammenfassung von Verträgen verwenden.
Erkunden Sie das Zitate-Cookbook-Rezept für Anleitungen zur Gewährleistung der Genauigkeit und Erklärbarkeit von Informationen.
Was this page helpful?