ГлавнаяДокументация
Меню документации — Gemini: нативный generateContent

Gemini: нативный generateContent

POST /v1/google/generateContent — нативный pure-proxy к Google Gemini: тело уходит в Google 1:1 без трансляции (меняется только model → внутренний vendor-id). Используйте, когда нужны параметры или поля, которых нет в OpenAI-совместимом /v1/chat/completions.

Форма тела запроса

Не OpenAI-формат. Верхнеуровневые поля: contents (диалог, вместо messages), generationConfig (объект со всеми «параметрами модели»), systemInstruction, tools, toolConfig, safetySettings, cachedContent.

Соответствие: OpenAI-compat ⇄ нативный generateContent

/v1/chat/completions (OpenAI-compat) /v1/google/generateContent (нативно) Где в нативном теле
messagescontentsверхний уровень
max_completion_tokens / max_tokensmaxOutputTokensgenerationConfig
temperaturetemperaturegenerationConfig
top_ptopPgenerationConfig
stopstopSequencesgenerationConfig
seedseedgenerationConfig
response_formatresponseMimeType + responseSchemagenerationConfig
reasoning_effortthinkingConfiggenerationConfig
n (на compat 400)candidateCountgenerationConfig
frequency_penalty (на compat 400)frequencyPenaltygenerationConfig
presence_penalty (на compat 400)presencePenaltygenerationConfig
logprobs / top_logprobs (на compat 400)responseLogprobs + logprobsgenerationConfig
— нет —topKgenerationConfig
Параметры только для нативного generateContent: topK, candidateCount, frequencyPenalty, presencePenalty, responseLogprobs+logprobs. В OpenAI-compat /v1/chat/completions их аналоги Google отвергает (400 Unknown name ...).

Пример

curl https://api.ranvik.ru/v1/google/generateContent \
  -H "Authorization: Bearer rk_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gemini-3-5-flash",
    "contents": [{"role": "user", "parts": [{"text": "Привет!"}]}],
    "generationConfig": {
      "temperature": 0.7,
      "topP": 0.9,
      "topK": 40,
      "maxOutputTokens": 1024,
      "candidateCount": 1,
      "frequencyPenalty": 0.2
    }
  }'

Pure proxy: тело уходит в Google как есть, ответ возвращается в нативном Gemini-формате (candidates[].content.parts), не в OpenAI-формате.