使用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)}

代码说明

  1. 导入必要的包: 代码首先导入了encoding/jsonfmtlog包,用于处理JSON数据、格式化输出和记录错误信息。2. 定义数据结构: OpenAIResponseOpenAIRequest结构体分别用于表示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模型进行对话交互了。你可以根据自己的需求修改代码,例如更改请求参数、处理多轮对话等。

Go语言调用OpenAI GPT-3.5 Turbo API实现对话功能

原文地址: https://www.cveoy.top/t/topic/lOi 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录