🦐 虾米学提示词工程 | 提示词工程学习 Day 9
- 获取链接
- X
- 电子邮件
- 其他应用
🦐 虾米学提示词工程 | Day 9
每天 2 个技巧,持续构建稳定可复用的提示词方法
提示词工程学习 Day 9
日期:2026-03-16
技巧:#17 模板提示、#18 结构化输出
难度:⭐⭐⭐
技巧 #17:模板提示 (Template Prompting)
核心概念
模板提示是指预先设计好固定格式的提示框架,将可变内容填入预留位置,让 AI 按统一结构输出。
口语:"套个模子往里填"
书面语:通过标准化模板降低提示编写成本,确保输出一致性
为什么需要模板
场景对比
简单问答 → 推荐:零样本 → 原因:直接高效
批量处理 → 推荐:模板提示 → 原因:统一格式、可复用
团队协作 → 推荐:模板提示 → 原因:降低沟通成本
基础模板结构
| 【角色】{role} |
| 【任务】{task} |
| 【输入】{input} |
| 【输出要求】{requirements} |
实战案例
案例 1:产品描述生成模板
输入:
| 【角色】资深电商文案 |
| 【任务】为以下产品撰写吸引人的描述 |
| 【输入】 |
| 产品名称:智能降噪耳机 |
| 核心卖点:40dB 主动降噪、30小时续航 |
| 目标人群:通勤上班族 |
| 【输出要求】 |
| - 开头用痛点吸引注意 |
| - 中间突出核心卖点 |
| - 结尾用行动号召收尾 |
| - 总字数 150-200 字 |
输出:
| 地铁噪音让你无法专注?这款智能降噪耳机来拯救你的通勤时光! |
| 搭载 40dB 深度主动降噪技术,瞬间隔绝外界喧嚣,让你在拥挤车厢里也能享受私人音乐厅般的静谧。30 小时超长续航,一周通勤无需充电,告别电量焦虑。 |
| 轻触购买,让每一次出行都成为你的专属时光。 |
案例 2:代码审查模板
输入:
| 【角色】资深 Python 工程师 |
| 【任务】审查以下代码并提供改进建议 |
| 【输入代码】 |
| def get_data(): |
| data = [] |
| for i in range(1000): |
| data.append(fetch(i)) |
| return data |
| 【审查维度】 |
| - 性能问题 |
| - 代码风格 |
| - 潜在 Bug |
| - 可读性 |
| 【输出格式】 |
| 1. 问题概述 |
| 2. 具体建议(逐条列出) |
| 3. 优化后的代码 |
| 4. 改进说明 |
输出:
| 1. 问题概述 |
| 该代码存在性能瓶颈和内存效率问题。 |
| 2. 具体建议 |
| 性能问题:使用列表推导式替代循环+append,速度提升约 30% |
| 代码风格:函数缺少类型注解和文档字符串 |
| 潜在 Bug:未处理 fetch() 可能的异常 |
| 可读性:魔法数字 1000 应提取为常量 |
| 3. 优化后的代码 |
| ```python |
| from typing import List |
| BATCH_SIZE = 1000 |
| def get_data() -> List[dict]: |
| """批量获取数据,返回数据列表。""" |
| try: |
| return [fetch(i) for i in range(BATCH_SIZE)] |
| except Exception as e: |
| logger.error(f"数据获取失败: {e}") |
| return [] |
| ``` |
| 4. 改进说明 |
| 使用列表推导式提升性能,添加异常处理增强健壮性,类型注解和文档字符串提升可维护性。 |
模板设计原则
原则 1:预留位置用 {} 或 [] 标注
口语:"留空让人填"
书面语:使用明确的占位符,避免与正文混淆
原则 2:提供示例值
输入:
| 【角色】例如:资深产品经理 |
原则 3:标注可选/必填
输入:
| 【背景】(可选)... |
| 【任务】(必填)... |
常见模板类型
类型 1:角色-任务-格式模板
适用:通用场景
结构:角色 → 任务 → 输入 → 输出格式
类型 2:填空式模板
适用:固定流程
结构:请帮我 [动作] [对象],要求 [条件]
类型 3:决策树模板
适用:复杂判断
结构:如果 [条件 A],则 [动作 A];否则 [动作 B]
技巧 #18:结构化输出 (Structured Output)
核心概念
结构化输出是指明确要求 AI 按特定数据格式返回结果,如 JSON、Markdown 表格、YAML 等。
口语:"给我规整点的格式"
书面语:通过格式约束提升输出的机器可读性和后续处理效率
为什么需要结构化输出
场景对比
人工阅读 → 推荐:自然语言 → 原因:流畅易读
程序处理 → 推荐:JSON → 原因:可直接解析
数据对比 → 推荐:Markdown 表格 → 原因:一目了然
常用格式及示例
格式 1:JSON(程序友好)
输入:
| 请分析以下产品评论的情感,以 JSON 格式返回: |
| 评论:"这个耳机音质不错,但是续航有点差,总体还算满意" |
| 要求格式: |
| { |
| "sentiment": "正面/负面/中性", |
| "score": 0-1 的数字, |
| "aspects": [ |
| {"aspect": "具体方面", "opinion": "评价", "sentiment": "情感"} |
| ] |
| } |
输出:
| { |
| "sentiment": "正面", |
| "score": 0.7, |
| "aspects": [ |
| { |
| "aspect": "音质", |
| "opinion": "不错", |
| "sentiment": "正面" |
| }, |
| { |
| "aspect": "续航", |
| "opinion": "有点差", |
| "sentiment": "负面" |
| }, |
| { |
| "aspect": "总体", |
| "opinion": "还算满意", |
| "sentiment": "正面" |
| } |
| ] |
| } |
格式 2:Markdown 表格(对比清晰)
输入:
| 请比较 Python 和 JavaScript 的异同,用 Markdown 表格输出。 |
| 对比维度:类型系统、执行方式、主要用途、语法特点 |
输出:
| **类型系统** → 推荐:动态类型,强类型 → 原因:动态类型,弱类型 |
| **执行方式** → 推荐:解释执行 → 原因:解释/JIT 编译 |
| **主要用途** → 推荐:数据科学、后端、AI → 原因:前端、全栈、移动 |
| **语法特点** → 推荐:简洁优雅,缩进敏感 → 原因:灵活多变,括号敏感 |
格式 3:YAML(配置友好)
输入:
| 请为以下项目生成 Docker Compose 配置,用 YAML 格式: |
| 项目:Web 应用(前端 + 后端 + 数据库) |
| 前端端口:3000 |
| 后端端口:8000 |
| 数据库:PostgreSQL |
输出:
| version: '3.8' |
| services: |
| frontend: |
| image: node:18 |
| ports: |
| - "3000:3000" |
| volumes: |
| - ./frontend:/app |
| command: npm start |
| backend: |
| image: python:3.11 |
| ports: |
| - "8000:8000" |
| volumes: |
| - ./backend:/app |
| environment: |
| - DATABASE_URL=postgresql://user:pass@db:5432/app |
| depends_on: |
| - db |
| db: |
| image: postgres:15 |
| environment: |
| - POSTGRES_USER=user |
| - POSTGRES_PASSWORD=pass |
| - POSTGRES_DB=app |
| volumes: |
| - pgdata:/var/lib/postgresql/data |
| volumes: |
| pgdata: |
格式 4:键值对(简单清晰)
输入:
| 请总结以下文章的核心观点,用 "键: 值" 的格式输出: |
| 文章:"AI 正在改变教育行业,个性化学习成为可能..." |
| 要求键:主题、核心论点、关键证据、结论 |
输出:
| 主题: AI 在教育领域的应用 |
| 核心论点: AI 技术使个性化学习成为现实 |
| 关键证据: 自适应学习系统可根据学生进度调整内容 |
| 结论: 教育行业将迎来根本性变革 |
结构化输出设计技巧
技巧 1:提供完整示例
输入:
| 请按以下 JSON 格式返回分析结果: |
| 示例: |
| { |
| "summary": "这是一篇关于...", |
| "keywords": ["AI", "教育"], |
| "sentiment": "positive" |
| } |
| 待分析内容:... |
技巧 2:标注字段类型和约束
输入:
| { |
| "score": "number (0-100)", |
| "tags": "array of strings (最多5个)", |
| "valid": "boolean" |
| } |
技巧 3:处理嵌套结构
输入:
| 请返回以下嵌套 JSON 结构: |
| { |
| "user": { |
| "name": "string", |
| "contacts": [ |
| {"type": "email/phone", "value": "string"} |
| ] |
| } |
| } |
模板提示 + 结构化输出组合
最佳实践:模板中预留格式参数
输入:
| 【角色】数据分析师 |
| 【任务】分析销售数据并生成报告 |
| 【输入数据】 |
| {data} |
| 【输出格式】 |
| 请以 {format} 格式返回,包含以下字段: |
| - total_sales: 总销售额(数字) |
| - top_product: 销量最高产品(字符串) |
| - trends: 趋势分析(数组) |
| - recommendations: 建议(数组) |
使用:
| 填入 data = "...", format = "JSON" |
今日总结
模板提示核心价值
可复用 → 一次设计,多次使用
一致性 → 统一输出风格
效率 → 减少重复编写
结构化输出核心价值
机器可读 → 直接解析使用
清晰对比 → 表格一目了然
程序集成 → API 无缝对接
明日预告
Day 10:提示链 + 迭代提示
-
如何将复杂任务拆成多步
-
如何根据输出不断优化提示
学习笔记 by 虾米团队 🦐
- 获取链接
- X
- 电子邮件
- 其他应用
评论
发表评论