sdk_generate/internal/prompts/valid.go

74 lines
2.1 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/validate_prompt.go
package prompts
import (
"github.com/sashabaranov/go-openai"
)
// GetValidatePrompt 验证代码完整性,直接返回修复后的代码
func GetValidatePrompt(refineDoc, sdkName, codeContent string) openai.ChatCompletionRequest {
return openai.ChatCompletionRequest{
Messages: []openai.ChatCompletionMessage{
{
Role: openai.ChatMessageRoleSystem,
Content: "你是代码审查专家。检查生成的 SDK 代码是否完整实现了文档中的所有内容。",
},
{
Role: openai.ChatMessageRoleUser,
Content: ValidPrompt(refineDoc, sdkName, codeContent),
},
},
Temperature: 0.1, // 更低,保证确定性输出
TopP: 0.9, // 核采样,平衡多样性和质量
MaxTokens: 65536, // 加大到 64k确保足够
FrequencyPenalty: 0.0, // 代码生成不需要
PresencePenalty: 0.0, // 代码生成不需要
Stop: nil, // 不设置,让模型完整输出
}
}
func ValidPrompt(codeContent, sdkName, refineDoc string) string {
return `你是代码审查专家。检查生成的 SDK 代码是否完整实现了文档中的所有内容。
## 精炼文档
` + refineDoc + `
## 当前代码
` + codeContent + `
## 检查清单
1. 文档中的所有接口是否都已实现?
2. 每个接口的请求参数是否完整(字段名、类型、必填)?
3. 每个接口的响应字段是否完整?
4. 认证方式是否已实现?
5. 加密方式是否已实现?
6. 签名方式是否已实现?
7. 错误码是否已定义?
## 输出规则(严格遵守)
**情况一:审查通过,没有任何问题**
只输出两个字符:` + "`OK`" + `
**情况二:存在问题**
输出修复后的**全量代码**,每个文件用以下格式:
// File: ` + sdkName + `/文件名.go
` + "```go" + `
package ` + sdkName + `
// ... 代码内容 ...
` + "```" + `
## 重要提醒
1. 如果存在问题,必须输出**所有文件**的完整代码,不能只输出修改的部分
2. 保持原有代码风格不变
3. 补全所有遗漏的接口、参数、加密/签名方式
4. 不要加任何描述性注释
`
}