Go语言调用OpenAI GPT-3.5 Turbo API实现对话功能
使用Go语言调用OpenAI GPT-3.5 Turbo API进行对话
想要用Go语言编写与OpenAI的GPT-3.5 Turbo模型交互的程序吗?以下是一段示例代码,为你展示如何实现这一目标。
准备工作
首先,你需要安装github.com/go-resty/resty/v2包来进行HTTP请求。你可以在终端中使用以下命令进行安装:shellgo get github.com/go-resty/resty/v2
代码示例gopackage main
import ( 'encoding/json' 'fmt' 'log'
'github.com/go-resty/resty/v2')
type OpenAIResponse struct { ID string json:'id' Object string json:'object' Model string json:'model' Created int json:'created' Choices []struct { Message struct { Content string json:'content' } json:'message' } json:'choices'}
type OpenAIRequest struct { Prompt string json:'prompt' MaxTurns int json:'max_turns'}
func main() { // 设置你的OpenAI API密钥 apiKey := 'YOUR_API_KEY'
// 设置请求参数 request := OpenAIRequest{ Prompt: '你的问题', MaxTurns: 5, // 最大对话轮数 }
// 发送请求 client := resty.New() resp, err := client.R(). SetHeader('Authorization', fmt.Sprintf('Bearer %s', apiKey)). SetHeader('Content-Type', 'application/json'). SetBody(request). Post('https://api.openai.com/v1/chat/completions')
if err != nil { log.Fatal(err) }
// 解析响应 var response OpenAIResponse err = json.Unmarshal(resp.Body(), &response) if err != nil { log.Fatal(err) }
// 提取回答 answer := response.Choices[0].Message.Content fmt.Println('回答:', answer)}
代码说明
- 导入必要的包: 代码首先导入了
encoding/json、fmt和log包,用于处理JSON数据、格式化输出和记录错误信息。2. 定义数据结构:OpenAIResponse和OpenAIRequest结构体分别用于表示OpenAI API的响应和请求数据结构。3. 设置API密钥: 将代码中的YOUR_API_KEY替换为你的实际OpenAI API密钥。4. 构建请求: 创建一个OpenAIRequest实例,设置Prompt为你想询问GPT-3.5的问题,MaxTurns为最大对话轮数。5. 发送请求: 使用resty库发送HTTP POST请求到OpenAI API端点,并在请求头中设置API密钥和内容类型。6. 解析响应: 将API返回的JSON响应解析为OpenAIResponse结构体。7. 提取回答: 从OpenAIResponse结构体中提取GPT-3.5的回答,并打印到控制台。
总结
通过以上步骤,你就可以使用Go语言与GPT-3.5 Turbo模型进行对话交互了。你可以根据自己的需求修改代码,例如更改请求参数、处理多轮对话等。
原文地址: https://www.cveoy.top/t/topic/lOi 著作权归作者所有。请勿转载和采集!