当前位置: 首页 > article >正文

Claude Citations API 实战:让模型自动标注引用来源,RAG 准确率提升 15%

Claude Citations API 实战让模型自动标注引用来源RAG 准确率提升 15%做 RAG检索增强生成的工程师都遇到过这种灵魂提问“你这个回答到底是从哪段文档里得出来的”这个问题之所以致命是因为模型会自信地引用一段根本不存在的原文。在法律、医疗、金融、合规审计这些场景引用错了不只是难看可能直接出事故。过去大家的解法是在 prompt 里写请用方括号标注你引用了哪段文字然后正则解析。这种方式至少有三个问题模型会编造看似真实但实际不存在的引用编号直接输出原文片段output token 飙升导致成本翻倍解析逻辑脆弱模型偶尔不按格式输出就全崩Anthropic 在 2025 年初推出、2026 年正式 GA 的Citations API给出了官方答案——模型直接返回结构化的引用对象包含字符级偏移、文档索引、原文片段全部由 API 层保证。本文给出 Citations 的完整接入方案、三种文档喂入方式、与传统 prompt 引用的对比、以及一个真实可跑的法律 RAG 例子。一、Citations 到底是什么Citations 是 Anthropic 在messagesAPI 上的一个文档块开关。你把文档作为documentcontent block 传给 Claude并打开citations.enabled true模型回答时就会自动在每个论点后附带一个citation 对象结构如下{type:char_location,cited_text:...被引用的原文片段...,document_index:0,document_title:annual-report-2025.pdf,start_char_index:1024,end_char_index:1180}四个关键属性字段含义cited_text被引用的原文片段不计入 output tokendocument_index第几个文档0-indexedstart_char_index/end_char_index在该文档中的字符偏移type引用粒度类型见下表三种引用粒度粒度适用场景类型字段char_location纯文本文档最精确char_locationpage_locationPDF 文档页级page_locationcontent_block_location自定义文档块最灵活content_block_location为什么比 prompt 工程更靠谱Anthropic 自家的对比评测里Citations 内置版相比 prompt-engineered 版本在召回准确率上提升最高 15%。原因有三个引用指向是 API 强制保证的——start_char_index/end_char_index由系统计算不是模型生成的字符串cited_text不计入 output token——你不再需要为了让模型输出原文而支付额外的 token 费用模型不会再编造——所有 citation 都映射到你提供文档的真实位置二、三种文档喂入方式方式 1Plain Text字符精确引用最适合你已经把文档解析为纯文本需要字符级精确定位。importanthropic clientanthropic.Anthropic(api_keysk-你的密钥,base_urlhttps://gw.claudeapi.com)doc_textopen(contract.txt,r,encodingutf-8).read()responseclient.messages.create(modelclaude-opus-4-7,max_tokens1024,messages[{role:user,content:[{type:document,source:{type:text,media_type:text/plain,data:doc_text,},title:甲方乙方合作协议-2026.txt,citations:{enabled:True}},{type:text,text:这份合同的违约金条款是怎么规定的}]}])返回结构精简版forblockinresponse.content:ifblock.typetext:print(block.text)forcitinblock.citationsor[]:print(f └─ 引自{cit.document_title})print(f 字符 [{cit.start_char_index}:{cit.end_char_index}])print(f 原文{cit.cited_text[:80]}...)输出示例违约方需向守约方支付合同总金额 20% 的违约金并在 30 日内一次性支付。 └─ 引自 甲方乙方合作协议-2026.txt 字符 [4128:4280] 原文第十二条 违约责任违约方应当向守约方支付合同总金额百分之二十的违约金...方式 2PDF页级引用最适合扫描件、含图表的财报、合同原件。模型会自动 OCR 视觉理解引用粒度精确到 PDF 的页号。importbase64withopen(annual-report.pdf,rb)asf:pdf_b64base64.standard_b64encode(f.read()).decode(utf-8)responseclient.messages.create(modelclaude-opus-4-7,max_tokens2048,messages[{role:user,content:[{type:document,source:{type:base64,media_type:application/pdf,data:pdf_b64,},title:财报-2025.pdf,citations:{enabled:True}},{type:text,text:现金流量表中经营性净现金流是多少}]}])PDF 模式下 citation 会带start_page_number/end_page_number1-indexed经营性净现金流为 28.5 亿元同比增长 12%。 └─ 引自 财报-2025.pdf 第 32-32 页如果文档已经上传到 Files API可以用file_id引用避免每次 base64 重传。方式 3Custom Content最灵活RAG 必选最适合你自己分了块的 RAG 场景想精确控制每个 chunk 的边界。chunks[第一条 本协议由甲方与乙方于 2026 年 1 月 1 日签订...,第十二条 违约责任违约方应当向守约方支付合同总金额百分之二十的违约金...,第十五条 争议解决因本协议产生的任何争议...]responseclient.messages.create(modelclaude-opus-4-7,max_tokens1024,messages[{role:user,content:[{type:document,source:{type:content,content:[{type:text,text:chunk}forchunkinchunks]},title:合同条款-命中片段,citations:{enabled:True}},{type:text,text:违约金有多少争议怎么解决}]}])返回的 citation 会带start_block_index/end_block_index告诉你引用的是数组里第几块。这种模式特别适合向量检索后给 top-K 个 chunk每个 chunk 是一个 block模型回答时直接告诉你它引用了哪个 block多文档汇总可以把不同来源的文档片段合并成一个 document引用结构清晰三、Node.js / cURL 等价实现Node.js / TypeScriptimportAnthropicfromanthropic-ai/sdk;importfsfromfs;constclientnewAnthropic({apiKey:sk-你的密钥,baseURL:https://gw.claudeapi.com,});constdocTextfs.readFileSync(contract.txt,utf-8);constresponseawaitclient.messages.create({model:claude-opus-4-7,max_tokens:1024,messages:[{role:user,content:[{type:document,source:{type:text,media_type:text/plain,data:docText},title:甲方乙方合作协议.txt,citations:{enabled:true},},{type:text,text:违约金条款是}]}]});for(constblockofresponse.content){if(block.typetext){console.log(block.text);for(constcitof(blockasany).citations||[]){console.log(└─${cit.document_title}[${cit.start_char_index}:${cit.end_char_index}]);}}}cURLcurlhttps://gw.claudeapi.com/v1/messages\-Hx-api-key: sk-你的密钥\-Hanthropic-version: 2023-06-01\-Hcontent-type: application/json\-d{ model: claude-opus-4-7, max_tokens: 1024, messages: [{ role: user, content: [ { type: document, source: {type: text, media_type: text/plain, data: 本协议自 2026 年 1 月 1 日生效...}, title: 合同.txt, citations: {enabled: true} }, {type: text, text: 协议什么时候生效} ] }] }四、Citations vs Prompt 工程引用六维对比维度传统 Prompt 引用Citations API引用可靠性模型可能编造API 保证位置真实Output token 成本引用文本计入输出昂贵cited_text 不计费字符级偏移需自己解析内置start_char_index多文档支持需要复杂 prompt 描述自动document_index实现复杂度自写正则解析SDK 直接拿对象召回准确率基线15%Anthropic 内测数据对法律、医疗、金融、政府类客户这六个维度里前两个就足够说服技术选型。五、Web Search 自带 Citations不需要开关如果你用的是 Anthropic 原生web_search工具web_search_20260209是 2026 年的最新版本支持 dynamic filteringcitations 是默认强开的——你不需要在文档块里加citations.enabled每个网页结果都会自带web_search_result_location类型的 citation。responseclient.messages.create(modelclaude-opus-4-7,max_tokens2048,tools[{type:web_search_20260209,name:web_search}],messages[{role:user,content:2026 年 Anthropic 估值是多少给出来源。}])Anthropic 的服务条款明确直接把 API 输出展示给最终用户时必须保留 citation 指向原始来源——这条对做搜索/问答类产品的团队尤其重要别因为美观需求把 url 字段藏起来。cited_text、title、url 字段同样不计入 token 计费。六、踩坑清单坑 1Citations 与 streaming 一起用要小心累积。流式返回时每个 text delta 可能携带 citation_delta需要在客户端按 block 累积不能简单拼接字符串。SDK 已封装好自写客户端要注意。坑 2document 必须有 title。实测不写 title 也能跑通但所有 citation 的document_title字段会为空前端展示会很难看。养成传 title 的习惯。坑 3Custom content 模式下block 太碎会影响召回。把一份合同拆成 200 个 8 字 block模型反而会看不清。建议每个 block 保持 100-500 字的语义完整段落太碎反而降低准确率。坑 4不是所有模型都返回引用粒度一致。Opus 4.7 / Sonnet 4.6 / Haiku 4.5 都支持 Citations但 Haiku 在多文档复杂场景下偶尔会漏引用。重要场景请用 Opus 4.7 或 Sonnet 4.6。坑 5Citations 不等于防幻觉。模型仍然可能误读文档语义。Citations 只保证引用位置真实存在不保证引用解读正确。生产环境建议二次校验把 cited_text 和模型回答做语义一致性检查。七、一个完整的法律 RAG 端到端示例把上面的 Custom Content 模式串起来做一个最小可跑的法律咨询助手importanthropicfromtypingimportList clientanthropic.Anthropic(api_keysk-你的密钥,base_urlhttps://gw.claudeapi.com)# 假设你有一个向量数据库 (Pinecone / Weaviate / Chroma)defretrieve_chunks(query:str,k:int5)-List[dict]:返回 top-k 法条片段# ... 你的向量检索代码return[{law:民法典,article:第585条,text:当事人可以约定一方违约时...},{law:合同法,article:第114条,text:约定的违约金低于造成的损失...},# ...]defanswer_with_citations(question:str):chunksretrieve_chunks(question)responseclient.messages.create(modelclaude-opus-4-7,max_tokens2048,system你是一个严谨的法律咨询助手。回答必须仅基于提供的法条片段不允许引用未提供的法律。,messages[{role:user,content:[{type:document,source:{type:content,content:[{type:text,text:f【{c[law]}{c[article]}】{c[text]}}forcinchunks]},title:命中的法律条文,citations:{enabled:True}},{type:text,text:question}]}])# 结构化输出附带引用result{answer:,citations:[]}forblockinresponse.content:ifblock.typetext:result[answer]block.textforcitin(block.citationsor[]):idxcit.start_block_index result[citations].append({law:chunks[idx][law],article:chunks[idx][article],cited_text:cit.cited_text,})returnresultprint(answer_with_citations(约定违约金过低能否调整))输出结构示例{answer:根据法律规定约定违约金低于造成损失的可以请求法院或仲裁机构予以增加。,citations:[{law:合同法,article:第114条,cited_text:约定的违约金低于造成的损失的当事人可以请求人民法院或者仲裁机构予以增加...}]}这样的输出可以直接喂给前端做鼠标悬停展示原文或者导出审计报告工程友好度远超 prompt 工程版本。小结Citations 是 Anthropic 官方对防幻觉 可审计需求的标准答案比 prompt 工程引用更可靠、更省钱、更易工程化三种粒度char_location纯文本、page_locationPDF、content_block_location自定义 chunk不计费的省钱细节cited_text 不计入 output token生产建议重要场景用 Opus 4.7 / Sonnet 4.6document 一定要传 titlecustom block 保持语义完整段落重要提醒Citations 只保证引用位置真实不保证语义解读正确注意 Citations 是 Anthropic 原生能力只在 messages API 路径上工作OpenAI 兼容的 chat/completions 接口不支持。国内开发者如果直连api.anthropic.com不通可以通过 claudeapi.com 把base_url改成https://gw.claudeapi.comCitations 全部能力同步可用。参考资料Citations API 官方文档、Anthropic Citations 发布博客。

相关文章:

Claude Citations API 实战:让模型自动标注引用来源,RAG 准确率提升 15%

Claude Citations API 实战:让模型自动标注引用来源,RAG 准确率提升 15% 做 RAG(检索增强生成)的工程师都遇到过这种灵魂提问: “你这个回答到底是从哪段文档里得出来的?” 这个问题之所以致命&#xff0c…...

ncmdumpGUI:3分钟解锁网易云音乐NCM加密文件,让音乐自由流动

ncmdumpGUI:3分钟解锁网易云音乐NCM加密文件,让音乐自由流动 【免费下载链接】ncmdumpGUI C#版本网易云音乐ncm文件格式转换,Windows图形界面版本 项目地址: https://gitcode.com/gh_mirrors/nc/ncmdumpGUI 当智能音箱对你说"不…...

探寻SMT贴片服务商,价格合理的哪家好

在电子制造产业链中,SMT贴片加工作为PCBA生产的核心环节,直接决定了产品的焊接质量与稳定性,不少企业在选型服务商时,常会纠结于技术实力、加工精度与成本控制的平衡。今天我们就从行业现状、服务商筛选标准、靠谱合作方的核心特质…...

Cursor Free VIP技术架构深度解析:机器标识重置系统的实现原理

Cursor Free VIP技术架构深度解析:机器标识重置系统的实现原理 【免费下载链接】cursor-free-vip [Support 0.45](Multi Language 多语言)自动注册 Cursor Ai ,自动重置机器ID , 免费升级使用Pro 功能: Youve reached …...

初次使用Taotoken从注册到发出第一个API请求的全流程耗时记录

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 初次使用Taotoken从注册到发出第一个API请求的全流程耗时记录 1. 流程概览与预期 对于初次接触大模型聚合平台的开发者而言&#…...

2026亲测:专业AI智能降重工具选这款就对了

2026 年降 AIGC 工具已经从“基础语义改写”进化为多维度智能优化系统,核心评测指标涵盖 AI 痕迹清除精准度、学术表达一致性、格式结构完整性、长段落逻辑流畅性、降重适配范围以及高校检测合规性。本次测评覆盖 8 款主流工具,测试内容包括中英文论文处…...

多账号流量内容运营的数据归因与ROI优化:从经验驱动到算法决策的技术转型

📌 当一个团队同时运营20个以上的新媒体账号时,最大的问题不是"怎么发",而是"发了之后怎么知道哪条有用"。本文从数据工程角度,拆解多账号流量内容矩阵如何通过数据归因模型实现ROI优化,以星链引擎…...

编译原理|FIRST、FOLLOW、SELECT集超详细解读(含例题)

编译原理|FIRST、FOLLOW、SELECT集超详细解读(含例题)在编译原理的自顶向下语法分析中,FIRST、FOLLOW、SELECT三个集合是核心基石——它们是构造LL(1)分析表、判断文法是否为LL(1)文法的关键。很多同学刚开始接触时会被抽象的定义…...

Delft3D建模、水动力模拟方法及在地表水环境影响评价中的实践技术应用

一:Delft3D软件介绍及建模原理和步骤对常见的地表水数值模型进行介绍,学习Delft3D软件的构成、界面内容,了解地表水数值模型的建模步骤:1.1地表水数值模拟常用软件介绍EFDC_Explorer(商业) Delft3D&#xf…...

大学生零基础打CTF比赛全攻略:要学啥、怎么学,看完就能参赛

大学生零基础打CTF比赛全攻略:要学啥、怎么学,看完就能参赛(干货版) 摘要:对大学生来说,CTF(Capture The Flag,夺旗赛)不仅是网络安全领域最具实战性的竞赛,…...

为什么我强烈推荐大学生打CTF!看完你就懂了!

前言 写这个文章是因为我很多粉丝都是学生,经常有人问: 感觉大一第一个学期忙忙碌碌的过去了,啥都会一点,但是自己很难系统的学习到整个知识体系,很迷茫,想知道要如何高效学习。 这篇文章我主要就围绕两点…...

如何快速掌握ComfyUI_InstantID:从零到一的AI人脸编辑完整实战指南

如何快速掌握ComfyUI_InstantID:从零到一的AI人脸编辑完整实战指南 【免费下载链接】ComfyUI_InstantID 项目地址: https://gitcode.com/gh_mirrors/co/ComfyUI_InstantID 在AI图像生成领域,保持特定人物身份的同时实现风格转换一直是个技术挑战…...

5秒极速转换!m4s转换工具:B站缓存视频合并为MP4的完整指南

5秒极速转换!m4s转换工具:B站缓存视频合并为MP4的完整指南 【免费下载链接】m4s-converter 一个跨平台小工具,将bilibili缓存的m4s格式音视频文件合并成mp4 项目地址: https://gitcode.com/gh_mirrors/m4/m4s-converter 你是否在B站缓…...

配置openclaw使用taotoken作为其底层大模型供应商

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 配置 OpenClaw 使用 Taotoken 作为其底层大模型供应商 基础教程类,引导使用 OpenClaw 这类 Agent 框架的开发者&#x…...

番茄小说下载器:3分钟打造个人专属离线图书馆

番茄小说下载器:3分钟打造个人专属离线图书馆 【免费下载链接】Tomato-Novel-Downloader 番茄小说下载器不精简版 项目地址: https://gitcode.com/gh_mirrors/to/Tomato-Novel-Downloader 番茄小说下载器是一款专为小说爱好者设计的强大开源工具,…...

Google I/O 2026最魔幻的一幕:发新模型的同时,Google砍了自己的CLI

5月19号凌晨,我刚躺下准备刷会儿手机睡觉,结果被朋友圈刷屏了。 Google I/O 2026,总共两个小时的 keynote,愣是让我看到凌晨两点。不是因为我有多敬业,而是信息量实在太大——大到我觉得不记下来,明天就忘了…...

希捷ST20000NM007D深度评测:20TB企业级硬盘,兼顾容量与稳定的实用之选

在企业存储领域,“容量”与“稳定”始终是核心诉求。随着大数据、云存储、边缘计算的快速发展,企业对存储设备的要求愈发严苛——既需要足够大的空间承载海量数据,又要保证724小时不间断运行的稳定性,同时还要控制功耗与运营成本。…...

影刀RPA跨境店群运营架构:TikTok Shop多节点高并发调度与Python环境隔离实战

大家好,我是林焱。 太有意思了,刚刷朋友圈,看到一个在跨境圈子里被疯狂转发的消息。 有几个当年和我一样,在南充念工程测量技术出身的 00 后学弟,最近跑回母校干了件特别硬核的事。 他们没有像传统的成功校友那样&a…...

Servlet 容器 vs Spring 容器 超详细对比

目录 一、先搞懂两个容器本质 1. Servlet 容器(Web 容器) 2. Spring 容器(IoC 容器) 二、核心相同点 三、核心不同点(重点) 四、最直白通俗理解 五、Web 项目完整启动顺序(必背面试题) 容器层级关系 六、请求处理流程差异 1. 原生 Servlet 模式(只有 Servle…...

Servlet 容器与过滤器 超详细讲解

目录 一、Servlet 容器(Servlet Container) 1. 是什么? 2. 核心作用(必须掌握) 3. Servlet 生命周期(容器全权控制) 4. 工作流程(HTTP 请求完整链路) 5. 总结一句话 二、过滤器(Filter) 1. 是什么? 2. 核心特点 3. 过滤器能做什么?(高频场景) 4. 过滤…...

Gitee Scan:关键领域软件工厂的安全检测能力分析

Gitee Scan:关键领域软件工厂的安全检测能力分析 文章概述 软件供应链安全正成为互联网、金融、国防等关键领域关注的焦点。Gitee Scan 是 Gitee DevSecOps 平台中集成的安全检测组件,提供 SAST(静态应用安全测试)、SBOM&#xff…...

【MATLAB】人脸表情识别与情感分析程序(工程实操版)

【MATLAB】人脸表情识别与情感分析程序(工程实操版) 摘要:人脸表情是人类情感表达的核心载体,人脸表情识别与情感分析技术融合了计算机视觉、图像处理、模式识别等多领域知识,广泛应用于人机交互、心理评估、智能安防、教育教学等场景。传统表情识别依赖人工判断,存在主…...

随身移动文件工作站 金士顿高速移动固态系列

当下移动办公已成为职场人的常态,无论是商务会谈时给客户演示视频、设计文件,还是户外创作时调取海量素材,亦或是日常通勤中处理微信接收的各类文件,都离不开高效的文件存储与传输支持。但现实中的痛点却屡屡困扰着大家&#xff1…...

站长日记:实测一款神仙工具,终于搞定了Bing和360的收录难题

最近真的很想吐槽一句:现在做个小站怎么就这么难? 事情是这样的,上个月为了测试一个新出的长尾词,我花周末两天火速搭了个新站,内容全部手写,绝对原创。按照以前的经验,这种质量的站&#xff0c…...

利用Taotoken模型广场为不同AI应用场景挑选最合适的模型

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 利用Taotoken模型广场为不同AI应用场景挑选最合适的模型 在构建AI驱动的应用时,一个常见的挑战是如何为不同的功能模块…...

[QA]插件式测试用例生成工具:LLM Test Case Tool 的设计与实现

一句话介绍:QA 在需求分析和测试设计中常用的能力沉淀到浏览器插件里:用户在阅读 PRD 时,可以直接在页面右下角调用 Workee,完成摘要、大纲、疑点、测试点、测试用例、UAT 用例和多页面分析。 1. 背景:为什么还需要这个…...

Input Overlay 完整指南:实时显示键盘、游戏手柄和鼠标输入的终极工具

Input Overlay 完整指南:实时显示键盘、游戏手柄和鼠标输入的终极工具 【免费下载链接】input-overlay Show keyboard, gamepad and mouse input on stream 项目地址: https://gitcode.com/gh_mirrors/in/input-overlay Input Overlay 是一款功能强大的开源输…...

CANN 模型转换与适配:从 PyTorch 到 Ascend OM 的完整指南

模型转换是昇腾落地的第一道坎。不管你用 PyTorch、TensorFlow 还是 MindSpore,最终都要变成 Ascend 的 .om 模型才能在 NPU 上跑。 这篇文章讲清楚:模型转换的完整流程、常见问题和优化技巧。 为什么需要模型转换? 昇腾 NPU 不能直接运行 Py…...

SleeperX:macOS系统级电源管理架构解析与深度集成方案

SleeperX:macOS系统级电源管理架构解析与深度集成方案 【免费下载链接】SleeperX MacBook prevent idle/lid sleep! Hackintosh sleep on low battery capacity. 项目地址: https://gitcode.com/gh_mirrors/sl/SleeperX 在macOS生态系统中,电源管…...

丹麦语语音合成总不“像真人”?揭秘ElevenLabs最新v3.2引擎中未公开的3个丹麦语重音标记开关,限前200名开发者速查

更多请点击: https://intelliparadigm.com 第一章:丹麦语语音合成的“真人感”困局本质 丹麦语语音合成长期面临“真人感”缺失的核心挑战,其根源并非单纯的数据量不足或模型容量有限,而是深植于该语言独特的音系结构与韵律特征之…...