大模型应用
需要优化或设计生产级 LLM 提示词时…
当你要设计、调试或优化 LLM 提示词(含少样本、思维链、结构化输出、模板与系统提示)时,可按此流程操作。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 49/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 85/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 60/100 ×0.15
适用场景
需要优化或设计生产级 LLM 提示词时,通用
解决思路
- 少样本学习:用输入-输出对构造示范,按语义相似度或多样性采样挑选示例,在示例数量与上下文窗口限制之间做平衡,并从知识库动态检索示例,通过策略性选例覆盖边界情况。
- 思维链提示:引导模型逐步推理;零样本用“Let's think step by step”;少样本给出推理轨迹;用自一致性采样多条推理路径并投票;加入验证与校验步骤。
- 结构化输出:启用 JSON 模式保证可解析;用 Pydantic schema 强制约束;做类型安全的响应处理;对格式错误的输出编写错误处理逻辑。
- 提示词优化:迭代式精炼;对提示词变体做 A/B 测试;度量准确率、一致性、延迟等指标;在保持质量的前提下减少 token 消耗;处理边界情况与失败模式。
- 模板系统:做变量插值与格式化;支持条件性提示段落;构建多轮对话模板;按角色组合提示;拆分为可复用的模块化组件。
- 系统提示设计:设定模型行为与约束;定义输出格式与结构;确立角色与专业领域;写明安全准则与内容政策;提供上下文与背景信息。
- 快速上手代码示例:用 langchain_anthropic 的 ChatAnthropic、langchain_core 的 ChatPromptTemplate 和 pydantic 的 BaseModel/Field 定义结构化输出 schema(如 SQLQuery 含 query、explanation、tables_used),用 llm.with_structured_output(SQLQuery) 绑定结构化输出,用 ChatPromptTemplate.from_messages 写 system+user 模板,用 prompt | structured_llm 组成链,再 await chain.ainvoke({...}) 调用并读取结果字段。
- 需要更细的 pattern 与完整示例时,阅读 references/details.md。
- 最佳实践:提示要具体;用示例而非描述(Show, Don't Tell);用 Pydantic 强制结构化输出;在多样且有代表性的输入上充分测试;快速迭代,小改动可能带来大影响;生产环境持续监控指标;把提示词当代码做版本控制;记录提示词为何这样设计。
- 常见坑要避开:不要一开始就过度设计复杂提示;示例要与目标任务匹配,避免示例污染;示例过多会超出 token 限制;指令要明确避免歧义;要测试异常与边界输入;不要假设输出总是格式正确,需有错误处理;不要把值写死,要参数化以便复用。
- 跟踪成功指标:准确率、一致性(相似输入的可复现性)、延迟(P50/P95/P99)、平均 token 用量、有效可解析输出的成功率、用户满意度评分与反馈。
适用边界 · 注意事项
- 任务很简单、直接提示即可完成时,不要先上复杂模式(避免过度设计)。
- 没有足够有代表性的测试输入时,不要盲目上线或调参,否则指标不可信。
- 示例与目标任务不匹配时不要硬塞少样本示例,会造成示例污染。