13.6 本章实战练习

13.6 本章实战练习

本节提供实战练习,帮助读者掌握基于不同大模型平台制定针对性提示词策略的技巧。

练习一:系统级指令的跨平台移植

目标:理解 OpenAI 和 Claude 在角色设定和系统级指令上的偏好差异。

场景描述: 你手头有一份在 GPT-4o 上运行良好的小说大纲生成器 系统提示词(system prompt):

你是一个天才悬疑小说家。
你的任务是根据用户给出的几个关键词,生成一份包含"起承转合"四个部分的短篇小说大纲。
请确保大纲的最后部分有一个惊人的反转。
返回格式必须是一个包含这四个键的 JSON,不要输出多余的解释文字。

任务: 为了接入 Anthropic 的 Claude Sonnet 4.6 模型,你需要对上述提示词进行”Claude 化”改造。 请应用 13.2 节的知识:

  1. 引入 XML 标签重构结构。

  2. 将限制条件(不输出多余文字、必须包含反转)放入 <rules> 中。

  3. 针对 Claude 容易在解释前加上“好的,这是您需要的大纲”的习性,编写一段防止此现象的预填充或是尾部声明。


练习二:用 Structured Outputs 规范 OpenAI API 回调

目标:掌握 OpenAI 独有的强约束结构化输出能力(Structured Outputs / json_schema)。

场景背景: 你的应用需要通过 OpenAI API 对新闻网页的正文进行分类并提取标签。以往你是通过 prompt 要求“请严格输出 JSON”来实现,但偶尔还会解析报错。

任务: 使用 Pydantic(Python)或 Zod(TypeScript)等概念,为以下提取目标设计一段严格的 Schema 定义,以便直接喂给 OpenAI API 的 response_format 参数。

需要提取的字段

  • article_category:文章分类,必须是 "politics", "technology", "sports", "entertainment" 中的一种。

  • read_time_minutes:预估阅读时间(整数)。

  • tags:核心标签列表(字符串数组,最多 5 个)。

  • is_breaking_news:是否属于突发新闻(布尔值)。

思考:使用这套 Structured Outputs 机制后,你的提示词原文本可以缩减掉哪一部分内容?


练习三:适配本地开源小模型的 Prompt 降级策略

目标:体验在资源受限环境下的提示词“降级与硬编码”艺术。

场景描述: 你的公司出于数据隐私原因,决定将文本总结功能从 GPT-4 切换到本地部署的 Llama-3-8B(开源小模型)。 原来的提示词像是一篇短文,给 GPT-4 讲了大量的背景故事、公司文化和复杂的评分机制,GPT-4 处理得很好。而 Llama-3-8B 看了这篇几千字的提示词后,往往“遗忘”了要总结的文本,直接开始回答公司文化相关的内容。

任务: 根据 13.4 节开源模型适配的原则,重新设计这段提示词。 重构要点

  1. 去冗余:剥离“背景故事”和“公司文化”。

  2. 位置优化:将被总结的文本 {{text_to_summarize}} 和核心指令 “请总结上述文本:” 调整到最佳的相对位置(防止注意力偏移)。

  3. 格式简化:放弃复杂的 JSON 嵌套强制输出,改为引导它输出简单的 Markdown 标题列表。

最后更新于