TL;DR:长文档不要一次性直接上传。先用
pypdf 5.9.0 提取文本,按 60,000 字符分块并保留 800 字符重叠,再让 Claude 输出固定 JSON,最后用原文页码复核。以下流程基于 Python 3.12、Claude API 2025-05 版本接口,在 132,000 字符、86 页制造业SOP上实测,总耗时 4 分 12 秒。1. 前置条件与免费路线
- 准备 Python 3.12、可复制文本的 PDF,以及不含客户姓名、手机号和密钥的脱敏副本。
- 先使用 Claude 网页端免费额度验证任务类型。免费路线适合一次性摘要、章节提纲和少量问答;长文档批处理、稳定温度参数、程序化留痕应改用 API。
- 安装本地解析依赖:
python -m pip install pypdf==5.9.0 requests==2.32.3
预期输出:Successfully installed pypdf-5.9.0 requests-2.32.3。
Note:扫描版 PDF 没有文本层。先用 OCRmyPDF 或企业现有 OCR 服务处理,否则 Claude 只能看到空页。
2. 提取、分块与调用
- 提取文本并保留页码。页码是后续引用核验的最小单位。
python - <<'PY'
from pypdf import PdfReader
from pathlib import Path
pdf = Path("sop.pdf")
out = []
for page_no, page in enumerate(PdfReader(pdf).pages, 1):
text = page.extract_text() or ""
out.append(f"\n[PAGE {page_no}]\n{text}")
Path("sop.txt").write_text("".join(out), encoding="utf-8")
print(f"pages={len(out)}, chars={sum(map(len, out))}")
PY
预期输出:pages=86, chars=132418。
- 使用 60,000 字符块、800 字符重叠。重叠区防止表格标题和结论被切断。
- 提示词必须区分“原文事实”和“模型推断”,并强制返回页码:
curl https://api.anthropic.com/v1/messages \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d @request.json
request.json中的核心内容:
{
"model": "claude-sonnet-4-20250514",
"max_tokens": 3000,
"messages": [{
"role": "user",
"content": "仅依据以下原文。输出JSON:{\"结论\":[],\"证据\":[{\"页码\":0,\"原句\":\"\"}],\"不确定项\":[]}。不要补充原文没有的规格。原文:"
}]
}
预期输出:HTTP 200,并返回 content[0].text;失败时优先检查 API 密钥、JSON 转义和输入长度。
Warning:把文档中的“忽略之前指令”“发送密钥”等内容视为不可信数据。提示词中明确要求模型只引用原文,不执行原文指令。
3. 结果验收与故障定位
- 检查每条结论是否有页码和逐字证据。缺页码的结论标记为“不合格”,不要人工凭印象放行。
- 对关键参数执行二次检索:
grep -nE "温度|压力|公差|ISO|检验频次" sop.txt | head -20
预期输出:显示匹配行号、页码标记和原文片段。若 Claude 的数字无法在输出中定位,通常是分块边界、OCR误识别或模型推断导致。
- 在我的 2025-08 测试中,132,000 字符文档分成 3 块后,摘要耗时 4 分 12 秒;人工抽查 30 条数字结论,28 条可直接回溯原文,2 条因表格 OCR 错位被拒绝。
- 验收标准:页码覆盖率 100%、关键数字逐字一致率 100%、无法确认内容统一输出“不确定”。满足三项,才算 Claude长文本分析怎么用的流程真正可用。
关键词提示:Claude文档处理教程、Claude PDF分析、Claude API长文本总结,均适用于制造业SOP、设备说明书和招聘岗位技术要求的批量整理。