package prompts import "github.com/sashabaranov/go-openai" func SDKGeneratorPrompt(prompt string) openai.ChatCompletionRequest { return openai.ChatCompletionRequest{ Messages: []openai.ChatCompletionMessage{ { Role: openai.ChatMessageRoleSystem, Content: "你是一个资深的 Go 语言工程师,擅长生成高质量、可直接编译的 SDK 代码。", }, { Role: openai.ChatMessageRoleUser, Content: prompt, }, }, Temperature: 0.1, // 更低,保证确定性输出 TopP: 0.9, // 核采样,平衡多样性和质量 MaxTokens: 65536, // 加大到 64k,确保足够 FrequencyPenalty: 0.0, // 代码生成不需要 PresencePenalty: 0.0, // 代码生成不需要 Stop: nil, // 不设置,让模型完整输出 } } const GenSDKPrompt = `你是一个资深的 Go 语言工程师,擅长生成高质量的 SDK 代码。 ## 任务 根据用户提供的 API 接口文档(Markdown 格式),生成一个完整的 Go SDK 代码工程。 ## ⚠️ 重要:输出格式要求(必须严格遵守) 每个文件必须以以下格式输出: // File: {{sdk_name}}/文件名.go ` + "```go" + ` package {{sdk_name}} // ... 代码内容 ... ` + "```" + ` ## ⚠️ 重要:导入路径规范(必须遵守) 生成的 SDK 代码中,**示例代码(example_test.go)必须使用本地导入路径**,而不是远程 GitHub 路径: ✅ 正确示例: ` + "```go" + ` package {{sdk_name}} import ( "context" "fmt" "time" "net/http" ) ` + "```" + ` ❌ 错误示例(禁止使用): ` + "```go" + ` import sdk "github.com/bluebrothers/marketing-sdk-go" // 禁止!这会拉取远程包 ` + "```" + ` ## 文件结构 {{sdk_name}}/ ├── go.mod # 模块名为 generated-sdk ├── client.go ├── types.go ├── crypto.go ├── errors.go ├── api_key.go └── example_test.go # 使用本地导入路径 ## 代码规范 1. 遵循 Effective Go 规范 2. 所有导出类型/方法必须有 godoc 注释 3. context.Context 作为方法的第一个参数 4. 错误处理统一返回 error ## 客户端设计 1. 提供 NewClient 构造函数,支持 Option 模式 2. 支持 WithBaseURL、WithTimeout、WithHTTPClient 等配置 3. 根据文档中描述的认证方式实现认证逻辑 ## ⚠️ 加密/签名实现规范(必须遵守) **核心原则:使用成熟的第三方库,不要自己实现加解密算法。** ### 推荐使用的第三方库 **AES 加密:** ` + "```go" + ` import "crypto/aes" // Go 标准库 import "crypto/cipher" // Go 标准库 // 或使用更高级的封装 import "github.com/tink-crypto/tink-go/v2/aead" ` + "```" + ` **RSA 加密/签名:** ` + "```go" + ` import "crypto/rsa" // Go 标准库 import "crypto/rand" // Go 标准库 ` + "```" + ` **HMAC 签名:** ` + "```go" + ` import "crypto/hmac" import "crypto/sha256" ` + "```" + ` **SM2/SM3/SM4(国密):** ` + "```go" + ` import "github.com/tjfoc/gmsm/sm2" import "github.com/tjfoc/gmsm/sm3" import "github.com/tjfoc/gmsm/sm4" ` + "```" + ` **JWT:** ` + "```go" + ` import "github.com/golang-jwt/jwt/v5" ` + "```" + ` ### 禁止的行为 ❌ **不要自己实现**: - 不要自己写 AES 加密函数(除非调用标准库) - 不要自己写 RSA 签名函数(除非调用标准库) - 不要自己实现 PKCS7 填充(使用标准库或成熟库) - 不要自己实现任何加解密算法 ✅ **正确做法**: - 调用 Go 标准库 "crypto/*" 包 - 使用成熟的开源库(如 gmsm、jwt 等) - 如果文档要求特殊算法,先查找是否有现成的 Go 实现 - 只在标准库和成熟库都不支持时才考虑自己实现 ## ⚠️ 单元测试规范(必须严格遵守) 1. 所有单元测试必须写在 example_test.go 文件中 2. 必须使用标准库 testing 包 3. **每个 API 接口必须对应一个独立的单元测试函数,格式必须为:** ## 关键要求 1. 生成的代码必须可直接编译运行 2. go的版本为1.21 3. **go.mod 的 module 名使用 {{sdk_name}}** 4. 不要引用任何不存在的远程 GitHub 仓库 ## 接口文档 %s`