Skip to main content

Go SDK

Отправляйте chat.completions запросы к GonkaGate из Go через sashabaranov/go-openai.

Отправьте один chat.completions запрос из Go через github.com/sashabaranov/go-openai, а затем используйте ту же форму клиента в сервисном коде.

Минимальный рабочий пример

Установите клиент и экспортируйте API-ключ:

Минимальный рабочий пример
go get github.com/sashabaranov/go-openai
export GONKAGATE_API_KEY="gp-your-api-key"

Затем выполните один запрос chat.completions:

Затем выполните один запрос chat.completions
package main

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

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

func main() {
    apiKey := os.Getenv("GONKAGATE_API_KEY")
    if apiKey == "" {
        log.Fatal("missing GONKAGATE_API_KEY")
    }

    config := openai.DefaultConfig(apiKey)
    config.BaseURL = "https://api.gonkagate.com/v1"

    client := openai.NewClientWithConfig(config)
    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: "Say hello from GonkaGate in one sentence.",
                },
            },
        },
    )

    if err != nil {
        log.Fatal(err)
    }

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

Ожидаемый результат: если программа выводит текст, значит Go-клиент подключён правильно.

Используйте актуальный model ID из GET /v1/models. Значение в примере выше приведено только для ориентира.

Что нужно заранее

  • Go 1.18+, потому что это минимальная версия для github.com/sashabaranov/go-openai
  • API-ключ формата gp-..., сохранённый в GONKAGATE_API_KEY
  • Достаточный доступный баланс для запроса
  • Актуальный ID модели GonkaGate

Замечания для Go

  • Задайте config.BaseURL = "https://api.gonkagate.com/v1" до создания клиента.
  • Переиспользуйте один настроенный клиент в процессе или сервисе, а не создавайте его заново на каждый запрос.
  • Для каждого запроса используйте context.WithTimeout(...), чтобы долгие вызовы завершались предсказуемо.
  • Если нужен собственный прокси или транспорт, передайте свой http.Client через config.HTTPClient.

Частые ошибки и ограничения

  • Если забыть config.BaseURL = "https://api.gonkagate.com/v1", клиент уйдёт на стандартный эндпоинт OpenAI.
  • 401 invalid_api_key обычно означает, что ключ отсутствует, передан в неверном формате, отозван или связан с недоступным состоянием аккаунта.
  • 404 model_not_found означает, что указанный ID модели больше не доступен. Обновите его через GET /v1/models.
  • context deadline exceeded означает, что ваш таймаут слишком мал для этого запроса или текущих сетевых условий.
  • 429 insufficient_quota означает, что доступного предоплаченного USD-баланса недостаточно для запроса.

См. также

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