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/embeddings | POST /v1beta/models/{model}:generateContent и т.д. |
| Тело запроса | Поля OpenAI: messages, model, stream | Поля Gemini: contents, generationConfig |
| Когда использовать | Готовый клиент OpenAI, единый шлюз для нескольких моделей, быстрая миграция | Функции только Gemini (thinkingConfig, параметры Imagen и т.д.) |
| Документация | Эта страница + раздел Чат | Страницы API в подразделах «Чат», «Изображения», «Файлы» |
Оба способа используют один API Key и адрес шлюза. Тарификация — по модели в каталоге моделей.
Настройка подключения
Шлюз и аутентификация
- Base URL:
https://fast-token.com/v1(как в Быстром старте) - Аутентификация: заголовок
Authorization: Bearer <Fast-Token_API_KEY> - Имя модели: скопируйте ID модели с
geminiиз каталога моделей в полеmodel
OpenAI SDK (рекомендуется)
Укажите в официальном SDK base_url на Fast-Token; остальное — как у OpenAI:
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)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 вывод размышлений включается в потоковых запросах через расширение:
{
"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).
{
"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 и др.): Понимание изображений.
Создание изображений
- Чат + модели Gemini для изображений: текст в картинку, правка по референсу
- Опишите задачу в
messages; для референса добавьтеtextиimage_urlвcontent - Структура запроса/ответа: Создание изображения в чате (без потока)
- Соотношение сторон и разрешение: нативный Генерация изображений
Чат + чтение файлов
В совместимом формате можно передавать документы, PDF как часть мультимодального ввода (MIME и лимиты — в каталоге моделей):
- Сначала через
messages[].contentпо соглашению OpenAI (image_url, URL или Base64 файла, если поддерживается) - Для больших файлов и сложной вёрстки — нативное Понимание документов (
fileData/inlineData), результат объединяйте в чате на стороне приложения
Текстовые эмбеддинги
- Эндпоинт:
POST /v1/embeddings - Тело:
model+input(строка или массив строк), как у OpenAI Embeddings - Примеры: Создание эмбеддингов; структура: Объект эмбеддинга
- Опции только Gemini (
taskType,output_dimensionalityи т.д.): Нативные эмбеддинги Gemini
Совместимый формат или нативный 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 ответа?
О: Объект дополнения чата.
Дополнительно
- Быстрый старт — первый вызов и API Key
- Краткое руководство по API — Base URL и клиент
- Список моделей —
GET /v1/models - Другие страницы раздела — нативный REST API Gemini