16|示例驱动(Few-shot):用例子教会风格与边界
本篇目标这是提升 AI 智商最快的方法。当你写了 1000 字的规则 AI 还是听不懂时扔给它 2 个例子它瞬间就懂了。一、为什么“说一百遍”不如“做一遍”人类的学习方式有两种读说明书Zero-shot给你一本《Python 语法大全》让你看完去写代码。很难容易忘容易错看例子Few-shot给你看两个别人写的 Python 脚本让你照葫芦画瓢。简单直观精准AI 也是一样的。Zero-shot零样本直接问“帮我提取日期”。AI 可能会给2023-01-01也可能给Jan 1st, 2023。Few-shot少样本给它看两个例子再问。AI 看到例子是YYYY/MM/DD它就会乖乖输出2023/01/01。结论在 Prompt 里加例子能大幅提升 AI 的稳定性和风格一致性。二、Few-shot 的威力三个层次Level 1统一输出格式你想要特定的 JSON 结构但不想写复杂的 Schema。Prompt:把下面的地址解析成 JSON。 例子 1 输入张三北京朝阳区13800000000 输出{name: 张三, city: 北京, phone: 13800000000} 例子 2 输入李四上海浦东13911111111 输出{name: 李四, city: 上海, phone: 13911111111} 输入王五深圳南山13722222222 输出AI{name: 王五, city: 深圳, phone: 13722222222}完美复刻格式Level 2教会思考逻辑CoT你想要 AI 学会你的推理过程。Prompt:判断这个评论是正面还是负面。 例子 1 输入手机很漂亮但是电池太不耐用了才用了半天就没电了。 思考虽然外观好评但核心功能电池差评整体影响使用体验。 输出负面 例子 2 输入快递慢了点不过东西确实是正品价格也便宜。 思考物流是小瑕疵但产品质量和价格是核心优势整体满意。 输出正面 输入屏幕清晰度一般不过这价格要啥自行车给个好评吧。 输出AI思考屏幕一般是缺点但考虑到价格低廉性价比高用户最终意图是好评。输出正面Level 3处理边界情况Edge Cases这是高手最常用的技巧。专门给 AI 看“反例”或“异常情况”。Prompt:提取金额。 例子 1 输入买了 3 个苹果花了 15 元。 输出15 例子 2 输入这件衣服打折后 99 块钱。 输出99 例子 3异常 输入我不记得花了多少钱了。 输出0 输入大概是两三百吧。 输出AI0因为它学会了“模糊描述算作 0”这个规则而不需要你写复杂的逻辑说明。三、如何设计“好例子”例子不是随便找的要有代表性。1. 正例Standard Case最常见的情况。告诉 AI “正常应该怎么做”。2. 反例Negative Case告诉 AI “什么是不对的”。例子“注意不要提取‘2023年’这种年份只提取具体的‘2023-01-01’日期。”3. 边界例Edge Case告诉 AI “遇到这种特殊情况怎么办”。例子“如果输入里没有电话号码输出null不要填‘未知’。”四、实战用 Few-shot 统一代码风格假设你们团队规定Python 函数必须有 Type Hints且必须用 Google 风格的 Docstring。你不需要把 Google 风格指南全文贴给 AI只需要给它看一个代码片段。Prompt:# Role Python Developer following strict team guidelines. # Examples Input: def add(a, b): return a b Output: def add(a: int, b: int) - int: Adds two numbers. Args: a: The first number. b: The second number. Returns: The sum of a and b. return a b Input: def get_user(id): # logic... return user Output: def get_user(user_id: int) - Dict[str, Any]: Retrieves a user by ID. Args: user_id: The unique identifier of the user. Returns: A dictionary containing user details. # logic... return user # Task Convert the following function to the team style: def send_email(to, subject, body): # ...AI 结果它会立刻模仿上面的风格给send_email加上类型和文档完全符合你的要求。五、本篇产出示例库结构如何存放与复用不要每次都手写例子。建立一个examples.md文件分类存放你的“教学素材”。# Prompt Examples Library ## 1. Data Extraction (JSON) [Example 1: Standard] [Example 2: Missing Data] ## 2. Code Style (Python) [Example 1: Function Definition] [Example 2: Error Handling] ## 3. SQL Query [Example 1: Simple Join] [Example 2: Complex Aggregation]每次写 Prompt 时从这里复制两段进去效率翻倍。练习题教会 AI 提取“敏感词”任务写一个 Prompt让 AI 从一段话里提取出所有骂人的话敏感词并用*号替换。要求使用 Few-shot 方法至少包含一个“正常说话”的例子和一个“隐晦骂人”的例子。点击查看参考答案Task: Censor offensive language. Example 1: Input: 你真是个笨蛋连这个都不会。 Output: 你真是个**连这个都不会。 Example 2: Input: 今天天气真好我们去公园吧。 Output: 今天天气真好我们去公园吧。 Example 3 (Implicit): Input: 这种脑残设计也就你想得出来。 Output: 这种**设计也就你想得出来。 Input: 你这猪头别挡道。 Output:下一步我们学会了如何“一次性”把需求说清楚。但在实际开发中需求往往是复杂的一次搞不定。下一章我们将学习三轮迭代法——如何像和同事讨论一样通过多轮对话把代码改对。