CCA-F 练习题库· Prompt Engineering & Structured Output
你的 pipeline 需要让当前的 Claude 模型返回符合固定 JSON schema 的输出。你以前是通过在 assistant 轮次预填一个左花括号来强制输出 JSON,但这招现在不管用了。Anthropic 推荐用什么来替代?
- A使用 Structured Outputs 功能(output_config.format),并传入你的 JSON schema
- B把 temperature 设为 0,让 JSON 在每次运行中都被确定性地生成出来
- C开启 extended thinking,让 Claude 在输出前先规划好 JSON 的结构
- D把 JSON schema 作为 stop_sequence 传入,让生成在右花括号出现时停下
正确答案:A
解析
- A正确:Anthropic 关于从 assistant 轮次预填迁移出来的指引,指向的是 Structured Outputs——在 messages.create() 上通过 output_config.format 传入你的 JSON schema(标准写法是 output_config: {format: {type: "json_schema", schema: ...}},并以 client.messages.parse() 作为做校验的辅助方法)——它就是为取代「预填左花括号以强制输出 JSON」而设计的替代方案。之所以必须换掉,是因为在所有当前模型(Opus 4.6/4.7/4.8,Sonnet 4.6/5,Fable 5)上,最后一轮 assistant 预填现在会返回 400。Anthropic 提到的相邻替代做法还有:直接指示模型按照 schema 输出,或者在分类场景中使用带 enum 字段的 tool;但针对 schema 一致性的替代方案就是 Structured Outputs。各干扰项均不成立:
- B(temperature=0)并不能约束输出结构,而且在当前的 Opus/Sonnet/Fable 模型上其实会被以 400 拒绝;
- C(extended thinking)控制的是推理深度,而非输出形态;
- D(把 JSON schema 当作 stop_sequence)只能让生成停止,并不强制任何 schema。
延伸阅读
本题为本站自有原创练习题,非任何官方考试内容;解析对照 Anthropic 公开文档撰写, 如与最新文档不符请以官方为准。想在限时环境下检验水平,可参加 模拟考(题目与本页题库不重叠)。