Go OpenAI 项目介绍
go-openai
是一个用来与 OpenAI API 交互的非官方 Go 客户端库。通过这个库,开发人员可以轻松地在 Go 应用中使用 OpenAI 的多种功能,包括 ChatGPT、GPT-3、GPT-4、DALL·E、Whisper 等等。
支持功能
- ChatGPT 4o, o1:支持最新版本的 ChatGPT。
- GPT-3 & GPT-4:涵盖了 GPT-3 和 GPT-4 的功能。
- DALL·E 2 & DALL·E 3:用于图像生成。
- Whisper:用于语音识别和文本转录。
安装方法
要在项目中使用 go-openai
,首先需要安装它。确保 Go 的版本在 1.18 或以上,然后可以通过以下命令安装:
go get github.com/sashabaranov/go-openai
使用示例
ChatGPT 使用示例
以下是一个简单的 ChatGPT 使用代码示例:
package main
import (
"context"
"fmt"
openai "github.com/sashabaranov/go-openai"
)
func main() {
client := openai.NewClient("your token")
resp, err := client.CreateChatCompletion(
context.Background(),
openai.ChatCompletionRequest{
Model: openai.GPT3Dot5Turbo,
Messages: []openai.ChatCompletionMessage{
{
Role: openai.ChatMessageRoleUser,
Content: "Hello!",
},
},
},
)
if err != nil {
fmt.Printf("ChatCompletion error: %v\n", err)
return
}
fmt.Println(resp.Choices[0].Message.Content)
}
获取API密钥
要访问 OpenAI 的服务,需要一个 API 密钥,获取密钥的步骤如下:
- 访问 OpenAI 的官网。
- 注册一个新账户或登录。
- 导航到 API 密钥管理页面,创建一个新的密钥。
- 创建成功后显示的新密钥是敏感信息,请妥善保管。
更多使用示例
除了上面的基本示例之外,go-openai
还提供了其他多种功能示例,包括流式处理 ChatGPT 返回信息、音频转文字、图像生成等等。具体代码示例可以参阅项目中的 examples/
目录。
常见问题
为什么在设置 temperature 为 0 时,仍然可能获得不同的答案?
即使设置 temperature 为 0,也并不保证每次得到相同的回答,可能是因为 API 默认将未设置的 temperature 视为 1,或者是因为输入输出的 token 数量较大会导致非确定性行为。
Go OpenAI 提供计算 token 数量的方法吗?
目前,该库并未提供 token 计数功能。如果有无依赖的实现方案,可能会考虑合并到库中。在此之前,可以参考其他资源来实现此功能,比如 tiktoken-go
项目。
贡献和致谢
对 go-openai
感兴趣的人士可以通过 GitHub 项目页面上的贡献指南参与项目开发。我们也感谢所有的贡献者和赞助商,你们的帮助让这个项目变得更加出色。对所有支持者表示诚挚的感谢!