提示模板
ByteBuddy 允许您使用 promptTemplates 配置为不同模型角色自定义提示模板.此功能使您能够针对特定任务(如编辑、应用更改和自动完成)定制 AI 的行为.
配置概述
提示模板在您的 config.yaml 文件中的模型定义内配置:
yaml
models:
- name: "gpt-4"
provider: "openai"
model: "gpt-4"
apiKey: "${OPENAI_API_KEY}"
roles:
- chat
- edit
- apply
- autocomplete
promptTemplates:
edit: |
这是编辑前的代码:
${original_code}
请根据以下说明进行编辑:${instructions}
仅提供编辑后的代码, 无需解释.
apply: |
原始代码:${original_code}
新代码:${new_code}
autocomplete: |
完成以下代码:
${prefix}可用的模板类型
1. 编辑模板 (promptTemplates.edit)
使用 /edit 命令或通过编辑界面编辑代码时使用.
可用变量:
${original_code}:要编辑的原始代码${instructions}:用户的编辑说明${filepath}:正在编辑的文件路径${language}:文件的编程语言
默认模板:
yaml
promptTemplates:
edit: |
这是编辑前的代码:
${original_code}
请根据以下说明进行编辑:${instructions}
仅提供编辑后的代码, 无需解释.自定义示例:
yaml
models:
- name: "gpt-4"
provider: "openai"
model: "gpt-4"
promptTemplates:
edit: |
您是一名专业的软件工程师.根据用户的说明编辑以下代码.
文件:${filepath}
语言:${language}
原始代码:
```${language}
${original_code}
```
说明:${instructions}
要求:
1. 保持代码质量和最佳实践
2. 为复杂更改添加适当的注释
3. 确保向后兼容性
仅提供编辑后的代码.2. 应用模板 (promptTemplates.apply)
应用 AI 生成的代码更改时使用.
可用变量:
${original_code}:原始代码${new_code}:要应用的新代码${filepath}:文件路径
默认模板:
yaml
promptTemplates:
apply: |
原始代码:${original_code}
新代码:${new_code}自定义示例:
yaml
models:
- name: "gpt-4"
provider: "openai"
model: "gpt-4"
promptTemplates:
apply: |
<code>${original_code}</code>
<update>${new_code}</update>3. 自动完成模板 (promptTemplates.autocomplete)
用于代码自动完成建议.
可用变量:
${prefix}:光标前的代码前缀${suffix}:光标后的代码后缀(如果可用)${filepath}:文件路径${language}:编程语言
默认模板:
yaml
promptTemplates:
autocomplete: |
完成以下代码:
${prefix}自定义示例:
yaml
models:
- name: "gpt-4"
provider: "openai"
model: "gpt-4"
promptTemplates:
autocomplete: |
您是一个代码完成助手.完成以下代码片段.
文件:${filepath}
语言:${language}
当前代码:
```${language}
${prefix}
```
仅提供完成部分, 无需解释.4. 聊天模板 (promptTemplates.chat)
用于一般聊天对话.
可用变量:
${messages}:对话历史${system_message}:系统消息(如果配置)
自定义示例:
yaml
models:
- name: "gpt-4"
provider: "openai"
model: "gpt-4"
promptTemplates:
chat: |
您是 ByteBuddy, 一个 AI 编程助手.帮助用户完成他们的编码任务.
对话历史:
${messages}
当前请求:${current_message}
提供有帮助、准确且简洁的响应.模板语法
ByteBuddy 使用 Handlebars 语法进行提示模板化, 支持基本的变量替换.
基本变量
yaml
promptTemplates:
edit: |
你好, ${name}!变量替换
支持在模板中使用以下变量:
${original_code}:原始代码${instructions}:编辑说明${filepath}:文件路径${language}:编程语言${new_code}:新代码${prefix}:代码前缀${suffix}:代码后缀${messages}:对话历史
高级配置
模型特定模板
不同的模型可以有不同的提示模板:
yaml
models:
- name: "gpt-4-editor"
provider: "openai"
model: "gpt-4"
apiKey: "${OPENAI_API_KEY}"
roles:
- edit
promptTemplates:
edit: |
[GPT-4 特定编辑模板]
${original_code}
说明:${instructions}
- name: "claude-3-applier"
provider: "anthropic"
model: "claude-3-sonnet"
apiKey: "${ANTHROPIC_API_KEY}"
roles:
- apply
promptTemplates:
apply: |
<human>应用此更改:</human>
<original>${original_code}</original>
<new>${new_code}</new>模板中的环境变量
您可以在模板中使用环境变量:
yaml
models:
- name: "gpt-4"
provider: "openai"
model: "gpt-4"
promptTemplates:
edit: |
项目:${PROJECT_NAME}
环境:${ENVIRONMENT}
代码:${original_code}
说明:${instructions}使用案例
1. 代码审查模板
yaml
models:
- name: "gpt-4"
provider: "openai"
model: "gpt-4"
promptTemplates:
edit: |
您是一名高级代码审查员.分析以下代码:
文件:${filepath}
语言:${language}
要审查的代码:
```${language}
${original_code}
```
审查标准:
1. 代码质量和可读性
2. 安全漏洞
3. 性能问题
4. 最佳实践合规性
5. 错误处理
提供具体、可操作的反馈.2. 文档生成器
yaml
models:
- name: "gpt-4"
provider: "openai"
model: "gpt-4"
promptTemplates:
edit: |
为此 ${language} 代码生成文档:
```${language}
${original_code}
```
包括:
1. 函数/类描述
2. 参数和返回值
3. 使用示例
4. 边缘情况和注意事项
使用 Markdown 格式.3. 测试生成器
yaml
models:
- name: "gpt-4"
provider: "openai"
model: "gpt-4"
promptTemplates:
edit: |
为此 ${language} 代码生成测试:
```${language}
${original_code}
```
要求:
1. 覆盖所有公共方法
2. 包括边缘情况
3. 遵循测试框架约定
4. 添加适当的断言
仅提供测试代码.4. 重构助手
yaml
models:
- name: "gpt-4"
provider: "openai"
model: "gpt-4"
promptTemplates:
edit: |
重构此 ${language} 代码以改进:
1. 可读性
2. 可维护性
3. 性能
原始代码:
```${language}
${original_code}
```
重构目标:${instructions}
提供重构后的代码并解释更改.最佳实践
1. 保持模板简洁
yaml
# ✅ 良好
models:
- name: "gpt-4"
promptTemplates:
edit: |
编辑:${original_code}
说明:${instructions}
# ❌ 避免
models:
- name: "gpt-4"
promptTemplates:
edit: |
您是一个 AI 助手... [非常长的系统消息]
用户希望您... [冗余说明]
请... [多个请求]
原始:${original_code}
说明:${instructions}2. 使用适当的变量
yaml
# ✅ 良好 - 使用可用变量
models:
- name: "gpt-4"
promptTemplates:
edit: |
文件:${filepath}
语言:${language}
代码:${original_code}
说明:${instructions}
# ❌ 避免 - 使用不存在的变量
models:
- name: "gpt-4"
promptTemplates:
edit: |
用户:${username} # 此变量不存在
时间:${timestamp} # 此变量不存在
代码:${original_code}3. 保持一致性
yaml
# ✅ 良好 - 一致的格式
models:
- name: "gpt-4"
promptTemplates:
edit: |
[编辑]
文件:${filepath}
代码:${original_code}
说明:${instructions}
apply: |
[应用]
原始:${original_code}
新:${new_code}
# ❌ 避免 - 不一致的格式
models:
- name: "gpt-4"
promptTemplates:
edit: |
编辑模式
=========
代码:${original_code}
说明:${instructions}
apply: |
请应用此更改:
- 旧:${original_code}
- 新:${new_code}4. 测试您的模板
在 config.yaml 中配置模板后, 通过实际使用来测试模板效果:
- 在聊天中尝试编辑功能
- 检查 AI 响应符合预期
- 根据需要调整模板内容
故障排除
常见问题
模板不工作
- 检查变量名是否与可用变量匹配
- 验证 YAML 语法是否正确
- 确保模板分配给正确的模型
意外的 AI 响应
- 模板可能过于冗长或令人困惑
- 说明可能含糊不清
- 尝试简化模板
性能问题
- 非常长的模板会增加令牌使用量
- 考虑优化模板长度
调试技巧
检查配置文件 验证
config.yaml文件的语法和结构.使用简单测试 从简单的模板开始, 逐步增加复杂性.
检查模型兼容性 确保模板适合所选模型的提示格式.
完整配置示例
yaml
models:
- name: "gpt-4-editor"
provider: "openai"
model: "gpt-4"
apiKey: "${OPENAI_API_KEY}"
roles:
- edit
- apply
- autocomplete
promptTemplates:
edit: |
您是专业的软件工程师.请根据以下说明编辑代码:
文件:${filepath}
语言:${language}
原始代码:
```${language}
${original_code}
```
说明:${instructions}
要求:
1. 保持代码质量
2. 遵循最佳实践
3. 保持现有代码风格
仅提供编辑后的代码.
apply: |
应用代码更改:
原始代码:${original_code}
新代码:${new_code}
autocomplete: |
完成以下代码:
```${language}
${prefix}
```
文件:${filepath}
仅提供完成部分, 无需解释.
- name: "claude-3-autocomplete"
provider: "anthropic"
model: "claude-3-haiku"
apiKey: "${ANTHROPIC_API_KEY}"
roles:
- autocomplete
promptTemplates:
autocomplete: |
完成代码片段:
```${language}
${prefix}
```
考虑文件上下文:${filepath}
仅提供代码完成部分.
context:
- provider: "codebase"
- provider: "diff"
rules:
- "始终包含适当的错误处理"
- "遵循现有代码风格"自定义提示模板使您能够根据特定的工作流程和要求定制 ByteBuddy 的行为, 提高 AI 协助的质量和相关性.