SuperAPI AI 工具集

prompt-engineering

编程与开发

查看项目

更新于 10-15 14:35

技能介绍

用途

本技能文档用于指导如何编写有效的提示词(Prompt),以便从大语言模型(LLM)获得可靠、高质量的输出。它面向需要与 LLM 交互的开发者与使用者,提供可复用的原则、技术与模式。

核心原则

  • 具体明确:模糊的提示词只会得到模糊的结果。
  • 以示例代替说教:示例比单纯指令更有效。
  • 结构化输出:明确告诉模型你想要的格式。
  • 迭代优化:提示词如同代码,需要测试与打磨。

主要技术

系统提示词(System Prompts)

用于设定模型的角色与约束。文档给出的示例是让模型扮演资深代码审查者,审查代码中的安全漏洞、性能问题和可读性问题,并对每个问题给出严重程度(critical/warning/info)、行号、描述和建议修复方案;若无问题则回复“No issues found.”。

少样本示例(Few-Shot Examples)

提供 2-3 个“输入 → 输出”的示例。文档以自然语言转 SQL 为例,给出两个示例后,再让模型转换新的查询。

思维链(Chain-of-Thought)

要求模型逐步推理。示例用于分析错误并给出修复建议,步骤包括:错误信息含义、可能原因、结合代码上下文的最可能根因、修复方案。

结构化输出(Structured Output)

要求返回 JSON 或特定格式。文档给出一个 JSON schema 示例,包含 summary、sentiment、key_topics、confidence 等字段。

约束与护栏(Constraints and Guardrails)

规则示例:仅使用提供的上下文信息;不知道就回答“I don't know”,不要猜测;回复控制在 200 词以内;回复中不得包含任何 PII(个人身份信息)。

面向代码的模式

  • 代码生成:编写一个 TypeScript 函数,说明需求、使用的库,并遵循代码库中的既有模式。
  • 代码转换:重构代码以实现某目标,保持行为不变,不改变公共 API(函数签名、导出)。
  • Bug 修复:描述 Bug 与错误信息,要求修复并在注释中解释原因。

反模式(Anti-Patterns)

  • 过于模糊:“Make this better” → 应具体说明“更好”指什么。
  • 过于冗长:把所有内容塞进一个巨大提示词 → 应拆分为聚焦的提示词。
  • 自相矛盾:“Be concise but thorough” → 应二选一或明确权衡。
  • 缺少示例:复杂格式却不展示期望 → 应添加 1-2 个示例。
  • 提示词注入风险:直接包含未分隔的原始用户输入 → 应使用清晰分隔符,如 <user_input>...</user_input>。

实用技巧

  • 确定性任务(代码、分类)使用温度 0,创意任务使用 0.7 以上。
  • 用边界用例测试提示词,而不仅是正常路径。
  • 对提示词进行版本控制——它们与代码同等重要。
  • 需要程序化解析响应时,使用结构化输出(JSON)。
  • 如果足够精确,更短的提示词往往优于更长的提示词。

适用场景与限制

该文档适用于需要与 LLM 交互并追求稳定输出的场景,尤其是代码生成、代码审查、代码转换、Bug 修复、自然语言转 SQL、文本分类等任务。文档未提供具体平台、收费、价格或效果保证等信息;实际效果取决于所用模型与具体任务,需自行测试与迭代。