YandexGPT API (Yandex AI Studio): Семантический поиск по своим текстам

Сценарий из mcp-everything. Актуально на 2026-10-24.

Найти похожие вопросы в базе знаний или подходящие товары по смыслу, а не по словам — основа для RAG.

  1. Посчитай векторы документов: POST /foundationModels/v1/textEmbedding с modelUri модели для документов (emb://<ID каталога>/text-search-doc/latest) и text. В ответе embedding — список чисел.
  2. Сохрани векторы в базе с поддержкой векторного поиска (например, PostgreSQL с pgvector).
  3. Для запроса пользователя посчитай вектор моделью для запросов (emb://<ID каталога>/text-search-query/latest) и найди ближайшие документы по косинусному сходству.
  4. Найденные фрагменты передай в POST /foundationModels/v1/completion как контекст — модель ответит по твоим данным.
def embed(text: str, kind: str) -> list[float]:
    r = requests.post("https://ai.api.cloud.yandex.net/foundationModels/v1/textEmbedding",
                      headers={"Authorization": f"Api-Key {API_KEY}"},
                      json={"modelUri": f"emb://{FOLDER_ID}/text-search-{kind}/latest", "text": text}).json()
    return r["embedding"]

doc_vec = embed("Как вернуть товар надлежащего качества", "doc")
query_vec = embed("хочу сдать обратно кружку", "query")

Базовые URL

Авторизация

Тип: Bearer-токен

Для генерации текста нужна роль ai.languageModels.user или выше; для Responses API — ai.assistants.editor и ai.languageModels.user.

Методы сценария

POST /foundationModels/v1/completion — Генерация текста

В ответе: 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 нет Принудительный вызов конкретной функции

POST /foundationModels/v1/textEmbedding — Эмбеддинг текста

В ответе: embedding (список чисел), numTokens, modelVersion.

Параметр Где Тип Обяз. Описание
modelUri body string да URI модели эмбеддингов
text body string да Входной текст
dim body string нет Размерность эмбеддинга (для моделей с несколькими размерностями)

Нюансы

Другие сценарии


Если этого недостаточно — официальная документация: https://aistudio.yandex.ru/ru/docs/ai-studio/ Вся интеграция одним документом: https://mcp-everything.ru/integrations/yandexgpt.md