Skip to content

Gemini: формат, совместимый с OpenAI

Fast-Token позволяет вызывать модели Google Gemini через протокол API OpenAI. Если у вас уже есть приложение на OpenAI SDK или /v1/chat/completions, обычно достаточно изменить base_url и model, чтобы подключить Gemini, без переписывания на нативный API Gemini.

На этой странице — инструкция по использованию совместимого формата. Тела запросов, поля ответов и онлайн-отладка — в документации ChatGPT и по ссылкам в таблице возможностей ниже.

Два способа интеграции

ПараметрФормат, совместимый с OpenAI (эта страница)Нативный API Gemini (другие документы раздела)
Типичные путиPOST /v1/chat/completions, POST /v1/embeddingsPOST /v1beta/models/{model}:generateContent и т.д.
Тело запросаПоля OpenAI: messages, model, streamПоля Gemini: contents, generationConfig
Когда использоватьГотовый клиент OpenAI, единый шлюз для нескольких моделей, быстрая миграцияФункции только Gemini (thinkingConfig, параметры Imagen и т.д.)
ДокументацияЭта страница + раздел ЧатСтраницы API в подразделах «Чат», «Изображения», «Файлы»

Оба способа используют один API Key и адрес шлюза. Тарификация — по модели в каталоге моделей.

Настройка подключения

Шлюз и аутентификация

OpenAI SDK (рекомендуется)

Укажите в официальном SDK base_url на Fast-Token; остальное — как у OpenAI:

python
from openai import OpenAI

client = OpenAI(
    base_url="https://fast-token.com/v1",
    api_key="<Fast-Token_API_KEY>",
)

completion = client.chat.completions.create(
    model="gemini-2.5-pro",  # 以模型广场为准
    messages=[
        {"role": "user", "content": "用一句话介绍你自己"},
    ],
)
print(completion.choices[0].message.content)
javascript
import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://fast-token.com/v1",
  apiKey: "<Fast-Token_API_KEY>",
});

const completion = await client.chat.completions.create({
  model: "gemini-2.5-pro",
  messages: [{ role: "user", content: "用一句话介绍你自己" }],
});
console.log(completion.choices[0].message.content);

Для потокового режима укажите stream: true. См. Создание дополнения чата (поток).

Обзор возможностей в формате chat-compatible

Всё ниже доступно через пути, совместимые с OpenAI. В консоли или Apifox это часто группа «chat-compatible format». На практике чаще всего один POST /v1/chat/completions (вложения — POST /v1/embeddings), сценарии различаются моделью и структурой сообщений.

ВозможностьОписаниеСсылка
Создание изображений GeminiГенерация или правка по тексту (и опционально референсу)Создание изображения в чате (без потока)
ЧатМногоходовый текст, поток и без потокаБез потока, Поток
Чат — размышление 1Диалог с выводом «размышлений» модели (вариант 1)Поток (extra_body.enable_thinking)
Чат — размышление 2Диалог с выводом «размышлений» (вариант 2)То же; конкретные модели — в каталоге
Распознавание изображенийЗагрузка изображения для описания и вопросовРаспознавание (поток), без потока
Чат + чтение файловДокументы в диалоге для анализаСм. «Файлы и мультимодальность» ниже
Текстовые эмбеддингиТекст в векторыСоздание эмбеддингов

Выбор модели

ID модели для каждого сценария — в каталоге моделей. Пробуйте Gemini с пометкой о чате, зрении, генерации изображений или эмбеддингах; при ошибке «модель не найдена» или неподдерживаемой функции выберите другую запись Gemini для того же сценария.

По сценариям

Обычный чат

  • Эндпоинт: POST /v1/chat/completions
  • Многоходовый диалог через массив messages; role: system / user / assistant (как у OpenAI)
  • Без потока: stream: false или не передавать stream; поток: stream: true
  • Общие параметры (temperature, max_tokens, top_p и т.д.) — как в документации OpenAI; см. Создание дополнения чата (без потока)

Режим размышления (1 / 2)

У части thinking-моделей Gemini вывод размышлений включается в потоковых запросах через расширение:

json
{
  "model": "gemini-2.5-pro",
  "messages": [{ "role": "user", "content": "解释相对论的核心思想" }],
  "stream": true,
  "extra_body": {
    "enable_thinking": true
  }
}
  • Размышление 1 и 2 — разные модели или маршруты на шлюзе; выбирайте модели с пометкой «thinking» в каталоге и тестируйте отдельно
  • Для полного thinkingConfig (бюджет токенов размышления) используйте нативный API Gemini

Зрение (понимание изображений)

В сообщении user в contentмультимодальный массив: text + image_url (URL или Base64).

json
{
  "model": "gemini-2.5-pro",
  "messages": [
    {
      "role": "user",
      "content": [
        { "type": "text", "text": "这张图里有什么?" },
        {
          "type": "image_url",
          "image_url": { "url": "https://example.com/photo.jpg" }
        }
      ]
    }
  ],
  "stream": true
}

Base64: Распознавание в чате (поток) Base64. Нативные параметры (inlineData и др.): Понимание изображений.

Создание изображений

Чат + чтение файлов

В совместимом формате можно передавать документы, PDF как часть мультимодального ввода (MIME и лимиты — в каталоге моделей):

  1. Сначала через messages[].content по соглашению OpenAI (image_url, URL или Base64 файла, если поддерживается)
  2. Для больших файлов и сложной вёрстки — нативное Понимание документов (fileData / inlineData), результат объединяйте в чате на стороне приложения

Текстовые эмбеддинги

Совместимый формат или нативный API

ЗадачаРекомендация
Быстрое подключение, OpenAI SDK / существующий кодФормат, совместимый с OpenAI (эта страница)
Потоковое размышление, generationConfig, Google Search GroundingНативный API (напр. Текст + размышление (поток), Google Search)
Imagen, TTS, видео/аудиоРазделы нативного API
Чат + зрение + картинки + эмбеддинги с клиентом OpenAIДостаточно совместимого формата

Частые вопросы

В: Почему не всё как в документации OpenAI?
О: Слой совместимости выравнивает запрос/ответ под OpenAI, внутри работает Gemini. Часть параметров только OpenAI может игнорироваться — смотрите поддержку модели.

В: Что писать в model?
О: Полный ID модели из каталога (обычно с префиксом/суффиксом gemini), не сокращения.

В: Формат потокового ответа?
О: SSE, строки data: {...} и data: [DONE], как у OpenAI; см. Объект чанка дополнения чата.

В: Полная структура JSON ответа?
О: Объект дополнения чата.

Дополнительно