sdk_generate/internal/prompts/fix.go

59 lines
1.7 KiB
Go
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// internal/prompts/fix_prompt.go
package prompts
import "github.com/sashabaranov/go-openai"
func FixPrompt(codeContent, errorMsg, sdkName, refineDoc string) openai.ChatCompletionRequest {
return openai.ChatCompletionRequest{
Messages: []openai.ChatCompletionMessage{
{
Role: openai.ChatMessageRoleSystem,
Content: "你是一个资深的 Go 语言工程师。生成的 SDK 代码在编译/格式化时出现错误,请修复。",
},
{
Role: openai.ChatMessageRoleUser,
Content: GetFixPrompt(codeContent, errorMsg, sdkName, refineDoc),
},
},
Temperature: 0.1, // 更低,保证确定性输出
TopP: 0.9, // 核采样,平衡多样性和质量
MaxTokens: 65536, // 加大到 64k确保足够
FrequencyPenalty: 0.0, // 代码生成不需要
PresencePenalty: 0.0, // 代码生成不需要
Stop: nil, // 不设置,让模型完整输出
}
}
// GetFixPrompt 构建修复代码的提示词
func GetFixPrompt(codeContent, errorMsg, refineDoc, sdkName string) string {
return `
## 错误信息
` + errorMsg + `
## 文档(供参考)
` + refineDoc + `
## 当前代码
` + codeContent + `
## ⚠️ 重要:输出格式要求(必须严格遵守)
每个文件必须以以下格式输出:
// File: ` + sdkName + `/文件名.go
` + "```go" + `
package ` + sdkName + `
// ... 代码内容 ...
` + "```" + `
## 修复要求
1. 根据错误信息修复代码
2. 确保代码符合 Go 语法规范
3. 不要改变接口定义和业务逻辑
4. 保持原有代码风格
5. 请直接输出修复后的完整代码,不要有任何额外文字
请返回修复后的完整代码。`
}