golang 调用chatgpt api

本文展示了如何使用Golang发送HTTPPOST请求到ChatGPTAPI,获取关于Golang和Python之间差异的信息,但强调了ChatGPTAPI访问权限的限制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package main

import (
	"bytes"
	"encoding/json"
	"fmt"
	"io/ioutil"
	"net/http"
)

// ChatGPTRequest represents the data sent to the ChatGPT API.
type ChatGPTRequest struct {
	Prompt string `json:"prompt"`
}

// ChatGPTResponse represents the data received from the ChatGPT API.
type ChatGPTResponse struct {
	Choices []struct {
		Text string `json:"text"`
	} `json:"choices"`
}

func main() {
	// Replace with your actual API key
	apiKey := "sk-xxxxxxxxx"

	// Set the appropriate API endpoint
	url := "https://api.openai.com/v1/engines/gpt-3.5-turbo-16k/completions"

	// Create a new request
	reqData := ChatGPTRequest{Prompt: "golang和python的区别"}
	reqBody, _ := json.Marshal(reqData)
	req, _ := http.NewRequest("POST", url, bytes.NewBuffer(reqBody))
	req.Header.Set("Content-Type", "application/json")
	req.Header.Set("Authorization", "Bearer "+apiKey)

	// Send the request
	client := &http.Client{}
	resp, err := client.Do(req)
	if err != nil {
		fmt.Println("Error sending request to API: ", err)
		return
	}
	defer resp.Body.Close()

	// Read and parse the response
	body, _ := ioutil.ReadAll(resp.Body)
	var chatGPTResponse ChatGPTResponse
	_ = json.Unmarshal(body, &chatGPTResponse)

	// Print the response
	fmt.Println("Response from ChatGPT: ", string(body))
}

ChatGPT4 会员并没有ChatGPT API 的访问权限
使用 ChatGPT API,需单独申请和购买
没有单独购买 ChatGPT API 的调用api 接口报错如下:
在这里插入图片描述

### 如何调用 ChatGPT 3.5 的 API 为了调用 ChatGPT 3.5 (即 `gpt-3.5-turbo`) 的 API,可以使用 OpenAI 提供的 Python 库来简化请求过程。下面是一个简单的例子说明如何实现这一点。 #### 安装依赖库 首先,确保已经安装了必要的软件包。可以通过执行如下命令完成安装: ```bash yarn add openai ``` 这段代码展示了怎样通过 Yarn 来添加 OpenAI SDK 到项目中的方法[^5]。 #### 发送消息给模型并获取回复 接着,构建一个基本的消息对象列表作为输入传递给模型,并接收来自模型的回答。这里有一个具体的实例用于发送用户问题至指定版本 (`gpt-3.5-turbo`) 的聊天补全接口: ```python import openai response = openai.ChatCompletion.create( model="gpt-3.5-turbo", messages=[ {"role": "user", "content": "Your Input Here"} ] ) ``` 上述代码片段中,`model` 参数指定了所使用的具体模型名称;而 `messages` 是由字典组成的列表,其中每个字典代表一条对话记录,包括发言者的身份(`role`)以及所说的内容(`content`). 这里仅包含了一个用户的提问信息[^1]. 对于更复杂的场景,比如当涉及到函数调用时,则可以在原有基础上进一步扩展参数设置。例如,在查询数据库寻找符合条件的商品时可采用这种方式: ```python user_question = "I need the top 2 products where the price is less than 2.00" messages = [ { "role": "user", "content": user_question } ] response = openai.ChatCompletion.create( model="gpt-3.5-turbo-0613", messages=messages, functions=functions # 需预先定义好这些辅助功能的具体形式 ) response_message = response["choices"][0]["message"] messages.append(response_message) ``` 此部分代码不仅包含了向特定版本(`gpt-3.5-turbo-0613`)发起请求的过程,还加入了额外的功能支持——这允许模型基于传入的数据结构做出更加智能化的操作响应[^2].
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值