Claude 使用手册
独立第三方资料站 · 非 Anthropic / Claude 官方网站查阅条件,核对证据
API 开发

Claude 长上下文 API 实现思路:文档问答、对比与 RAG

从资料编号与 Token 预算开始,为长文档应用选择全文、检索或分层方案。

从需求选择上下文策略

长文档问答适合围绕具体证据回答;代码库分析应先识别入口和依赖,排除密钥、依赖目录及生成文件;多文档对比则应统一时期、单位和定义。并非所有任务都需要一次发送全部资料,百万容量也不代表输出可以无限长。

只查一个条款时可检索候选段落,比较全文结构时可考虑较大上下文。RAG 的检索可能漏掉证据,全文输入也可能漏读细节;应使用同一组人工答案比较效果,而不是认为任一架构普遍取代另一种。

一个有输入预算检查的 SDK 草图

下例按官方 Python SDK 的 Token 计数与 Messages 方法组织请求,模型 ID 和预算由部署配置提供,避免把旧版本写死。资料是虚构文本;代码仅通过本地语法检查,未安装 SDK、联网或验证真实响应。配置中的上限须按实际模型文档填写。

python · 示例
import os
import anthropic

def ask_documents(documents, question, input_budget):
    model = os.environ["CLAUDE_MODEL"]
    client = anthropic.Anthropic()
    blocks = [f"[{d['id']}] {d['source']}\n{d['text']}" for d in documents]
    prompt = "\n\n".join(blocks) + "\n\n问题:" + question
    system = "只依据材料回答;列出文档编号;缺证据时明确说明。"
    messages = [{"role": "user", "content": prompt}]
    counted = client.messages.count_tokens(model=model, system=system, messages=messages)
    if counted.input_tokens > input_budget:
        raise ValueError("超出输入预算:先检索或分批处理")
    return client.messages.create(
        model=model, max_tokens=1200, system=system, messages=messages
    )
需服务端环境和官方 SDK;未执行函数,不含真实密钥。

原创问答和对比流程

以两份虚构采购规范为例:D01 写“验收期五日”,D02 写“三个工作日”。先要求分别提取原句和文档编号,再问变化;答案应保留自然日与工作日的区别,而不是只说减少两天。对未知生效日期,输出“资料未说明”。

批量资料先生成目录及统一字段,再按候选文件回答。会议记录提取行动项时保留说话者和确认状态;书籍摘要应保留章节索引;合同材料只做条款定位与差异提示,重要法律判断由专业人员审核。

上线前的工程清单

对代码仓库的问答,应把结论绑定到提交版本和具体文件行号。一次请求能读到大量文件,也不意味着它实际执行了构建或理解所有运行时依赖;把静态推断、测试证据和未能访问的模块分别写清楚。

统计请求中的系统提示、工具与历史,预留输出空间,并注意 Token 计数是估计。固定资料的重复查询可评估缓存,不能把命中率或节省比例写死。记录实际 usage、首段延迟、完整耗时与证据命中情况。

给测试集加入无答案问题、冲突版本、缺页和恶意文档指令。模型输出一律视为待验证数据,资料中“忽略规则”不能变成应用授权。本文不提供真实账户性能或准确率结论。

参考来源

资料核对日期:2026-10-04。涉及产品与账户条件时,请以当前官方说明为准。