项目介绍:openaigo
openaigo
是一个开源的 API 客户端库,旨在与 OpenAI 的 API 进行交互。虽然它是由社区维护的,并未获得 OpenAI 的官方支持,但它提供了一种丰富的功能接口,可以帮助用户便捷地实现与 OpenAI 的集成。
使用示例
要快速上手使用 openaigo
,用户可以参考以下 Go 语言代码示例:
package main
import (
"context"
"fmt"
"os"
"github.com/otiai10/openaigo"
)
func main() {
client := openaigo.NewClient(os.Getenv("OPENAI_API_KEY"))
request := openaigo.ChatRequest{
Model: "gpt-4o",
Messages: []openaigo.Message{
{Role: "user", Content: "Hello!"},
},
}
ctx := context.Background()
response, err := client.Chat(ctx, request)
fmt.Println(response, err)
}
如需尝试此库,可以使用以下命令:
git clone https://github.com/otiai10/openaigo.git
cd openaigo
OPENAI_API_KEY=YourAPIKey go run ./testapp/main.go
API 密钥
用户可以通过访问 OpenAI 的网站来获取免费 API 密钥。请确保您已经注册并生成了自己的 API 密钥以便开始使用。
支持的端点功能
openaigo
支持 OpenAI 提供的多个功能接口,包括但不限于:
- 模型操作:列出和检索模型
- 文本补全和聊天补全
- 文本编辑
- 图像生成、编辑和变体创建
- 嵌入生成
- 文件操作:上传、下载、删除等
- 模型微调:创建、列出、检索、取消等
- 内容审核:创建审核
其他功能
函数调用
openaigo
支持函数调用功能,这允许用户在构建请求时定义和传递自定义函数。以下是一个示例:
request := openaigo.ChatRequest{
Messages: []openaigo.Message{
{Role: "user", Content: "How's the weather today in Tokyo?"},
},
Functions: []openaigo.Function{
{
Name: "get_weather",
Parameters: openaigo.Parameters{
Type: "object",
Properties: map[string]map[string]any{
"location": {"type": "string"},
"date": {"type": "string", "description": "ISO 8601 date string"},
},
Required: []string{"location"},
},
}
},
}
流媒体
支持流媒体请求,可以在流式处理响应时实时执行操作,例如:
client := openaigo.NewClient(OPENAI_API_KEY)
request := openaigo.ChatRequest{
Stream: true,
StreamCallback: func(res ChatCompletionResponse, done bool, err error) {
// 在这里处理流媒体响应
},
}
使用代理
如需使用网络代理:
client := openaigo.NewClient(OPENAI_API_KEY)
transport := &http.Transport{ Proxy: http.ProxyFromEnvironment }
client.HTTPClient = &http.Client{ Transport: transport }
问题反馈
用户遇到任何问题都可以在项目的 GitHub 页面上报告,反馈将帮助改善该库的功能。
可以访问以下链接进行问题反馈:https://github.com/otiai10/openaigo/issues
。