71 lines
1.9 KiB
Go
71 lines
1.9 KiB
Go
package prompts
|
||
|
||
import "github.com/sashabaranov/go-openai"
|
||
|
||
// BuildRefinePrompt 构建文档精炼的请求
|
||
func BuildRefinePrompt(rawDoc string) openai.ChatCompletionRequest {
|
||
return openai.ChatCompletionRequest{
|
||
Messages: []openai.ChatCompletionMessage{
|
||
{
|
||
Role: openai.ChatMessageRoleSystem,
|
||
Content: `你是一个专业的 API 文档分析专家,擅长从各种格式的文档中提取技术信息。你的输出必须准确、完整,因为后续会基于你的输出生成可运行的代码。`,
|
||
},
|
||
{
|
||
Role: openai.ChatMessageRoleUser,
|
||
Content: RefinePrompt(rawDoc),
|
||
},
|
||
},
|
||
Temperature: 0.1,
|
||
TopP: 0.9,
|
||
MaxTokens: 65536,
|
||
FrequencyPenalty: 0.0,
|
||
PresencePenalty: 0.0,
|
||
}
|
||
}
|
||
|
||
// RefinePrompt 文档精炼提示词模板
|
||
func RefinePrompt(rawDoc string) string {
|
||
return `分析以下 API 文档,为后续代码生成做准备。
|
||
|
||
## 你的任务
|
||
|
||
1. 判断文档类型:是"调用文档"(生成客户端 SDK)还是"对接文档"(生成服务端骨架)
|
||
2. 完整提取所有接口信息(路径、方法、参数、响应)
|
||
3. 完整提取认证/加密/签名细节
|
||
4. 去除营销文案、流程说明等噪音,但保留所有技术信息
|
||
|
||
## 必须保留的内容
|
||
|
||
- 所有接口(一个不漏)
|
||
- 所有参数和字段(包括类型、必填、描述)
|
||
- 所有错误码
|
||
- 认证、加密、签名的完整流程
|
||
- 所有示例
|
||
|
||
## 可以去掉的内容
|
||
|
||
- 公司介绍、平台介绍
|
||
- 接入流程步骤
|
||
- 联调建议
|
||
- 重复内容
|
||
|
||
## 输出格式
|
||
|
||
` + "```" + `
|
||
文档类型:[调用文档/对接文档/混合型]
|
||
|
||
[接口列表...保持完整]
|
||
[认证加密签名...保持完整]
|
||
[错误码...保持完整]
|
||
` + "```" + `
|
||
|
||
## 关键原则
|
||
|
||
1. **完整性优先**:不确定是否重要的信息,保留
|
||
2. **忠于原文**:类型、字段名、示例值保持原样,不要修改
|
||
3. **不编造**:文档中没有的信息,不要补充
|
||
|
||
原始文档:
|
||
` + rawDoc
|
||
}
|