GenerateContent
Запросы и ответы в формате Google Generative Language
Создаёт ответ в формате GenerateContent Это формат API, а не универсальная характеристика всех моделей Google
POST https://api.getapi.ru/v1beta/models/{model}:generateContent
Заголовки и путь
| Значение | Описание |
|---|---|
model в пути | Точный идентификатор из каталога |
Authorization: Bearer <key> | Ключ GetAPI |
x-goog-api-key: <key> | Альтернативный заголовок авторизации |
Content-Type: application/json | Тип тела запроса |
Параметры
| Поле | Тип | Обязательное | Описание |
|---|---|---|---|
contents | array | Да | Сообщения диалога |
contents[].role | string | Нет | user или model |
contents[].parts | array | Да | Части сообщения, например {"text":"Привет"} |
systemInstruction | object | Нет | Системная инструкция с массивом parts |
generationConfig | object | Нет | Параметры генерации |
generationConfig.maxOutputTokens | integer | Нет | Запрашиваемый лимит вывода |
generationConfig.thinkingConfig | object | Нет | Настройки рассуждений для совместимых моделей |
Пример запроса
curl https://api.getapi.ru/v1beta/models/gemini-2.5-flash:generateContent \
-H "Authorization: Bearer $GETAPI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"contents": [{"role": "user", "parts": [{"text": "Назови столицу Франции"}]}],
"generationConfig": {"maxOutputTokens": 1024}
}'Пример ответа
{
"candidates": [
{
"index": 0,
"content": {"role": "model", "parts": [{"text": "Париж"}]},
"finishReason": "STOP"
}
],
"usageMetadata": {
"promptTokenCount": 8,
"candidatesTokenCount": 4,
"totalTokenCount": 12
}
}| Поле | Тип | Описание |
|---|---|---|
candidates | array | Варианты ответа |
candidates[].content.parts | array | Части содержимого |
candidates[].finishReason | string | Причина завершения |
usageMetadata.promptTokenCount | integer | Входные токены |
usageMetadata.candidatesTokenCount | integer | Выходные токены |
usageMetadata.totalTokenCount | integer | Общий расход токенов |
Собирайте текст из всех частей с полем text, части с thought: true обрабатывайте отдельно от пользовательского ответа
Массив частей может быть пустым, например при завершении по лимиту
Дополнительные поля, включая сведения о безопасности, кеше и версии модели, могут отсутствовать
Поток
Используйте :streamGenerateContent?alt=sse с тем же телом запроса
Каждое SSE-событие содержит очередной объект ответа
Не считайте отдельный сетевой пакет полным событием
Системная инструкция
{
"systemInstruction": {
"parts": [{"text": "Отвечай кратко"}]
}
}Рассуждения
Для моделей, поддерживающих числовой бюджет, используйте generationConfig.thinkingConfig.thinkingBudget
Значение 0 отключает рассуждения только там, где модель поддерживает отключение
Настройки и режим по умолчанию зависят от модели
Ограничения
Для предварительного подсчёта токенов не используйте :countTokens: GetAPI не предоставляет для него надёжный контракт счётчика, такой запрос может вызвать генерацию
Функции прямого API, включая Files, дополнительные инструменты и правила безопасности, не считаются автоматически доступными через сервис