项目介绍:go-gpt3
go-gpt3 是一个 OpenAI GPT-3 API 客户端,它允许 Go/Golang 程序与 GPT-3 API 进行交互。这个库提供了多种 API 功能,主要用于补全(Completion)接口的调用,支持流式和非流式的方式。
如何使用
使用 go-gpt3 来调用 GPT-3 的 API 非常简单。以下是一个简单的代码示例,展示了如何使用补全(Completion)接口:
client := gpt3.NewClient(apiKey)
resp, err := client.Completion(ctx, gpt3.CompletionRequest{
Prompt: []string{"2, 3, 5, 7, 11,"},
})
fmt.Print(resp.Choices[0].Text)
// 输出 "13, 17, 19, 23, 29, 31" 等
这一段代码展示了通过创建一个新的客户端对象来调用 GPT-3 API,并获取文本补全结果的基本过程。
文档与示例
项目提供了详尽的开发文档,用户可以查阅关于类型和方法的更多细节。在项目的 GitHub 页面上,可以找到 go doc 提供的详细文档。对于想要尝试本地运行的用户,项目提供了一些完整的示例代码。可以将示例代码放在 main.go
文件中,然后使用 go run main.go
命令来运行。
需要注意的是,使用这些示例时,必须准备一个包含 OpenAI API 密钥的 .env
文件格式如下:
API_KEY=<openAI API Key>
以下是一个具体示例代码,演示如何加载 API 密钥并执行一个简单的补全请求:
package main
import (
"context"
"fmt"
"log"
"os"
"github.com/PullRequestInc/go-gpt3"
"github.com/joho/godotenv"
)
func main() {
godotenv.Load()
apiKey := os.Getenv("API_KEY")
if apiKey == "" {
log.Fatalln("Missing API KEY")
}
ctx := context.Background()
client := gpt3.NewClient(apiKey)
resp, err := client.Completion(ctx, gpt3.CompletionRequest{
Prompt: []string{"The first thing you should know about javascript is"},
MaxTokens: gpt3.IntPtr(30),
Stop: []string{"."},
Echo: true,
})
if err != nil {
log.Fatalln(err)
}
fmt.Println(resp.Choices[0].Text)
}
支持的功能
go-gpt3 支持多种 API 功能,包括:
- 列出引擎(List Engines API)
- 获取引擎信息(Get Engine API)
- 补全(Completion API),这是使用最频繁的 GPT-3 API
- 对补全 API 的流支持
- 文档搜索(Document Search API)
- 可覆盖的默认 URL、用户代理、超时等选项
项目支持
本项目由 PullRequest 公司提供支持,用户可以在 PullRequest 网站上了解更多信息。
通过以上信息,用户可以方便地使用 go-gpt3 库来与 OpenAI 的 GPT-3 API 进行交互,实现各种文本生成和处理任务。