Gemini совместимый API

TokenCode совместим с протоколом Google Gemini API. Вы можете напрямую использовать Google AI SDK или любой клиент, совместимый с протоколом Gemini.

Base URL

text
https://tokencode.dev

Аутентификация

Протокол Gemini использует URL-параметры для аутентификации:

  • API Key параметр: ?key=<your-api-key>

Также поддерживается аутентификация через заголовки:

  • Bearer Token: Authorization: Bearer <your-api-key>
  • x-api-key заголовок: x-api-key: <your-api-key>

Generate Content

Совместимый с Gemini эндпоинт генерации контента.

bash
curl "https://tokencode.dev/v1beta/models/gemini-2.5-pro:generateContent?key=sk-your-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "contents": [
      {
        "parts": [
          {"text": "Объясните квантовые вычисления"}
        ]
      }
    ],
    "generationConfig": {
      "temperature": 0.7,
      "maxOutputTokens": 1024
    }
  }'

Параметры запроса:

Параметр Тип Обязательный Описание
contents array Да Массив содержимого, включающий историю диалога
generationConfig object Нет Конфигурация генерации
generationConfig.temperature number Нет Температура сэмплирования (0-2)
generationConfig.maxOutputTokens integer Нет Максимальное количество выходных Token
generationConfig.topP number Нет Вероятность ядерного сэмплирования
generationConfig.topK integer Нет Сэмплирование Top-K
generationConfig.stopSequences array Нет Стоп-последовательности
systemInstruction object Нет Системная инструкция
tools array Нет Определения инструментов Function Calling

Пример ответа:

json
{
  "candidates": [
    {
      "content": {
        "parts": [
          {"text": "Квантовые вычисления — это метод использования принципов квантовой механики..."}
        ],
        "role": "model"
      },
      "finishReason": "STOP",
      "index": 0
    }
  ],
  "usageMetadata": {
    "promptTokenCount": 25,
    "candidatesTokenCount": 128,
    "totalTokenCount": 153
  },
  "modelVersion": "gemini-2.5-pro"
}

Stream Generate Content

Эндпоинт потоковой генерации контента.

bash
curl "https://tokencode.dev/v1beta/models/gemini-2.5-pro:streamGenerateContent?key=sk-your-api-key&alt=sse" \
  -H "Content-Type: application/json" \
  -d '{
    "contents": [
      {
        "parts": [
          {"text": "Объясните квантовые вычисления"}
        ]
      }
    ]
  }'

Потоковый ответ использует формат SSE, каждое событие содержит часть сгенерированного контента.

Список моделей

Возвращает список доступных моделей Gemini.

bash
curl "https://tokencode.dev/v1beta/models?key=sk-your-api-key"

Автоматическая конвертация протоколов

При вызове не-Google моделей через эндпоинт протокола Gemini, TokenCode автоматически выполняет конвертацию протоколов:

  • Конвертация запроса: преобразование формата Gemini generateContent в нативный формат целевой модели
  • Конвертация ответа: преобразование ответа целевой модели в формат Gemini
  • Адаптация потокового режима: потоковые ответы автоматически адаптируются под формат SSE Gemini

Использование Google AI SDK

python
import google.generativeai as genai

genai.configure(
    api_key="sk-your-api-key",
    client_options={"api_endpoint": "https://tokencode.dev"}
)

model = genai.GenerativeModel("gemini-2.5-pro")
response = model.generate_content("Привет!")
print(response.text)
javascript
const { GoogleGenerativeAI } = require("@google/generative-ai");

const genAI = new GoogleGenerativeAI("sk-your-api-key");
// Установка пользовательского base URL
const model = genAI.getGenerativeModel({ model: "gemini-2.5-pro" });

Мультимодальный ввод

Gemini нативно поддерживает мультимодальный ввод:

python
model = genai.GenerativeModel("gemini-2.5-pro")
response = model.generate_content([
    "Опишите это изображение",
    {"inline_data": {"mime_type": "image/png", "data": "<base64-encoded-image>"}}
])

Ответы об ошибках

Ответы об ошибках соответствуют формату ошибок Gemini:

json
{
  "error": {
    "code": 400,
    "message": "API key not valid",
    "status": "INVALID_ARGUMENT"
  }
}
HTTP-статус Значение
400 Неверные параметры запроса
401 Ошибка аутентификации
403 Недостаточно прав
404 Модель не найдена
429 Ограничение скорости или недостаточный баланс
500 Внутренняя ошибка сервера