前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用Go语言调用OpenAI API

使用Go语言调用OpenAI API

原创
作者头像
Sincerely
发布2022-12-16 13:09:20
3.4K1
发布2022-12-16 13:09:20
举报
文章被收录于专栏:无语的K8S无语的K8S

前言

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 如何调用?两种方法
    • 1 原生HTTP接口
      • 2 OpenAI 提供的SDK(OpenAI教我的,你说难受不。。。。)
      • 博客
      相关产品与服务
      NLP 服务
      NLP 服务(Natural Language Process,NLP)深度整合了腾讯内部的 NLP 技术,提供多项智能文本处理和文本生成能力,包括词法分析、相似词召回、词相似度、句子相似度、文本润色、句子纠错、文本补全、句子生成等。满足各行业的文本智能需求。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档