Skip to content

Prompt 编写的核心原则

1. 清晰性原则 (Clarity)

  • 明确具体:避免模糊的描述,给出具体的指令
  • 结构化:使用清晰的段落和格式组织内容
python
# ❌ 不好的例子
prompt = "教我学编程"

# ✅ 好的例子
prompt = """
你是一位AI代码学习思路建议专家。
请根据以下信息为用户制定学习路线:
1. 目标技术栈:{tech_stack}
2. 当前水平:{current_level}
3. 学习目标:{learning_goal}
4. 可用时间:{time_available}

请提供:
- 分阶段的学习计划(3-4个阶段)
- 每个阶段的具体学习内容和实践项目
- 推荐的学习资源
"""

2. 角色定义原则 (Role Definition)

  • 明确 AI 的身份和专业领域
  • 设定合适的语气和风格
python
# 示例:定义专业角色
system_prompt = """
你是一位AI代码学习思路建议专家,拥有10年以上的编程教学经验。
你擅长:
- 根据学习者的基础和目标,制定个性化学习路线
- 推荐具体的学习资源和实践项目
- 提供循序渐进、可执行的学习计划
- 解答学习过程中的困惑,调整学习策略
"""

3. 上下文原则 (Context)

  • 提供必要的背景信息
  • 包含相关的示例或参考
python
# 示例:提供上下文
prompt = f"""
当前学习阶段:Python后端开发学习
已完成内容:Python基础语法、数据结构
当前任务:制定Web框架学习路线

学习者背景:
- 编程基础:已掌握Python基础,了解面向对象
- 学习目标:能够独立开发RESTful API项目
- 可用时间:每天2小时,持续3个月
- 偏好方向:Django或Flask框架

请制定详细的学习路线,包括:
1. 推荐的框架选择及理由
2. 分阶段学习计划(建议3-4个阶段)
3. 每个阶段的实践项目
"""

4. 格式化输出原则 (Structured Output)

  • 明确指定输出格式
  • 使用 JSON、XML 或其他结构化格式
python
# 示例:要求结构化输出
prompt = """
请根据用户的学习需求,制定编程学习路线,并以JSON格式返回:
{
  "recommended_tech": "推荐的技术栈",
  "difficulty_level": "入门/进阶/高级",
  "learning_phases": [
    {
      "phase": "阶段名称",
      "duration": "预计时长",
      "topics": ["学习主题1", "学习主题2"],
      "project": "实践项目描述"
    }
  ],
  "resources": ["推荐资源1", "推荐资源2"]
}

用户需求:{user_requirement}
"""

5. Few-Shot 原则 (示例学习)

  • 提供 2-5 个示例
  • 展示期望的输入输出模式
python
# 示例:Few-Shot Learning
prompt = """
你是一位AI代码学习思路建议专家。请根据用户需求,提供简洁的学习路线建议。

示例1:
用户输入:我想学习前端开发,完全零基础
学习建议:
阶段1(1-2个月):HTML/CSS基础 → 个人网页项目
阶段2(2-3个月):JavaScript核心 → 交互式网页项目
阶段3(2个月):React框架 → Todo应用项目

示例2:
用户输入:已会Python,想转后端开发
学习建议:
阶段1(1个月):Web基础与HTTP协议 → API调用练习
阶段2(2个月):Flask/Django框架 → RESTful API项目
阶段3(1-2个月):数据库与部署 → 完整Web应用

示例3:
用户输入:学了Java基础,不知道下一步做什么
学习建议:
阶段1(1个月):面向对象深入 → 设计模式练习
阶段2(2个月):Spring Boot框架 → 后端服务项目
阶段3(1个月):数据库与MyBatis → 完整CRUD应用

现在请处理:
用户输入:{user_input}
学习建议:
"""

6. 约束条件原则 (Constraints)

  • 明确限制和边界
  • 说明不应该做什么
python
# 示例:设置约束
prompt = """
制定编程学习路线时,请遵守以下约束:
1. 学习阶段必须控制在3-5个,不要过于细碎
2. 不要推荐过时的技术或框架(如jQuery、PHP5等)
3. 避免一次性推荐过多学习资源,每阶段不超过3个
4. 时间规划要符合实际,单个阶段不少于2周
5. 必须包含可落地的实践项目,不能只有理论学习
6. 不要使用"精通"、"掌握所有"等不切实际的目标描述
"""

7. 思维链原则 (Chain of Thought)

  • 引导 AI 逐步思考
  • 要求展示推理过程
python
# 示例:思维链
prompt = """
请按以下步骤为用户制定编程学习路线:

步骤1:分析用户当前水平
- 识别已掌握的技能和知识点
- 评估编程基础是否扎实

步骤2:明确学习目标
- 确定目标技术栈和应用方向
- 分析目标与现状的差距

步骤3:规划学习阶段
- 将差距拆解为3-4个递进阶段
- 每个阶段设定明确的里程碑

步骤4:设计实践项目
- 为每个阶段匹配合适的项目
- 确保项目难度循序渐进

步骤5:推荐学习资源
- 筛选优质、适合的学习材料
- 给出具体的学习建议

用户信息:
当前水平:{current_level}
学习目标:{learning_goal}

请逐步完成分析并给出学习路线:
"""

8. 分隔符原则 (Delimiters)

  • 使用明确的分隔符区分不同部分
  • 防止 prompt 注入攻击
python
# 示例:使用分隔符
prompt = """
请分析用户的学习需求并制定学习路线。

===用户背景开始===
{user_background}
===用户背景结束===

===学习目标开始===
{learning_goal}
===学习目标结束===

===约束条件开始===
1. 学习阶段控制在3-4个
2. 每个阶段包含具体的实践项目
3. 时间规划要符合实际
4. 推荐的技术栈要保持主流和时效性
===约束条件结束===

===输出格式开始===
阶段1:[阶段名称](时长)
- 学习内容:...
- 实践项目:...

阶段2:[阶段名称](时长)
- 学习内容:...
- 实践项目:...
===输出格式结束===
"""

9. 迭代优化原则 (Iteration)

  • 根据输出结果不断调整
  • A/B 测试不同版本
python
# 版本1:基础版本
prompt_v1 = "帮我制定{tech_stack}的学习路线"

# 版本2:添加约束
prompt_v2 = """
制定{tech_stack}的学习路线
要求:3-4个阶段,每个阶段包含实践项目
"""

# 版本3:完整版本
prompt_v3 = """
你是AI代码学习思路建议专家。
请为用户制定{tech_stack}的学习路线。

用户信息:
- 当前水平:{current_level}
- 学习目标:{learning_goal}
- 可用时间:{time_available}

要求:
- 阶段数:3-4个递进阶段
- 每阶段:学习内容 + 实践项目 + 预计时长
- 技术栈:推荐主流且有时效性的技术
- 资源:每阶段不超过3个优质学习资源
- 目标:可落地、可衡量的学习里程碑

请给出系统化、可执行的学习计划。
"""

千里之行,始于足下。