Go API 参考

导入

1import joytoken "github.com/joytoken/client-sdk-golang"

NewClient

1client := joytoken.NewClient(opts ...joytoken.Option)
选项说明
WithAPIKey(apiKey string)设置 JoyToken API Key
WithAPIBaseURL(apiBaseURL string)设置非 OpenAI 接口的基础 URL
WithOpenAIBaseURL(openAIBaseURL string)设置聊天补全基础 URL
WithHTTPClient(httpClient HTTPClient)使用自定义 HTTP 客户端
WithHeader(key, value string)为每个请求添加默认请求头

环境变量默认值:

变量用途
JOY_TOKEN_API_KEYAPI Key
JOY_TOKEN_API_BASE_URLAPI 基础 URL
JOY_TOKEN_OPENAI_BASE_URL聊天补全基础 URL

CreateChatCompletion

1response, err := client.CreateChatCompletion(ctx, joytoken.ChatCompletionRequest{
2 Model: "auto",
3 Messages: []joytoken.ChatMessage{
4 {Role: "user", Content: "Hello"},
5 },
6})

调用 POST /openai/v1/chat/completions,并设置 stream: false

StreamChatCompletion

1stream, err := client.StreamChatCompletion(ctx, request)
2defer stream.Close()
3
4for {
5 chunk, err := stream.Recv()
6 if errors.Is(err, io.EOF) {
7 break
8 }
9}

调用 POST /openai/v1/chat/completions,并设置 stream: true,返回 ChatCompletionStream

ListModels

1models, err := client.ListModels(ctx)

调用 GET /api/v1/models

APIError

1var apiErr *joytoken.APIError
2if errors.As(err, &apiErr) {
3 fmt.Println(apiErr.StatusCode, apiErr.RequestID, apiErr.Body)
4}
字段类型
StatusCodeint
RequestIDstring
Bodystring

核心类型

1type ChatCompletionRequest struct {
2 Model string
3 Messages []ChatMessage
4 Stream bool
5 Temperature *float64
6 MaxTokens *int
7 TopP *float64
8 Stop any
9 Tools []ChatTool
10 ToolChoice any
11 Tier string
12 Metadata map[string]any
13}
1type ChatMessage struct {
2 Role string
3 Content any
4 Name string
5 ToolCallID string
6 ToolCalls []ToolCall
7}
1type ModelListResponse struct {
2 Object string
3 Data []ModelInfo
4}