Python 现代开发学习笔记

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 基本切片总是独立副本。"
}

笔记正文与全部题解 · Ctrl / ⌘ K