大模型知识库Heptabase
2026/5/16 18:25:18
面向中级开发者的 Prompt 工程化笔记,附可直接粘贴跑的 Python 代码。
过去一年,我在内部孵化了 7 个小工具,全部基于 ChatGPT。踩坑无数后,把最常见的问题总结成三句话:
一句话:Prompt 不是“写作文”,而是“写协议”。协议越严谨,模型越省心,开发者也越安心。
下面每个模板都满足“复制即可运行”,依赖官方openai>=1.0版本。
需求:从用户口语里提取“出发地、目的地、时间”,返回合法 JSON。
import os from openai import OpenAI client = OpenAI(api_key=os.getenv("OPENAI_API_KEY")) prompt = """ 你是一名行程解析助手,只输出 JSON,不解释。 禁止添加任何注释或 markdown 代码块标记。 输入示例: "下周二我从上海去北京" 输出示例: {"departure":"上海","destination":"北京","date":"2024-07-02"} 请解析以下用户输入: >>> 大后天下午从杭州出发去深圳 """ resp = client.chat.completions.create( model="gpt-3.5-turbo", messages=[{"role": "user", "content": prompt}], temperature=0 ) print(resp.choices[0].message.content) # -> JSON 字符串,可直接 json.loads需求:把技术文档改写成“小红书风格”,并控制emoji密度。
style = "小红书" # 可切换为「知乎」「脉脉」等 emoji_density = 2 # 0=禁用,5=每句一个 prompt = f""" 角色:{style}文案高手 任务:把输入段落改写成{style}风格,emoji密度={emoji_density} 输入: OpenAI 于 2024 春季发布新一代模型,推理成本降低 50%。 输出: """ resp = client.chat.completions.create( model="gpt-3.5-turbo", messages=[{"role": "user", "content": prompt}], temperature=0.7 ) print(resp.choices[0].message.content)需求:多轮对话中保持“订单号”与“处理状态”。
history = [ {"role": "system", "content": "你是客服助手。用户订单号=12345,状态=已发货。"}, {"role": "user", "content": "我的快递到哪了?"} ] resp = client.chat.completions.create( model="gpt-3.5-turbo", messages=history, temperature=0 ) answer = resp.choices[0].message.content history.append({"role": "assistant", "content": answer}) # 下轮继续追加max_tokens硬截断,避免“说书模式”狂喷gpt-3.5-turbo做 LoRA,成本降 40%| 错误 | 现象 | 快速修复 |
|---|---|---|
| 1. 角色与任务混在一句话 | 输出风格漂移 | 拆成两句:先“角色”,再“任务” |
| 2. 忘记指定格式 | 前端解析炸 | 在结尾加“必须返回纯 JSON,禁止 markdown” |
| 3. temperature=1 用于抽取 | 每次字段名不同 | 抽结构化数据一律 0 |
| 4. 示例与真实输入分布不一致 | 幻觉暴增 | 示例覆盖 90% 真实句式 |
| 5. 长 Prompt 放 user 消息 | 占 token 多 | 静态部分挪到 system,立刻省 20% |
当模板数 >30,手工 CV 已经崩溃。我现在的架构如下:
graph TD A[前端/客户端] -->|场景ID+参数| B(Prompt 渲染服务) B --> C[Jinja2 模板引擎] C --> D[版本化 Prompt 仓库] D --> E[CI 单元测试] E -->|通过| F[灰度发布] F --> G[线上效果监控] G -->|指标异常| H[回滚或迭代]把模板跑通、把监控搭好、把版本管住,Prompt 就不再是玄学,而是可灰度、可回滚、可量化的一线代码资产。祝你玩得开心,少踩坑多复用!
如果你想把“对话”再升一级,让 AI 直接开口说话,可以试试我上周刚撸完的 从0打造个人豆包实时通话AI 动手实验:从麦克风采集 → 豆包 ASR → 豆包 LLM → 豆包 TTS,一条龙 Web 应用,30 分钟跑通。小白也能顺下来,亲测不踩坑。