AI个人学习
和实操指南

Claude常见用例指南:法律摘要

本指南介绍了如何利用Claude的高级自然语言处理能力高效总结法律文件,提取关键信息并加速法律研究。借助Claude,您可以简化合同审查、诉讼准备和合规工作,节省时间并确保法律流程的准确性。

访问我们的 摘要食谱 ,查看使用Claude进行法律摘要的示例实现。

在使用Claude构建之前

决定是否使用Claude进行法律摘要

以下是一些使用像Claude这样的LLM对法律文件进行摘要的关键指示:

您希望高效且经济地审阅大量文件


人工进行大规模文件审阅可能耗时且成本高昂。Claude可以快速处理和总结大量法律文件,显著减少文件审阅所需的时间和成本。这项能力在尽职调查、合同分析或诉讼发现等任务中尤为宝贵,效率至关重要。

您需要自动提取关键元数据

Claude可以高效地从法律文件中提取并分类重要的元数据,如涉及的当事人、日期、合同条款或特定条款。这种自动化提取可以帮助组织信息,使搜索、分析和管理大量文件集更加容易。它在合同管理、合规检查或创建可搜索的法律信息数据库时特别有用。

您希望生成清晰、简明且标准化的摘要

Claude可以生成遵循预定格式的结构化摘要,使法律专业人员能够快速掌握各种文件的关键点。这些标准化摘要可以提高可读性,促进文件间的对比,并增强整体理解,尤其是在处理复杂的法律语言或技术术语时。

您需要为您的摘要提供准确的引用

在创建法律摘要时,适当的归属和引用对于确保可信度和符合法律标准至关重要。Claude可以被提示为所有引用的法律要点提供准确的引用,使法律专业人员更容易审查和验证所总结的信息。

您希望简化并加速法律研究过程

Claude可以通过快速分析大量判例法、法规和法律评论来协助法律研究。它可以识别相关先例,提取关键法律原则,并总结复杂的法律论点。这项能力可以显著加快研究过程,使法律专业人员能够专注于更高层次的分析和策略制定。

确定你希望摘要提取的细节

对于任何给定的文档,没有唯一正确的摘要。如果没有明确的方向,Claude 可能很难确定要包含哪些细节。为了获得最佳结果,请确定你希望在摘要中包含的具体信息。

例如,在总结一份转租协议时,你可能希望提取以下关键点:

details_to_extract = [
    '相关方(转租人、转租承租人和原出租人)',
    '物业详情(地址、描述和允许用途)', 
    '期限和租金(开始日期、结束日期、月租金和保证金)',
    '责任(公用设施、维护和维修)',
    '同意和通知(房东的同意和通知要求)',
    '特别条款(家具、停车位和转租限制)'
]

建立成功标准

评估摘要质量是一项众所周知的具有挑战性的任务。与许多其他自然语言处理任务不同,摘要的评估通常缺乏明确的、客观的指标。这个过程往往具有高度的主观性,不同的读者可能对摘要的不同方面重视程度不同。以下是你在评估 Claude 如何执行法律摘要时可能需要考虑的标准。

事实准确性

摘要应准确呈现文件中的事实、法律概念和关键点。

法律精准度

术语以及对法规、判例法或规章的引用必须正确,并符合法律标准。

简洁性

摘要应将法律文件压缩为核心要点,而不会遗漏重要细节。

一致性

如果是对多个文件进行摘要,大语言模型应对每个摘要保持一致的结构和处理方法。

可读性

文本应清晰且易于理解。如果受众不是法律专家,摘要中不应包含可能让受众困惑的法律术语。

偏见与公正性

摘要应呈现公正、无偏见的法律论点和立场。

查看我们的指南,了解更多关于 建立成功标准 的信息。


如何使用 Claude 总结法律文件

选择合适的 Claude 模型

在总结法律文件时,模型的准确性至关重要。Claude 3.5 Sonnet 是这种需要高准确性的用例的绝佳选择。如果文件的大小和数量较大,导致成本成为问题,也可以尝试使用较小的模型,例如 Claude 3 Haiku。

为了帮助估算这些成本,以下是使用 Sonnet 和 Haiku 总结 1,000 份转租协议的成本比较:

  • 内容规模
    • 协议数量:1,000
    • 每份协议字符数:300,000
    • 总字符数:300M
  • 估算的 Tokens
    • 输入 tokens:86M (假设 1 token 对应 3.5 个字符)
    • 每份摘要的输出 tokens:350
    • 总输出 tokens:350,000
  • Claude 3.5 Sonnet 估算成本
    • 输入 token 成本:86 MTok * $3.00/MTok = $258
    • 输出 token 成本:0.35 MTok * $15.00/MTok = $5.25
    • 总成本:$258.00 + $5.25 = $263.25
  • Claude 3 Haiku 估算成本
    • 输入 token 成本:86 MTok * $0.25/MTok = $21.50
    • 输出 token 成本:0.35 MTok * $1.25/MTok = $0.44
    • 总成本:$21.50 + $0.44 = $21.96

实际成本可能与这些估算有所不同。以上估算基于 prompting 章节中的示例。

将文件转换为 Claude 可处理的格式

在开始总结文件之前,您需要准备好数据。这涉及从 PDF 中提取文本、清理文本,并确保其可以被 Claude 处理。

以下是此过程在一个示例 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])

    # 去除多余的空格
    text = re.sub(r'\s+', ' ', text) 

    # 去除页码
    text = re.sub(r'\n\s*\d+\s*\n', '\n', text) 

    return text

# 从 GitHub 仓库创建完整的 URL
url = "https://raw.githubusercontent.com/anthropics/anthropic-cookbook/main/skills/summarization/data/Sample Sublease Agreement.pdf"
url = url.replace(" ", "%20")

# 下载 PDF 文件到内存中
response = requests.get(url)

# 从内存加载 PDF
pdf_file = BytesIO(response.content)

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

在此示例中,我们首先下载了一个转租协议的 PDF,该协议来自 summarization cookbook 。该协议来源于 sec.gov 网站 上公开的转租协议。

我们使用 pypdf 库提取 PDF 的内容并将其转换为文本。随后通过删除多余的空格和页码对文本数据进行清理。

构建强大的提示词

Claude 可以适应各种总结风格。你可以根据需要调整提示词的细节,以引导 Claude 生成更详细或更简洁的内容,包含更多或更少的专业术语,或提供更高或更低层次的上下文总结。

以下是一个示例,展示如何创建一个提示词,确保在分析转租协议时生成的摘要遵循一致的结构:

import anthropic

# 初始化 Anthropic 客户端
client = anthropic.Anthropic()

def summarize_document(text, details_to_extract, model="claude-3-5-sonnet-20240620", max_tokens=1000):

    # 将要提取的细节格式化为提示词上下文的一部分
    details_to_extract_str = '\n'.join(details_to_extract)

    # 提示模型总结转租协议
    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]
    // 根据需要添加更多细节
    </parties involved>

    如果文档中没有明确说明某些信息,请标注为「未说明」。不要使用前言。

    转租协议内容:
    {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},
            {"role": "assistant", "content": "Here is the summary of the sublease agreement: <summary>"}
        ],
        stop_sequences=["</summary>"]
    )

    return response.content[0].text

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

此代码实现了一个 summarize_document 函数,使用 Claude 来总结转租协议的内容。该函数接受一个文本字符串和一个要提取的细节列表作为输入。在此示例中,我们使用之前代码片段中定义的 document_text 和 details_to_extract 变量调用此函数。

在函数内部,会为 Claude 生成一个提示词,其中包含要总结的文档、要提取的细节,以及总结文档的具体指令。提示词指示 Claude 以嵌套在 XML 标签中的形式返回每个提取细节的摘要。

由于我们决定在标签内输出摘要的每个部分,因此可以轻松地在后处理步骤中解析每个部分。这种方法可以生成结构化的摘要,适应你的使用场景,并确保每个摘要都遵循相同的模式。

评估你的提示词

提示词通常需要经过测试和优化才能投入生产使用。为了确定你的解决方案是否准备就绪,使用系统化的流程结合定量和定性方法来评估摘要的质量。创建基于已定义成功标准的强有力的实证评估将帮助你优化提示词。以下是你可能想在评估中包含的一些指标:

ROUGE 分数

BLEU 分数

上下文嵌入相似度

基于 LLM 的评分

人工评估

部署提示

在将解决方案部署到生产环境时,请记住以下几点注意事项。

  1. 确保无责任风险: 了解摘要中的错误可能带来的法律影响,这可能会给您的组织或客户带来法律责任。提供免责声明或法律声明,说明摘要是由 AI 生成的,需由法律专业人士进行审核。
  2. 处理多种文档类型: 在本指南中,我们讨论了如何从 PDF 中提取文本。在实际应用中,文档可能有多种格式(PDF,Word 文档,文本文件等)。确保您的数据提取流程可以转换您可能收到的所有文件格式。
  3. 并行调用 Claude 的 API: 对于含有大量 Token 的长文档,Claude 生成摘要可能需要一分钟的时间。对于大型文档集合,您可能需要并行发送 API 调用给 Claude,以确保摘要在合理的时间内完成。请参考 Anthropic 的 速率限制 来确定可以并行执行的最大 API 调用数量。

提高性能

在复杂场景中,除了标准的 提示工程技术 之外,考虑一些额外策略来提高性能可能是有益的。以下是一些高级策略:

执行元摘要以总结长文档

法律摘要通常涉及处理长文档或多个相关文档,这可能超出 Claude 的上下文窗口。您可以使用一种称为元摘要的分块方法来应对这种情况。该技术包括将文档拆分为更小的、可管理的块,然后分别处理每个块。之后,您可以将每个块的摘要组合起来,生成整个文档的元摘要。

以下是如何执行元摘要的示例:

import anthropic

# 初始化 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-3-5-sonnet-20240620", max_tokens=1000):

    # 格式化提取细节以放置在提示的上下文中
    details_to_extract_str = '\n'.join(details_to_extract)

    # 遍历块并分别对每个块进行摘要
    chunk_summaries = [summarize_document(chunk, details_to_extract, model=model, max_tokens=max_tokens) for chunk in chunk_text(text)]

    final_summary_prompt = f"""

    你正在查看多个相关文档的分块摘要。
    将以下来自不同可信来源的文档摘要整合成连贯的整体摘要:

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

    重点关注以下关键方面:
    {details_to_extract_str})

    将摘要以嵌套在每个部分的 XML 标头下的项目符号点的形式提供。例如:

    <parties involved>
    - 转租方:[姓名]
    // 根据需要添加更多细节
    </parties involved>

    如果文档中未明确说明任何信息,请注明「未指定」。不要加入前言。
    """

    response = client.messages.create(
        model=model,
        max_tokens=max_tokens,
        system="你是一名总结文档笔记的法律专家。",
        messages=[
            {"role": "user",  "content": final_summary_prompt},
            {"role": "assistant", "content": "以下是转租协议的摘要:<summary>"}

        ],
        stop_sequences=["</summary>"]
    )

    return response.content[0].text

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

summarize_long_document 函数基于之前的 summarize_document 函数,通过将文档拆分为较小的块,并分别对每个块进行摘要来实现此功能。

该代码通过将 summarize_document 函数应用于原始文档中的每个 20,000 字符块来实现这一点。然后将每个块的摘要组合起来,最终生成一个由这些块摘要构成的总结。

注意,对于我们的示例 PDF 来说,summarize_long_document 函数并非严格必要,因为整个文档可以适应 Claude 的上下文窗口。然而,当文档超过 Claude 的上下文窗口或需要总结多个相关文档时,此方法至关重要。无论如何,这种元摘要技术通常可以在最终摘要中捕获更多在早期单次摘要方法中遗漏的重要细节。

使用摘要索引文档来探索大量文档

使用大语言模型(LLM)搜索文档集合通常涉及检索增强生成(RAG)。然而,在涉及大文档或精确信息检索至关重要的场景中,基本的 RAG 方法可能不足。摘要索引文档是一种高级 RAG 方法,它提供了一种更高效的文档检索排名方式,使用的上下文比传统的 RAG 方法少。在这种方法中,首先使用 Claude 为语料库中的每个文档生成简明摘要,然后使用 Clade 对每个摘要与查询的相关性进行排名。有关此方法的更多详细信息,包括基于代码的示例,请查看 summarization cookbook 中的摘要索引文档部分。

微调 Claude 以学习您的数据集

另一种提高 Claude 生成摘要能力的高级技术是微调。微调包括在一个与您的法律摘要需求高度一致的自定义数据集上训练 Claude,确保其适应您的使用场景。以下是执行微调的概述:

  1. 识别错误: 首先收集 Claude 摘要不符合要求的实例——这可能包括遗漏关键法律细节、误解上下文或使用不当的法律术语。
  2. 编制数据集: 一旦识别出这些问题,编译一个包含这些问题示例的数据集。该数据集应包括原始法律文档以及您修正后的摘要,确保 Claude 学习到所需的行为。
  3. 执行微调: 微调涉及在您整理的数据集上重新训练模型,以调整其权重和参数。此重新训练有助于 Claude 更好地理解您法律领域的特定要求,提升其根据您的标准总结文档的能力。
  4. 迭代改进: 微调并非一次性过程。当 Claude 继续生成摘要时,您可以迭代添加新的表现欠佳的示例,进一步完善其能力。随着时间的推移,这种持续的反馈循环将产生一个高度专业化的模型,专门用于您的法律摘要任务。

微调目前仅通过 Amazon Bedrock 提供。更多详细信息请参阅 AWS 发布博客

AI轻松学

普通人的AI入门指南

帮助你以低成本、零基础学会如何利用AI工具。AI就像办公软件一样,是每个人的必备技能。 掌握AI会让你在求职中占据优势,在未来的工作和学习中事半功倍。

查看详情>
未经允许不得转载:首席AI分享圈 » Claude常见用例指南:法律摘要

首席AI分享圈

首席AI分享圈专注于人工智能学习,提供全面的AI学习内容、AI工具和实操指导。我们的目标是通过高质量的内容和实践经验分享,帮助用户掌握AI技术,一起挖掘AI的无限潜能。无论您是AI初学者还是资深专家,这里都是您获取知识、提升技能、实现创新的理想之地。

联系我们
zh_CN简体中文