前言
OpenAI差不多都写烂了,我这边就简单写个如何调用接口的吧,大家在自己玩玩
如何调用?两种方法
1 原生HTTP接口
直接上代码吧:
代码语言:javascript复制package main
import (
"bytes"
"encoding/json"
"fmt"
"io"
"net/http"
)
const ASAK = "sk-xxxxxxxxxxxxxxxxxxxxxxxxx"
type Payload struct {
Prompt string `json:"prompt"`
MaxTokens int64 `json:"max_tokens"`
Temperature float64 `json:"temperature"`
TopP int64 `json:"top_p"`
FrequencyPenalty int64 `json:"frequency_penalty"`
PresencePenalty int64 `json:"presence_penalty"`
Model string `json:"model"`
}
func main() {
data := Payload{
Prompt: "原神",
MaxTokens: 2048,
Temperature: 0.5,
TopP: 0,
FrequencyPenalty: 0,
PresencePenalty: 0,
Model: "text-davinci-003",
}
payloadBytes, err := json.Marshal(data)
if err != nil {
// handle err
}
body := bytes.NewReader(payloadBytes)
req, err := http.NewRequest("POST", "https://api.openai.com/v1/completions", body)
if err != nil {
// handle err
}
req.Header.Set("Content-Type", "application/json")
req.Header.Set("Authorization", fmt.Sprintf("%s %s", "Bearer", ASAK))
resp, err := http.DefaultClient.Do(req)
if err != nil {
// handle err
}
defer resp.Body.Close()
all, err := io.ReadAll(resp.Body)
if err != nil {
fmt.Println(err.Error())
return
}
fmt.Println(string(all))
}
2 OpenAI 提供的SDK(OpenAI教我的,你说难受不。。。。)
代码语言:javascript复制OpenAI API是OpenAI提供的一组软件API,它可以让开发人员使用自然语言处理(NLP)、机器学习(ML)和机器人技术(Robotics)等技术来开发自然语言处理(NLP)应用程序。
要使用OpenAI API,首先需要在OpenAI官网上注册一个账号,然后登录,获取API key。
然后,可以使用Go语言的第三方库OpenAI SDK来调用OpenAI API。OpenAI SDK提供了一个简单的API,可以用来访问OpenAI API。
使用OpenAI SDK,可以使用Go语言来实现一个简单的调用OpenAI API的示例:
package main
import (
"fmt"
"log"
"os"
"github.com/openai/openai-sdk-go/openai"
)
func main() {
// 获取OpenAI API key
apiKey := os.Getenv("OPENAI_API_KEY")
// 创建OpenAI客户端
client := openai.NewClient(apiKey)
// 调用OpenAI API
resp, err := client.Completion.Create(
"The quick brown fox jumps over the lazy dog",
"The quick brown fox jumps over the",
10,
)
if err != nil {
log.Fatal(err)
}
fmt.Println(resp)
}
上面的代码使用OpenAI SDK来调用OpenAI API,并打印出调用结果。
博客
https://www.valarx.com