Citation Generation

Citation Generation 是让 LLM 在回答中标注信息来源的技术。它让用户能够验证回答的可信度,是 RAG 系统可信度的关键。

#type / concept #status / evergreen #tech / ai

[!info] related notes

Citation Generation

一句话定义

Citation Generation 是让 LLM 在回答中标注信息来源的技术。“根据《员工手册》第 3 章 [1],入职满一年享有 10 天年假。“引用让用户能验证回答。

核心原理

Prompt 引导

CITATION_PROMPT = """
基于以下参考资料回答问题。

规则:
- 引用时标注来源编号,如 [1] [2]
- 每个关键信息都要标注来源
- 如果参考资料中没有相关信息,说明

参考资料:
[1] 来源: 员工手册
内容: ...

[2] 来源: 公司政策
内容: ...

问题: {question}
"""

引用解析

import re

def extract_citations(answer: str) -> list[dict]:
    """从回答中提取引用"""
    citations = re.findall(r'\[(\d+)\]', answer)
    return [{"index": int(c)} for c in set(citations)]

def format_with_citations(answer: str, sources: list[dict]) -> str:
    """格式化带引用的回答"""
    citations = extract_citations(answer)
    result = answer + "\n\n---\n来源:\n"
    for cite in citations:
        source = sources[cite["index"] - 1]
        result += f"[{cite['index']}] {source['title']}\n"
    return result

常见坑

  1. 不做引用: 用户无法验证回答
  2. 引用不准确: LLM 编造了不存在的引用
  3. 引用格式不统一: 有的用 [1],有的用 (1)

参考资料

创建于 2026/6/30 更新于 2026/7/15