18-04 构造真实引用中的错误结论
题目
保留有效块编号与原文,却把回答结论改反。说明现有引用检查为什么能通过,再添加一条会揭示这项错误的答案检查。
推导与做法
引用检查验证块编号存在、quote 确实出现在原文里。把原文正确引用,却声称“基本切片总是独立副本”,仍然可以通过这项检查。
题解另外为固定问题保存正确事实“基本切片通常返回视图”,答案回归检查会失败。引用有效与结论受支持是两项不同性质的检查;更多问题需要自己的标注与事实评估,不能把这个字符串断言当成通用语义判断器。
过程图
%% 每个节点保留输入、执行位置或执行后的实际状态。
flowchart TD
S0["引用编号真实,quote确在原文"]
S1["结论却把视图说成独立副本"]
S0 --> S1
S2["引用检查通过"]
S1 --> S2
S3["固定问题的事实检查失败,揭示反转结论"]
S2 --> S3
classDef default fill:#EEF0FB,stroke:#4657B5,color:#24324A
linkStyle default stroke:#4657B5
实现与运行
查看带注释实现。本题与相关处理函数放在同一章节代码文件中;启动工具负责定位相邻项目和选择题号。
在配套目录的 LangChain与AgentRuntime/study_agent 中运行。先按项目 README 执行 uv sync --locked。本章先执行 uv sync --locked --all-extras。18-06 还需执行 uv pip install -e "../../FastAPI/api_project",接入前面 API 声明的依赖;之后使用 --no-sync 保留这份组合环境。
# 使用项目解释器运行本题,题号决定执行哪一组演示。
uv run --no-sync python "../../学习索引/参考实现/代码/ch18.py" 18-04
程序按题号输出处理后的值、查询结果或状态。先和前面的手算比较,再修改一项输入重跑。
查看本题运行结果
# 与上面的手算状态和题目数值逐项比较。
{
"citation_check": "passed",
"answer_check": false,
"expected_fact": "NumPy 基本切片通常返回视图。",
"actual": "NumPy 基本切片总是独立副本。"
}