项目介绍:GPT-Go
GPT-Go 是一个为 OpenAI 的 ChatGPT/GPT-4/GPT-3 提供 SDK 的 Go 语言客户端。该项目旨在方便开发人员通过 Go 语言与 OpenAI 的 GPT-4 和 GPT-3 API 进行交互。
快速开始
要使用 GPT-Go,用户可以先通过 git clone
命令将项目克隆到本地:
git clone https://github.com/hanyuancheung/gpt-go.git
然后进入项目目录:
cd gpt-go
接着,需要设置 API_KEY 为环境变量:
export API_KEY={YOUR_API_KEY} chatgpt
接下来,编译示例二进制文件:
make chatgpt-example
最后,运行示例:
./chatgpt
主要功能
GPT-Go 支持多种 API 功能,包括:
- 列举引擎 API
- 获取引擎 API
- 完成 API(这是主要的 GPT-3 API)
- 为完成 API 提供流支持
- 文档搜索 API
- 图像生成 API
- 覆盖默认的 URL、用户代理、超时及其他选项
用法示例
GPT-Go 提供了多个用法示例,以下是一些简单的代码演示:
ChatGPT 流式完成
func main() {
client := gpt.NewClient("API_KEY")
err := client.ChatCompletionStream(context.Background(), &gpt.ChatCompletionRequest{
Model: gpt.GPT3Dot5Turbo,
Messages: []gpt.ChatCompletionRequestMessage{
{
Role: "user",
Content: "Hello!",
},
},
}, func(response *gpt.ChatCompletionStreamResponse) {
fmt.Print(response.Choices[0].Delta.Content)
})
if err != nil {
fmt.Printf("ChatCompletionStream error: %v\n", err)
return
}
}
GPT-3 完成
func main() {
client := gpt.NewClient("API_KEY")
rsp, err := client.CompletionWithEngine(context.Background(), &gpt.CompletionRequest{
Model: gpt.TextDavinci003Engine,
Prompt: []string{"Hello!"},
})
if err != nil {
fmt.Printf("ChatCompletionStream error: %v\n", err)
return
}
fmt.Print(rsp.Choices[0].Text)
}
DALL-E 2 图像生成
func main() {
client := gpt.NewClient("API_KEY")
rsp, err := client.Image(context.Background(), &gpt.ImageRequest{
Prompt: "Chicken",
})
if err != nil {
fmt.Printf("ChatCompletionStream error: %v\n", err)
return
}
fmt.Print(rsp.Data[0].URL)
}
贡献与支持
GPT-Go 项目欢迎开发者贡献代码。在提交大量代码之前,请通过 GitHub 提交问题或讨论。提交的代码需要经过 gofmt
格式化。
如果 GPT-Go 对您有所帮助,欢迎给予 ⭐️ 支持!该项目使用 MIT 许可证进行分发,详情请查看 LICENSE 文件。
成员与历史
可以查看项目的贡献者列表以及项目在 GitHub 上的明星历史。项目的活跃历史展示了社区对它的支持和发展趋势。