AI 编程助手实战
High Contrast
Dark Mode
Light Mode
Sepia
Forest
2 min read348 words

AI 编程助手实战

利用 Prompt 工程打造高效的 AI 编程助手——从代码生成到 Review 到调试,全面提升开发效率。

编程助手架构

graph TB A[开发者需求] --> B{任务类型} B --> C[代码生成] B --> D[代码Review] B --> E[Bug 调试] B --> F[代码重构] B --> G[文档生成] C --> H[选择模板] D --> H E --> H F --> H G --> H H --> I[构建 Prompt] I --> J[LLM 推理] J --> K[后处理
格式化+验证] style B fill:#ede7f6,stroke:#5e35b1,stroke-width:2px style H fill:#e3f2fd,stroke:#1565c0,stroke-width:2px style K fill:#c8e6c9,stroke:#43a047,stroke-width:2px

编程 Prompt 模板库

from dataclasses import dataclass
from enum import Enum
class CodingTask(Enum):
GENERATE = "code_generation"
REVIEW = "code_review"
DEBUG = "bug_fix"
REFACTOR = "refactoring"
DOCUMENT = "documentation"
TEST = "test_generation"
@dataclass
class CodingPrompt:
"""编程任务 Prompt"""
task: CodingTask
language: str
context: str = ""
code: str = ""
requirements: str = ""
# 任务特定的系统提示
SYSTEM_PROMPTS = {
CodingTask.GENERATE: (
"你是一个精通{lang}的高级开发者。"
"生成高质量、可运行的代码。遵循{lang}最佳实践。"
"包含类型标注和错误处理。"
),
CodingTask.REVIEW: (
"你是一个严谨的代码审查专家。"
"从以下维度审查代码:\n"
"1. 正确性(逻辑错误)\n"
"2. 安全性(注入、泄漏)\n"
"3. 性能(时间/空间复杂度)\n"
"4. 可读性(命名、结构)\n"
"5. 最佳实践"
),
CodingTask.DEBUG: (
"你是一个经验丰富的调试专家。"
"分析代码和错误信息,找到根因并给出修复方案。"
"解释为什么会出错,以及修复的原理。"
),
CodingTask.REFACTOR: (
"你是一个重构专家。"
"在不改变外部行为的前提下优化代码结构。"
"说明重构的动机和每处改动的原因。"
),
CodingTask.TEST: (
"你是一个测试工程师。"
"为给定代码编写全面的单元测试。"
"覆盖:正常路径、边界条件、异常情况。"
"使用{lang}主流测试框架。"
),
}
def build_system(self) -> str:
template = self.SYSTEM_PROMPTS.get(self.task, "")
return template.format(lang=self.language)
def build_user(self) -> str:
parts = []
if self.requirements:
parts.append(f"## 需求\n{self.requirements}")
if self.context:
parts.append(f"## 上下文\n{self.context}")
if self.code:
parts.append(f"## 代码\n```{self.language}\n{self.code}\n```")
return "\n\n".join(parts)
# 示例:代码审查
review_prompt = CodingPrompt(
task=CodingTask.REVIEW,
language="python",
code="""
def get_user(id):
query = f"SELECT * FROM users WHERE id = {id}"
result = db.execute(query)
return result[0] if result else None
""",
requirements="检查安全漏洞和性能问题",
)
print("=== System Prompt ===")
print(review_prompt.build_system())
print("\n=== User Prompt ===")
print(review_prompt.build_user())

高级提示技巧

from dataclasses import dataclass
@dataclass
class CodeGenConfig:
"""代码生成高级配置"""
# 分步生成策略
STEP_BY_STEP = """
请按以下步骤生成代码:
1. **分析需求**:列出核心功能点
2. **设计接口**:定义类/函数签名和类型
3. **实现逻辑**:编写核心代码
4. **错误处理**:添加异常处理和边界检查
5. **编写测试**:至少3个测试用例
"""
# 约束注入
CONSTRAINTS = {
"performance": "优化时间复杂度,避免 O(n²) 以上的算法",
"security": "使用参数化查询防SQL注入,验证所有外部输入",
"readability": "单一职责,函数不超过20行,有意义的变量名",
"compatibility": "使用标准库,兼容 Python 3.9+",
}
@classmethod
def build_constraints(cls, tags: list[str]) -> str:
lines = ["## 约束条件"]
for tag in tags:
if tag in cls.CONSTRAINTS:
lines.append(f"- **{tag}**: {cls.CONSTRAINTS[tag]}")
return "\n".join(lines)
# 生成带约束的Prompt
constraints = CodeGenConfig.build_constraints(
["security", "performance", "readability"]
)
print(constraints)

编程 Prompt 模式对比

模式 描述 质量 Token消耗 适用场景
直接生成 "写一个XX函数" ★★★ 简单函数
分步生成 先设计后实现 ★★★★ 中等复杂度
示例驱动 提供输入输出示例 ★★★★ 中高 数据处理
测试驱动 先写测试再实现 ★★★★★ 核心逻辑
迭代优化 生成→审查→修改 ★★★★★ 最高 生产代码

实用 Prompt 片段

PROMPTS = {
# Bug 修复模板
"debug": """
错误信息:

{error}


相关代码:
```{lang}
{code}

请:1. 定位根因 2. 给出修复代码 3. 解释为什么出错 """,

# 代码解释模板
"explain": """

请用中文解释以下代码,面向{level}开发者: - 整体功能 - 核心算法/设计模式 - 时间/空间复杂度 - 潜在问题

{code}

""",

# API 设计模板
"api_design": """

需求:{requirement}

请设计 RESTful API: 1. 端点列表 (方法 + 路径) 2. 请求/响应 JSON Schema 3. 错误码规范 4. 认证方式建议 """, } ```

本章小结

延伸阅读:自动化流水线