Claude Code 学习站

CCA-F 练习题库· Prompt Engineering & Structured Output

你的抽取管道使用的 prompt 要求以代码块形式输出 JSON。在生产环境中,大约 3% 的响应存在 JSON 语法错误:缺逗号、字符未转义或对象被截断。这些错误会让下游 parser 失败,需要人工重新处理。消除 JSON 语法错误最可靠的方式是什么?

  1. A增加一个校验步骤:只要输出无法通过 JSON 解析,就用同一个 prompt 重跑,每份文档最多重试三次。
  2. B改用 tool use,把定义好的 JSON schema 作为输入参数;从 tool_use 响应块中提取结构化数据。
  3. C在 prompt 中加一条指令:“Your response must be valid JSON. Double-check for syntax errors before responding.”。
  4. D用一个正则后处理器,在把输出交给下游 parser 之前,先补上缺失的逗号,并转义那些没有转义的引号。

正确答案:B

解析

  • B正确:改用带已定义 JSON schema 的 tool use 是消除 JSON 语法错误最可靠的方式:模型的输出以结构化的 tool_use 块发出,Anthropic API 返回的 input 字段本身就是符合你所声明 schema 的、已解析好的 JSON 对象,因此你的代码永远不必手工解析原始文本,缺逗号、字符未转义、对象被截断这类语法缺陷从构造上就被消除了(这正是 Anthropic 推荐的可靠结构化/JSON 输出模式)。各干扰项只能缓解而非消除:
  • A(最多重试 3 次)只是降低失败率,仍然依赖自由文本 JSON,三次全失败也有可能;
  • C(自查指令)依赖模型无强制约束的自我校验,没有任何保证;
  • D(正则修复)是脆弱的事后补丁,无法挽救被截断或结构上有歧义的输出。

延伸阅读

本题为本站自有原创练习题,非任何官方考试内容;解析对照 Anthropic 公开文档撰写, 如与最新文档不符请以官方为准。想在限时环境下检验水平,可参加 模拟考(题目与本页题库不重叠)。