VibeCoding 提示词工程与模板库
1. 提示词工程基础
1.1 什么是提示词工程
提示词工程(Prompt Engineering)是设计和优化输入给 AI 的文本指令,以引导 AI 生成高质量、符合预期的输出。
核心目标:
- 让 AI 理解任务目标
- 引导 AI 生成正确格式的输出
- 控制 AI 的行为和风格
- 提高 AI 输出的准确性和可靠性
1.2 提示词设计原则
python
def prompt_design_principles():
"""提示词设计原则"""
principles = {
"明确性": "指令要清晰、具体,避免模糊表述",
"完整性": "提供足够的背景信息和约束条件",
"结构化": "使用标题、列表等结构组织内容",
"可验证性": "要求 AI 提供可验证的输出",
"迭代优化": "根据反馈不断优化提示词"
}
return principles
1.3 提示词分类
| 类型 | 用途 | 示例 |
|---|---|---|
| 指令型 | 直接下达命令 | "请编写一个 Python 函数..." |
| 问答型 | 提出问题 | "什么是机器学习?" |
| 创作型 | 生成创意内容 | "写一首关于春天的诗" |
| 分析型 | 分析数据或文本 | "分析以下用户反馈..." |
| 代码型 | 生成代码 | "写一个排序算法..." |
2. VibeCoding 提示词模板
2.1 项目初始化提示词
python
def project_init_prompt():
"""项目初始化提示词"""
prompt = """
# 项目初始化指令
请基于以下信息,完成项目的初始化工作:
## 项目信息
- 项目名称:[项目名称]
- 项目描述:[项目描述]
- 技术栈:[前端技术栈] + [后端技术栈] + [数据库]
- 项目路径:[项目路径]
## 初始化要求
1. 创建项目目录结构
2. 初始化 Git 仓库
3. 创建基础配置文件
4. 设置开发环境
5. 提供启动指南
## 输出要求
- 列出创建的所有文件
- 说明每个文件的作用
- 提供完整的项目结构
"""
return prompt
2.2 需求分析提示词
python
def requirements_analysis_prompt():
"""需求分析提示词"""
prompt = """
# 需求分析指令
请分析以下需求文档,并输出结构化的需求分析报告:
## 原始需求
[粘贴需求文档内容]
## 分析要求
1. **需求理解**:用一句话概括核心目标
2. **功能识别**:列出所有功能点,按优先级排序
3. **技术难点**:识别技术难点和风险点
4. **约束条件**:列出技术、时间、资源等约束
5. **用户画像**:描述目标用户特征
## 输出格式
请使用 Markdown 格式输出,包含以下章节:
- 需求概述
- 功能清单(表格形式,包含名称、描述、优先级)
- 技术难点分析
- 约束条件
- 用户画像
"""
return prompt
2.3 技术架构设计提示词
python
def architecture_design_prompt():
"""技术架构设计提示词"""
prompt = """
# 技术架构设计指令
请基于以下需求,设计完整的技术架构方案:
## 需求背景
[简要描述项目背景和目标]
## 功能需求
[列出核心功能]
## 技术约束
- 前端框架:[框架名称]
- 后端框架:[框架名称]
- 数据库:[数据库名称]
- 其他要求:[性能、安全、扩展性等]
## 设计要求
1. **架构风格**:选择合适的架构风格(如分层架构、微服务等)
2. **模块划分**:划分系统模块,说明职责
3. **技术选型**:详细说明技术选型及理由
4. **关键设计**:
- 数据库设计(ER 图描述)
- API 设计(RESTful 规范)
- 安全设计(认证、授权、防护)
- 性能设计(缓存、异步处理)
5. **部署方案**:描述部署架构
## 输出格式
请使用 Markdown 格式输出,包含架构图描述和详细设计文档。
"""
return prompt
2.4 代码生成提示词
python
def code_generation_prompt():
"""代码生成提示词"""
prompt = """
# 代码生成指令
请基于以下设计文档,生成完整的项目代码:
## 设计文档
- 架构设计:[架构设计文档内容]
- 数据库设计:[数据库设计文档内容]
- API 设计:[API 设计文档内容]
## 技术栈
- 前端:[前端技术栈]
- 后端:[后端技术栈]
- 数据库:[数据库名称]
## 代码要求
1. **代码结构**:清晰的目录结构和模块划分
2. **代码质量**:符合编码规范,注释完整
3. **错误处理**:完善的异常处理和错误反馈
4. **安全性**:防止 SQL 注入、XSS 等安全问题
5. **可测试性**:代码易于测试,包含单元测试
## 输出要求
- 按模块逐步输出代码
- 每个文件注明存放路径
- 提供配置文件和启动指南
- 包含必要的测试代码
"""
return prompt
3. VibeCoding 专项提示词模板
3.1 智能风控决策引擎提示词
python
def risk_engine_prompt():
"""智能风控决策引擎提示词"""
prompt = """
# 智能风控决策引擎平台开发
## 技术栈要求
- 前端:Vue 3 + Element Plus + Pinia + Vite
- 后端:FastAPI + SQLAlchemy(async) + MySQL + Redis
- 采用分层架构(路由/服务/仓储/模型)
- 前后端分离,RESTful API,JWT 认证
## 阶段 1:需求文档确认
列出功能清单与优先级:
| 优先级 | 功能模块 | 描述 |
|-------|---------|------|
| P0 | 登录权限 | 用户登录、JWT 认证、权限控制 |
| P0 | 用户角色管理 | 角色定义、权限分配、用户管理 |
| P1 | 黑白名单管理 | 名单配置、规则匹配、实时生效 |
| P1 | 风控特征管理 | 特征定义、计算规则、版本管理 |
| P2 | 可视化规则配置 | 规则编辑器、条件组合、优先级 |
| P2 | 拖拽式决策流编排 | 流程设计、节点配置、条件分支 |
| P2 | 评分卡模型 | 评分规则、权重配置、结果计算 |
| P3 | 实时决策 API | 风险评估接口、决策结果返回 |
| P3 | 大盘报表 | 数据可视化、趋势分析、统计汇总 |
| P3 | 决策日志追溯 | 操作记录、决策详情、审计追踪 |
| P4 | 模拟请求测试 | 测试工具、参数配置、结果对比 |
明确 MVP 范围(P0-P1)与后续扩展项(P2-P4)。
## 阶段 2:技术栈与架构设计
输出完整的技术架构设计文档,包含:
- 系统架构图(前端、后端、数据库、缓存)
- 模块划分(认证、规则、决策、报表等)
- 关键技术选型理由
- API 设计规范
- 安全设计方案
## 阶段 3:数据库表结构设计
按模块设计表结构,输出:
| 表名 | 用途 | 核心字段 |
|------|------|---------|
| users | 用户信息 | id, username, password_hash, role_id |
| roles | 角色信息 | id, name, permissions |
| black_white_lists | 黑白名单 | id, type, value, description, status |
| risk_features | 风控特征 | id, name, formula, version |
| rules | 规则定义 | id, name, conditions, action, priority |
| decision_flows | 决策流 | id, name, nodes, edges |
| score_cards | 评分卡 | id, name, factors, weights |
| decision_logs | 决策日志 | id, request_id, result, details, created_at |
输出完整的 SQLAlchemy 模型代码预览。
## 阶段 4:技术方案与核心难点
详细说明以下技术方案:
1. **决策流编排实现**:
- 前端:使用 vue-flow 实现拖拽式流程设计
- 后端:解析 DAG(有向无环图)执行决策流程
- 支持的节点类型:开始、结束、条件判断、规则执行、评分计算、API 调用
2. **评分卡模型计算**:
- 权重配置:支持手动配置各因子权重
- 计算逻辑:加权求和,支持非线性变换
- 阈值划分:根据分数划分风险等级
3. **规则引擎**:
- 表达式解析:支持常见运算符和函数
- 规则组合:AND/OR 条件组合
- 优先级处理:按优先级顺序执行
4. **实时决策 API 高并发设计**:
- 请求缓存:Redis 缓存高频请求
- 异步处理:复杂计算异步执行
- 负载均衡:支持水平扩展
## 输出要求
- 每阶段生成独立 Markdown 文件
- 需确认后才能进入下一阶段
- 所有文档和后续代码均输出到项目目录:[项目路径]
"""
return prompt
3.2 计划评估提示词
python
def plan_evaluation_prompt():
"""计划评估提示词"""
prompt = """
# AICoding 计划评估专家
## 角色定义
你是资深 AICoding 评审专家,专精于代码生成方案的逻辑审查与技术可行性评估。
## 核心能力
- 精准解读需求文档,提取关键功能点与技术约束
- 系统性评估 AICoding 提出的修改计划
- 识别修改计划中的逻辑漏洞、冗余步骤、过度设计及潜在技术隐患
- 给出可落地的优化建议
## 思考逻辑
1. 解析需求文档,锚定核心目标与硬性约束
2. 逐条审视修改计划与需求的对应关系
3. 检验技术路径是否最优、步骤是否可执行
4. 判定是否存在遗漏、偏差或风险
5. 形成结构化评估结论
## 行为准则
- 始终以需求文档为唯一评估基准
- 只输出与技术评估直接相关的内容
- 遇到需求文档表述模糊时,明确指出模糊点
- 建议务必具体,禁用笼统表述
## 输出规范
采用以下固定结构输出:
### 需求理解
用一句话概括需求文档核心目标
### 评估意见
**合理部分**:
- [列出计划中合理的部分]
**需调整部分**:
- [列出需要调整的部分及原因]
**不合理部分**:
- [列出不合理的部分及原因]
### 优化建议
- [建议1:具体可落地的优化方案]
- [建议2:具体可落地的优化方案]
- [建议3:具体可落地的优化方案]
### 关键风险提示
[如有性能、安全、可维护性等风险,单独列出]
## 待评估计划
[粘贴需要评估的计划内容]
"""
return prompt
3.3 AICoding 计划执行提示词
python
def plan_execution_prompt():
"""计划执行提示词"""
prompt = """
# AICoding 计划执行指令
## 核心指令
请仔细阅读当前目录 `/docs` 路径的以下文档:
- phase1-requirements.md(需求分析文档)
- phase2-architecture.md(技术架构设计文档)
- phase3-database.md(数据库设计文档)
- phase4-technical-solution.md(技术方案文档)
## 执行要求
根据这些文档,生成完整的项目代码,包括:
### 后端实现
- API 路由定义(FastAPI 路由)
- 服务层实现(业务逻辑)
- 数据访问层(SQLAlchemy 模型)
- 认证授权(JWT)
- 异常处理
- 日志记录
### 数据库相关
- SQLAlchemy 模型定义
- 数据库迁移脚本(Alembic)
- 初始数据填充
### 前端实现(如果有)
- 页面组件(Vue 3 + Element Plus)
- 状态管理(Pinia)
- API 请求封装
- 路由配置
### 配置文件
- .env 文件(环境变量)
- requirements.txt(后端依赖)
- package.json(前端依赖)
- Dockerfile(Docker 配置)
- docker-compose.yml(容器编排)
## 输出方式
- 按模块或文件结构逐步生成
- 每个文件内容完整输出
- 说明文件应该存放的路径
- 提供文件之间的依赖关系说明
## 代码质量要求
- 符合编码规范(PEP 8 等)
- 注释完整清晰
- 错误处理完善
- 安全考虑周全
- 可测试性良好
## 验证要求
- 提供启动指南
- 提供测试方法
- 确保代码可运行
"""
return prompt
4. 提示词优化技巧
4.1 角色设定技巧
python
def role_setting():
"""角色设定技巧"""
roles = {
"专业专家": "你是一名资深的[领域]专家,拥有[年限]年经验...",
"严谨工程师": "你是一名严谨的软件工程师,注重代码质量和安全性...",
"创意设计师": "你是一名富有创意的设计师,擅长用户体验设计...",
"耐心导师": "你是一名耐心的导师,善于用简单易懂的语言解释复杂概念..."
}
return roles
4.2 结构化输出技巧
python
def structured_output():
"""结构化输出技巧"""
formats = {
"JSON": "请以 JSON 格式输出,包含以下字段:...",
"表格": "请以表格形式输出,包含以下列:...",
"列表": "请按以下格式输出:\n1. ...\n2. ...",
"代码块": "请以代码块形式输出,包含注释..."
}
return formats
4.3 约束条件设定
python
def constraint_setting():
"""约束条件设定"""
constraints = {
"技术约束": "必须使用[技术栈],不能使用[禁用技术]",
"时间约束": "代码执行时间不能超过[时间]秒",
"长度约束": "输出不超过[字数]字",
"风格约束": "使用[正式/轻松/专业]风格",
"安全约束": "注意防止[安全风险]"
}
return constraints
4.4 示例引导技巧
python
def example_guidance():
"""示例引导技巧"""
examples = {
"输入输出示例": """
输入:[示例输入]
输出:[示例输出]
请按照以上格式输出。
""",
"错误示例对比": """
❌ 错误示例:[错误输出]
✅ 正确示例:[正确输出]
请避免错误示例中的问题,按照正确示例输出。
"""
}
return examples
5. 提示词模板库管理
5.1 模板分类管理
python
class PromptTemplateManager:
"""提示词模板管理器"""
def __init__(self):
self.templates = {}
def add_template(self, category, name, template):
"""添加模板"""
if category not in self.templates:
self.templates[category] = {}
self.templates[category][name] = template
def get_template(self, category, name):
"""获取模板"""
return self.templates.get(category, {}).get(name)
def list_templates(self, category=None):
"""列出模板"""
if category:
return self.templates.get(category, {})
return self.templates
def generate_prompt(self, category, name, **kwargs):
"""生成填充后的提示词"""
template = self.get_template(category, name)
if template:
return template.format(**kwargs)
return None
5.2 模板使用示例
python
# 初始化模板管理器
manager = PromptTemplateManager()
# 添加模板
manager.add_template("项目开发", "需求分析", requirements_analysis_prompt())
manager.add_template("项目开发", "架构设计", architecture_design_prompt())
manager.add_template("项目开发", "代码生成", code_generation_prompt())
# 使用模板
prompt = manager.generate_prompt(
"项目开发",
"需求分析",
project_name="智能风控系统",
description="企业级风控决策引擎"
)
6. 提示词工程最佳实践
6.1 提示词编写流程
python
def prompt_writing_workflow():
"""提示词编写流程"""
steps = [
"明确目标:确定要让 AI 完成什么任务",
"分析需求:理解任务的输入输出要求",
"设计结构:规划提示词的组织结构",
"编写初稿:撰写第一版提示词",
"测试验证:使用示例测试提示词效果",
"优化迭代:根据反馈优化提示词",
"文档记录:记录提示词的使用方法和效果"
]
return steps
6.2 常见问题与解决方案
| 问题 | 解决方案 |
|---|---|
| AI 理解偏差 | 增加示例、明确约束、拆分任务 |
| 输出格式错误 | 明确输出格式要求、提供格式示例 |
| 输出质量不稳定 | 使用 Few-Shot 示例、降低温度参数 |
| 输出过于冗长 | 设置长度限制、明确简洁要求 |
| 遗漏关键信息 | 列出检查清单、要求逐项确认 |
6.3 性能优化建议
python
def prompt_performance_optimization():
"""提示词性能优化"""
tips = {
"精简提示词": "去除冗余内容,只保留必要信息",
"分层提示": "复杂任务拆分为多个简单提示",
"缓存复用": "重复使用的提示词片段缓存起来",
"动态生成": "根据任务类型动态生成提示词",
"版本管理": "对提示词进行版本控制"
}
return tips
7. 总结
提示词工程是 VibeCoding 的核心技能,通过精心设计的提示词,可以引导 AI 生成高质量的代码和文档。
核心要点:
- 模板化:使用预定义的提示词模板提高效率
- 结构化:采用清晰的结构组织提示词内容
- 迭代优化:根据反馈不断改进提示词
- 分类管理:建立提示词模板库方便复用
关键技巧:
- 设定明确的角色
- 提供完整的背景信息
- 使用结构化输出格式
- 添加约束条件和示例
通过掌握提示词工程,可以充分发挥 VibeCoding 的潜力,实现高效开发。