使用Golang调用OpenAI API

小破站老大 2022-12-16 PM 2101℃ 0条
## v1 使用原生HTTP接口

package main

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

const ASAK = "sk-xxxxxxxxxx"

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))

}

---

# v2 使用OpenAI SDK(OpenAI教我的,你说难受不。。。。)

正在思考,请等待......

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,并打印出调用结果。
标签: none

非特殊说明,本博所有文章均为博主原创。

评论啦~