leven.chen
Published on 2025-10-01 / 2 Visits
0
0

Advanced Prompting 技巧

#AI

零样本提示(Zero-Shot Prompting) vs 少样本提示(Few-Shot Prompting)
零样本提示指在不提供任何示例的情况下要求模型执行任务。你依赖模型的通用训练知识来完成任务。这是大多数提示的默认方式:你直接陈述请求,AI仅基于其“掌握”的知识和对提示的理解生成答案。当任务常见或描述清晰时,零样本提示高效且有效。例如:
“将以下句子翻译成西班牙语:‘I am learning to code.’”
即为零样本提示——直接指令,AI运用自身知识作答(无需示例)。

少样本提示指在提示中提供少量示例或演示,向AI明确展示你期望的格式或风格。本质上,你通过提示中的示例进行教学。当任务特殊或需特定格式时,此方法能显著提升输出质量。少样本提示示例如下:

修正以下句子的语法:

输入:“the code not working good” → 输出:“The code is not working well.”

输入:“API give error in login” → 输出:“The API gives an error during login.”

当前输入:“user not found in database” → 输出:

通过提供两组输入-输出示例,AI会自动延续相同模式处理第三组输入。当需要特定响应风格时(如按固定格式编写代码注释或提交示例),少样本提示非常实用。虽然它会消耗更多提示令牌(因包含示例),但通常能产出更一致的结果。

何时使用哪种方式:
对于简单任务或你信任模型内置能力时,优先尝试零样本提示。若结果不符合预期格式或深度,再通过添加示例切换为少样本提示。

例如:若要求生成函数但输出未遵循你的风格偏好,可展示一个符合要求的函数示例并重新提示。少样本提示在复杂输出场景中优势显著(如编写测试用例——先提供一个测试样例,再要求生成更多)。

总结:零样本适用于快速直接应答,少样本适用于需控制风格或复杂指令的场景


管理幻觉(Hallucinations)并确保准确性
AI的 **“幻觉”** 指模型自信地编造错误信息或代码的现象。幻觉可能表现为:调用不存在的函数、调用未实现的API,或在摘要中虚构细节。虽然无法完全消除此问题(这是AI的固有限制),但可通过以下提示策略降低风险:

  1. 提供基础数据(Providing Grounding Data)
    提供的可靠上下文越多,AI越少依赖猜测。务必利用项目知识库(Knowledge Base)。将产品需求文档(PRD)、用户流程、技术栈等纳入项目上下文,使AI的回答基于应用的具体事实。例如:若应用使用特定库或定义数据模型,将其加入知识库可避免AI编造内容。

  2. 提示内引用(In-Prompt References)
    当询问事实性问题或涉及外部系统的代码时,附上相关文档片段或数据。例如:
    “使用下方API响应格式解析用户对象… [附小型JSON示例]”
    向AI展示真实数据或文档,可减少其虚构函数或字段的可能性。

  3. 要求分步推理(Asking for Step-by-Step Reasoning)
    当怀疑AI可能随意编造时,要求其展示推理过程。例如在聊天模式中:
    “在给出最终代码前,先说明解决方案思路。若存在不确定性,请明确指出。”
    此类思维链提示(chain-of-thought prompting)迫使AI自我检查,可发现错误或至少在推理中暴露问题。

  4. 指令诚实原则(Instructing Honesty)
    在提示中加入规则:
    “若不确定事实或正确代码,请勿编造——应说明所需条件或请求澄清。”
    高级模型通常遵循此类指令(可能回复“我不确定,但假设X…”而非直接给出错误答案)。虽非绝对可靠,但可减少自信的错误输出。

  5. 迭代验证(Iterative Verification)
    AI给出关键答案后(如计算、重要事实或复杂代码),增加验证步骤。例如:
    “确认上述代码是否符合需求,并解释任何可能不符合规范的部分。”
    此提示使AI复核自身输出,常能发现偏离指令的情况。

幻觉还可能表现为AI创建未要求的文件/组件或进行非预期的“创意发挥”。务必对AI生成的代码进行合理性审查。若出现过度“神奇”或反常的结果,请质疑其正确性。通过上述策略管理幻觉,可确保项目控制力和结果准确性。


善用模型特性(Leveraging Model Insights)
并非所有AI模型相同,同一模型在不同设置下行为也可能不同。

  1. 令牌长度与响应(Token Length and Responses)
    注意响应长度限制。若请求超大输出(如完整模块代码),AI可能因令牌超限而截断或逻辑混乱。此时应拆分任务(如“一次生成一个函数代码”)。若Lovable的提示界面显示截断警告,即表示需请求剩余部分或分解任务。

  2. 格式与代码偏好(Formatting and Code Preferences)
    若在提示中明确要求,AI可适配你的格式偏好。例如:
    “以Markdown格式输出代码”“遵循项目ESLint规则”
    除非在上下文中提供风格指南,否则AI无法自动知晓你的规范。若偏好特定命名约定或模式,需在提示中说明(这是“明确性”的一部分)。随着AI持续接触项目中的统一风格,会逐渐模仿——但在提示中温和提醒可加速对齐。


总结
将AI视为强大但刻板的工具。理解你交互的模式与模型特性,始终设计提示以发挥其优势(结构化、细节化的输入),同时防范其弱点(易遗忘、冗长、幻觉)。


Comment