Сценарий из mcp-everything. Актуально на 2026-10-24.
Разобрать письмо клиента, заявку или отзыв в структуру: имя, телефон, суть обращения, тональность.
import json, requests
r = requests.post("https://ai.api.cloud.yandex.net/foundationModels/v1/completion",
headers={"Authorization": f"Api-Key {API_KEY}"},
json={
"modelUri": f"gpt://{FOLDER_ID}/yandexgpt-5-lite",
"completionOptions": {"temperature": 0, "maxTokens": "300"},
"messages": [
{"role": "system", "text": "Извлеки из обращения клиента данные."},
{"role": "user", "text": "Здравствуйте, это Иван, +7 999 000-11-22. Заказ 1042 так и не пришёл, очень недоволен."},
],
"jsonSchema": {"schema": {
"type": "object",
"properties": {"name": {"type": "string"}, "phone": {"type": "string"}, "order": {"type": "string"},
"sentiment": {"type": "string", "enum": ["positive", "neutral", "negative"]}},
"required": ["name", "sentiment"],
}},
}).json()
data = json.loads(r["result"]["alternatives"][0]["message"]["text"])
https://ai.api.cloud.yandex.nethttps://operation.api.cloud.yandex.netТип: Bearer-токен
Authorization: Bearer <IAM-токен>Authorization: Api-Key <API-ключ>Для генерации текста нужна роль ai.languageModels.user или выше; для Responses API — ai.assistants.editor и ai.languageModels.user.
В ответе: alternatives[] (message с role и text/toolCallList, status), usage (inputTextTokens, completionTokens, totalTokens, completionTokensDetails.reasoningTokens), modelVersion. Значения status: ALTERNATIVE_STATUS_PARTIAL, ALTERNATIVE_STATUS_TRUNCATED_FINAL, ALTERNATIVE_STATUS_FINAL, ALTERNATIVE_STATUS_CONTENT_FILTER, ALTERNATIVE_STATUS_TOOL_CALLS.
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
modelUri |
body | string | да | URI модели, например gpt://<идентификатор_каталога>/yandexgpt-5-lite |
completionOptions.stream |
body | boolean | нет | Потоковая передача частично сгенерированного текста |
completionOptions.temperature |
body | number | нет | От 0 до 1, по умолчанию 0.3 |
completionOptions.maxTokens |
body | string | нет | Лимит токенов в ответе, больше нуля |
completionOptions.reasoningOptions.mode |
body | string | нет | DISABLED или ENABLED_HIDDEN |
messages |
body | array | да | Контекст диалога |
messages[].role |
body | string | нет | system, assistant или user |
messages[].text |
body | string | нет | Текст сообщения; взаимоисключающее с toolCallList и toolResultList |
tools |
body | array | нет | Инструменты для вызова: function.name, function.description, function.parameters (JSON Schema), function.strict |
jsonObject |
body | boolean | нет | Ответ — валидный JSON; взаимоисключающее с jsonSchema |
jsonSchema.schema |
body | object | нет | JSON Schema, которой должен соответствовать ответ |
parallelToolCalls |
body | boolean | нет | Несколько вызовов инструментов за ответ, по умолчанию true |
toolChoice.mode |
body | string | нет | NONE, AUTO (по умолчанию) или REQUIRED |
toolChoice.functionName |
body | string | нет | Принудительный вызов конкретной функции |
.../yandexgpt/latest и .../yandexgpt/rc работают до окончания поддержки; после этого запросы по устаревшему URI возвращают 400 Bad Request — автоматического переключения на новую версию нет.maxTokens, dim и счётчики токенов в ответах передаются строками (int64).gpt://<идентификатор_каталога>/yandexgpt-lite/latest@<суффикс>.Если этого недостаточно — официальная документация: https://aistudio.yandex.ru/ru/docs/ai-studio/ Вся интеграция одним документом: https://mcp-everything.ru/integrations/yandexgpt.md