Skip to main content

Go SDK

Используйте популярный go-openai SDK с GonkaGate. Полная совместимость с OpenAI API.

Сообщество SDK

Мы рекомендуем использовать sashabaranov/go-openai SDK — самый популярный Go-клиент для OpenAI-совместимых API.

github.com/sashabaranov/go-openai

Чтобы получить API-ключ, базовый URL и первый запрос, начните с руководства Quickstart .

Установка

Установите go-openai SDK с помощью go get:

terminal
go get github.com/sashabaranov/go-openai

Настройка

Настройте клиент для использования API GonkaGate:

config.go
package main

import (
    "github.com/sashabaranov/go-openai"
)

func main() {
    config := openai.DefaultConfig("gp-your-api-key")
    config.BaseURL = "https://api.gonkagate.com/v1"

    client := openai.NewClientWithConfig(config)
}

Базовое использование

Выполните первый запрос к чату:

basic_usage.go
package main

import (
    "context"
    "fmt"
    "log"

    "github.com/sashabaranov/go-openai"
)

func main() {
    config := openai.DefaultConfig("gp-your-api-key")
    config.BaseURL = "https://api.gonkagate.com/v1"

    client := openai.NewClientWithConfig(config)

    resp, err := client.CreateChatCompletion(
        context.Background(),
        openai.ChatCompletionRequest{
            Model: "qwen/qwen3-235b-a22b-instruct-2507-fp8",
            Messages: []openai.ChatCompletionMessage{
                {
                    Role:    openai.ChatMessageRoleSystem,
                    Content: "You are a helpful assistant.",
                },
                {
                    Role:    openai.ChatMessageRoleUser,
                    Content: "Hello, how are you?",
                },
            },
            Temperature: 0.7,
            MaxTokens:   1000,
        },
    )

    if err != nil {
        log.Fatalf("ChatCompletion error: %v", err)
    }

    fmt.Println(resp.Choices[0].Message.Content)
}

Контекст и отмена

Используйте контексты Go для таймаутов и отмены запросов:

context.go
package main

import (
    "context"
    "fmt"
    "log"
    "time"

    "github.com/sashabaranov/go-openai"
)

func main() {
    config := openai.DefaultConfig("gp-your-api-key")
    config.BaseURL = "https://api.gonkagate.com/v1"

    client := openai.NewClientWithConfig(config)

    // Create context with timeout
    ctx, cancel := context.WithTimeout(context.Background(), 30*time.Second)
    defer cancel()

    resp, err := client.CreateChatCompletion(
        ctx,
        openai.ChatCompletionRequest{
            Model: "qwen/qwen3-235b-a22b-instruct-2507-fp8",
            Messages: []openai.ChatCompletionMessage{
                {Role: openai.ChatMessageRoleUser, Content: "Hello!"},
            },
        },
    )

    if err != nil {
        if ctx.Err() == context.DeadlineExceeded {
            log.Fatal("Request timed out")
        }
        log.Fatalf("Error: %v", err)
    }

    fmt.Println(resp.Choices[0].Message.Content)
}

Заметки по языку

Несколько советов для Go:

  • Используйте общий http.Client и задавайте таймауты.
  • Применяйте context.Context для отмены и дедлайнов.
  • Добавьте ретраи для ответов 429/503.

Смотрите Streaming и обработку ошибок для стриминга и ретраев.

Была ли эта страница полезной?