Как добавить YandexGPT в продукт

API, промпты, fallback и мониторинг: практическое руководство по интеграции

YandexGPT — модели от Яндекса, которые хорошо работают с русским языком и предоставляют удобный API с OpenAI-совместимым интерфейсом. Если у вас уже есть интеграция с OpenAI, переключиться на YandexGPT можно за несколько строк; если интеграции нет — это хороший повод сделать её сразу правильно. Ниже — практическое руководство: инфраструктура, способы интеграции, типичные задачи, ценообразование и пример реального пайплайна с агентом для ведения сделки.

Руководство актуально для Yandex AI Studio / Foundation Models API по состоянию на начало 2026 года. Цены и доступные модели могут меняться — сверяйтесь с официальной документацией.

Инфраструктура в Yandex Cloud

Прежде чем делать первый запрос к API, нужно подготовить облачное окружение. Это занимает 10–15 минут, но сделать один раз правильно — значит не возвращаться к этому при каждом новом сервисе.

Создание Folder и подключение Foundation Models

В Yandex Cloud ресурсы организованы по Folder (папкам) внутри облака. Folder — это единица изоляции: у неё собственные права доступа, квоты и история биллинга. Для каждого продукта или окружения рекомендуется создавать отдельный Folder.

  1. Откройте консоль Yandex Cloud и создайте новый Folder (или выберите существующий).
  2. В разделе AI Studio или Model Gallery включите сервис Foundation Models для нужного Folder — без этого шага API возвращает 403.
  3. Зафиксируйте Folder ID — он нужен в каждом запросе к API для маршрутизации биллинга и прав.

Аутентификация

Для серверных интеграций доступны два способа аутентификации:

Способ Когда использовать Особенности
API Key Простые серверные интеграции, скрипты, CI/CD Статичный ключ. Храните в переменных окружения или Vault. Не ротируется автоматически.
IAM-токен Продакшн-сервисы с сервисным аккаунтом Живёт 12 часов, нужна автоматическая ротация. Безопаснее для долгоживущих сервисов.

Для старта удобнее API Key: создаёте сервисный аккаунт, выдаёте ему роль ai.languageModels.user на Folder, генерируете ключ — и кладёте его в переменную окружения YANDEX_CLOUD_API_KEY. Folder ID — в YANDEX_CLOUD_FOLDER.

Не смешивайте Folder разных окружений. Создайте отдельные Folder для dev, staging и production. Это изолирует квоты, биллинг и случайное использование prod-ресурсов в тестах.

Выбор способа интеграции

YandexGPT предлагает два способа вызова модели. Выбор зависит от того, есть ли у вас уже обвязка под OpenAI SDK, и насколько вы хотите контролировать детали запроса.

A. OpenAI-совместимый API

Если в вашем проекте уже есть клиент под OpenAI — это самый быстрый путь. Меняете base_url и модель, добавляете параметр project с Folder ID — и всё остальное работает как прежде.

import openai
import os

YANDEX_CLOUD_API_KEY = os.environ["YANDEX_CLOUD_API_KEY"]
YANDEX_CLOUD_FOLDER  = os.environ["YANDEX_CLOUD_FOLDER"]

client = openai.OpenAI(
    api_key=YANDEX_CLOUD_API_KEY,
    base_url="https://ai.api.cloud.yandex.net/v1",
    project=YANDEX_CLOUD_FOLDER,
)

resp = client.responses.create(
    model="yandexgpt-lite",
    input=[
        {
            "role": "system",
            "content": "Ты помощник: отвечай кратко, структурно.",
        },
        {
            "role": "user",
            "content": (
                "Суммаризируй заявку клиента и выдели поля: "
                "компания, контакт, запрос."
            ),
        },
    ],
)

print(resp.output_text)
model="yandexgpt-lite" — лёгкая и дешёвая модель, хорошо справляется с классификацией, суммаризацией и структурированием. Для длинных сложных тредов (длинный контекст, рассуждения) — yandexgpt-pro.

B. Нативный REST Foundation Models API

Прямой вызов эндпойнта генерации даёт полный контроль над параметрами запроса: температура, maxTokens, поддержка tool-calls согласно спецификации. Используйте этот вариант, если нужны возможности, которые OpenAI-совместимый интерфейс ещё не проксирует.

POST https://llm.api.cloud.yandex.net/foundationModels/v1/completion

Authorization: Api-Key <YANDEX_CLOUD_API_KEY>
Content-Type: application/json
x-folder-id: <YANDEX_CLOUD_FOLDER>

{
  "modelUri": "gpt://<FOLDER_ID>/yandexgpt-lite/latest",
  "completionOptions": {
    "stream": false,
    "temperature": 0.2,
    "maxTokens": 1000
  },
  "messages": [
    {
      "role": "system",
      "text": "Ты помощник: отвечай кратко, структурно."
    },
    {
      "role": "user",
      "text": "Суммаризируй заявку клиента и выдели поля: компания, контакт, запрос."
    }
  ]
}

Ответ приходит в поле result.alternatives[0].message.text. Для асинхронного режима — отдельный эндпойнт /foundationModels/v1/completionAsync, который возвращает operation_id, а результат получаете поллингом.

Асинхронный режим — не только про дешевизну. Он нужен для запросов с большим объёмом контекста, где синхронный timeout не позволяет дождаться ответа. Планируйте поддержку асинхронного режима заранее, особенно если работаете с длинными документами.

Какие задачи решает YandexGPT

YandexGPT — это языковая модель, а не бизнес-система. Она хорошо решает задачи с текстом как входом и выходом. Важно понимать эту границу: модель генерирует текст на основе контекста, она не имеет доступа к вашей БД и не «знает» про вашу предметную область — пока вы не дадите ей контекст в промпте.

Генерация текста

Ответы клиенту, письма, инструкции, сценарии разговоров, краткие резюме — всё, где нужен качественный русскоязычный текст по заданным параметрам. YandexGPT заметно лучше справляется с нюансами русского языка: склонения, падежи, стиль деловой переписки.

Структурирование входящих данных

Превращение «потока текста» в структурированный формат — одна из самых ценных задач. Клиент пишет заявку в свободной форме; модель извлекает из неё поля: компания, контакт, услуга, дедлайн, бюджет — и возвращает JSON. Это заменяет регулярные выражения и ручной разбор там, где структура варьируется.

Классификация

Prompt-based классификация: маршрутизация обращений по типу, проставление тегов, определение приоритета и тона. Не требует файн-тюнинга — достаточно хорошего промпта с примерами (few-shot). Работает точнее жёстких правил на нестандартных формулировках.

Работа с длинным контекстом

YandexGPT Pro заявляет контекст до 32 000 токенов. Это позволяет передавать в промпт длинные переписки, договоры, технические задания целиком — без фрагментации и потери связности. Для сложных кейсов это принципиально: модель видит полную картину, а не кусок.

Класс задач Что делает модель Рекомендуемая модель
Суммаризация Сжимает длинный текст до ключевых тезисов Lite
Извлечение сущностей Вычленяет поля из свободного текста в JSON Lite / Pro
Классификация Присваивает категорию, тег или приоритет Lite
Генерация ответа Пишет ответ клиенту в заданном стиле Pro
Длинный контекст Анализирует документ или тред целиком Pro (32k)
Управление диалогом Ведёт многошаговый разговор, помнит состояние Pro

Стоимость: токены, агенты, оценка

Ценообразование в AI Studio — по токенам (вход и выход считаются отдельно). Инструменты агентов тарифицируются отдельно. Ниже — актуальные цены без НДС.

Текстовая генерация

Модель Режим Input (за 1k токенов) Output (за 1k токенов)
YandexGPT Lite Синхронный $0.001639 $0.001639
YandexGPT Pro 5.1 Синхронный $0.0066 $0.0066
YandexGPT Lite Асинхронный $0.000834 $0.000834
YandexGPT Pro 5 Асинхронный $0.0050 $0.0050

Инструменты агентов

Инструмент Цена Примечание
Web Search $7.50 за 1 000 запросов Поиск в интернете в рамках агентного пайплайна
File Search $2.46 за 1 000 запросов До 12 марта 2026 — бесплатно. После — платно.

Грубая оценка стоимости одного шага диалога

Допустим, один шаг агента — это ~800 input-токенов (системный промпт + история + входящее сообщение) и ~300 output-токенов (ответ модели). На YandexGPT Lite в синхронном режиме:

Input:  0.8 × $0.001639 ≈ $0.00131
Output: 0.3 × $0.001639 ≈ $0.00049
—————————————————————
Итого за шаг:          ≈ $0.0018

1 000 шагов диалога — около $1.80. Для продукта с сотнями пользователей в день это вполне управляемая статья расходов. При переходе на Pro — умножайте примерно на 4.

Совет по оптимизации: не держите в промпте всю историю диалога. Суммаризируйте предыдущие шаги в 2–3 предложения и передавайте только суммари + последние 2–3 обмена. Это в разы снижает input-токены при сохранении контекста.

Пример: агент для ведения сделки

Чтобы всё выше не осталось абстракцией — разберём конкретный пайплайн: текстовый агент, который ведёт лид/сделку от первого сообщения до пакета «готово к исполнителю». Такой агент собирает данные, проверяет комплектность, формирует артефакты и фиксирует следующий шаг.

Роль агента в процессе

Агент не заменяет менеджера по продажам. Он берёт на себя рутину: разбор входящего сообщения, ведение карточки сделки, запрос недостающих данных, подготовку черновиков. Менеджер видит готовую карточку и пакет документов — не сырой поток сообщений.

Что делает YandexGPT на каждом шаге

1. Разбор входящего сообщения (Telegram, почта, форма)

Первый промпт классифицирует сообщение и извлекает сущности. Системный промпт задаёт структуру вывода; пользовательское сообщение — это сырой текст заявки:

Системный промпт (упрощённо):

Ты — ассистент по обработке входящих заявок.

Задача: проанализируй сообщение и верни JSON:
{
  "type": "lead" | "question" | "change_request" | "problem",
  "entities": {
    "client_name": str | null,
    "company": str | null,
    "service": str | null,
    "deadline": str | null,
    "budget": str | null,
    "contact_channel": str | null,
    "documents_mentioned": list[str]
  },
  "confidence": float  // 0.0–1.0
}

Отвечай только валидным JSON, без пояснений.

Пользовательское сообщение (входящая заявка):

Добрый день! Мы ООО "Ромашка", ищем подрядчика для разработки CRM.
Бюджет — до 800 тысяч, нужно к 1 июня. Контакт — Иванов Сергей,
можно писать в Telegram @ivanov_s. Готовы предоставить ТЗ.

Модель возвращает структуру, которая сразу ложится в карточку сделки — не нужен ручной разбор.

2. Нормализация в карточку сделки

Второй промпт обновляет состояние карточки: какие поля заполнены, чего не хватает, что нужно запросить у клиента:

Системный промпт:

Ты ведёшь карточку сделки. Текущее состояние:
<state>{{ deal_state_json }}</state>

На основе нового сообщения обнови карточку и верни JSON:
{
  "stage": "new" | "data_collection" | "docs_requested" | "ready",
  "missing_fields": [...],
  "missing_docs": [...],
  "next_action": "Краткое описание следующего шага",
  "updated_fields": { ... }
}

3. Управление диалогом

Агент генерирует точечный запрос одного недостающего поля — не список из десяти вопросов сразу. Один шаг — один вопрос. После ответа клиента — обновление карточки и следующий запрос (если ещё что-то нужно) или подведение итогов:

Системный промпт:

На основе карточки сделки и списка missing_fields задай клиенту
один конкретный вопрос. Тон — деловой, вежливый, без лишних слов.
Не перечисляй все пропущенные поля — только один, наиболее важный.

4. Подготовка артефактов для исполнителя

Когда карточка заполнена, агент генерирует:

Инструменты по необходимости: если в пайплайне нужен поиск по загруженным документам — подключаете File Search (база знаний, шаблоны договоров). Если нужно подтянуть внешние данные — Web Search. Оба инструмента тарифицируются отдельно; включайте их только там, где реально нужны.

Минимальный стек: агентный цикл

# Псевдокод агентного цикла
def process_message(deal_id, new_message):
    deal    = db.get_deal(deal_id)       # Текущая карточка сделки
    history = db.get_history(deal_id)    # Последние N сообщений

    # Шаг 1: классификация + извлечение сущностей (дешёвая модель)
    parsed = yandex_gpt(
        system=CLASSIFY_PROMPT,
        user=new_message,
        model="yandexgpt-lite",
    )

    # Шаг 2: обновление карточки (Pro — нужен больший контекст)
    updated_deal = yandex_gpt(
        system=UPDATE_DEAL_PROMPT.format(state=deal.to_json()),
        user=parsed.to_json(),
        model="yandexgpt-pro",
    )

    db.update_deal(deal_id, updated_deal)

    # Шаг 3: запрос недостающих данных
    if updated_deal["stage"] != "ready":
        reply = yandex_gpt(
            system=NEXT_QUESTION_PROMPT,
            user=updated_deal.to_json(),
            model="yandexgpt-lite",
        )
        return reply

    # Шаг 4: артефакты для исполнителя
    artifacts = yandex_gpt(
        system=ARTIFACTS_PROMPT,
        user=updated_deal.to_json(),
        model="yandexgpt-pro",
    )
    db.save_artifacts(deal_id, artifacts)
    return "Сделка готова к передаче исполнителю."

Почему здесь YandexGPT "в тему"

Задача — чистая работа с текстом, контекстом, структурированием и контролем полноты. Никаких специфических вычислений или внешних данных. YandexGPT Pro с контекстом 32k токенов держит весь тред сделки целиком — не теряет контекст при длинных переговорах. Качество русскоязычного текста в деловом стиле — на уровне, который заметен клиентам.

Fallback-стратегия: если API недоступен или возвращает ошибку — не падайте молча. Логируйте ошибку, сохраняйте сообщение в очередь, уведомляйте оператора. Клиент не должен чувствовать сбой; пусть лучше увидит «Ответим чуть позже», чем 500.

Резюме

YandexGPT — рабочий выбор для продуктов, работающих с русскоязычным текстом. Интеграция через OpenAI-совместимый API занимает часы, не недели. Ниже — ключевые моменты, которые стоит учесть на старте.

Связанные материалы: