Перейти к основному содержимому

Интеграция с Yandex AI Studio

Настройте учётные данные и выбор модели Yandex AI Studio в CodeGraph. Разберите конфигурацию провайдера, обработку запросов и восстановление после ошибок.

Интеграции

Подключите Yandex AI Studio, чтобы выполнять запросы генерации текста и эмбеддингов CodeGraph через API провайдера. Сценарии анализа используют общий интерфейс: передают системную инструкцию и вопрос пользователя, а получают текст ответа, сведения о модели и расходе токенов.

CodeGraph читает настройки из config.yaml, подставляет значения переменных окружения и подключает выбранного провайдера. Переменная CODEGRAPH_LLM_PROVIDER выбирает его для текущего процесса. Если она не задана, CodeGraph использует llm.provider. Выберите доступную вашей учётной записи модель и квоту, затем проверьте подключение запросом ниже.

Какие данные передаются

При генерации отправляются system_prompt, user_prompt и параметры. Для эмбеддингов передаются исходные тексты. Запросы выходят из контура CodeGraph на настроенный адрес API Yandex.

Клиент устанавливает x-folder-id и x-data-logging-enabled: false. Второй заголовок отключает журналирование запросов у провайдера; механизм описан в документации Yandex. См. Безопасность LLM.

Настройка учётных данных

Выполняйте команды в PowerShell из корня исходного репозитория CodeGraph с установленным Python-окружением проекта. Замените значения в угловых скобках одобренными значениями. Объедините фрагмент YAML с существующим разделом llm; не создавайте второй одноимённый раздел.

Храните ключ в одобренном менеджере секретов, а CodeGraph передавайте только ссылки на окружение:

$env:CODEGRAPH_LLM_PROVIDER = 'yandex'
$env:YANDEX_API_KEY = '<secret-from-approved-store>'
$env:YANDEX_FOLDER_ID = '<approved-folder-id>'
llm:
  provider: yandex
  yandex:
    api_key: ${YANDEX_API_KEY}
    folder_id: ${YANDEX_FOLDER_ID}
    model: <approved-model-name>
    base_url: https://llm.api.cloud.yandex.net/v1
    embedding_model: <approved-embedding-model>
    timeout: 60

Провайдер формирует URI генерации как gpt://<folder_id>/<model>, а эмбеддингов — как emb://<folder_id>/<model>. Политика IAM каталога должна разрешать только нужные пилоту операции. Храните API-ключ в менеджере секретов.

Выбор моделей

Укажите в model и embedding_model модели, доступные вашему каталогу. CodeGraph преобразует совместимые псевдонимы модели в её имя и строит URI с идентификатором каталога. Сверьте интерфейс со справочником Yandex AI Studio API, а доступ к моделям и квоту — с настройками учётной записи.

Перед изменением сохраните текущие настройки. Меняйте модели генерации и эмбеддингов отдельно: так результат проверки можно связать с одним параметром.

Проверка интеграции

Сначала выполните python -m src.cli llm providers: команда показывает провайдера из конфигурации и наличие переменных с учётными данными. Для приведённого запроса выбор задаёт CODEGRAPH_LLM_PROVIDER; фактически использованный провайдер указан в поле provider ответа. Затем выполните запрос из корня репозитория в той же сессии PowerShell. Пример загружает полный раздел llm и отправляет выбранному провайдеру короткий вопрос:

$env:PYTHONUTF8 = '1'
@'
import json
from src.llm import create_llm_provider

provider = create_llm_provider()
response = provider.generate(
    system_prompt="Explain software concepts in one short sentence.",
    user_prompt="What is a call graph?",
    max_tokens=128,
)
print(response.content)
fields = ("provider", "model", "latency_ms", "prompt_tokens", "completion_tokens")
print(json.dumps({key: response.metadata.get(key) for key in fields}, ensure_ascii=False))
'@ | python -

Ожидаемый результат — одно предложение о том, что граф вызовов связывает функции через их вызовы, затем строка JSON с метаданными. Формулировка зависит от модели. Проверьте provider, model и latency_ms; сопоставьте prompt_tokens и completion_tokens с записью об использовании в кабинете провайдера.

Пример запрашивает не более 128 выходных токенов. При ошибке авторизации, доступа к модели, TLS или квоты выполните подходящее действие из следующего раздела и повторите вопрос после исправления настройки.

Обработка сбоев

  • Ошибка аутентификации или каталога: проверьте права ключа и YANDEX_FOLDER_ID, затем безопасно ротируйте ключ.
  • Недоступная модель: проверьте настроенное имя и доступ к модели в вашем каталоге.
  • Ограничение запросов: снизьте параллелизм или запросите квоту, не создавая бесконечный повтор.
  • Превышение времени ожидания или ошибка сети: до увеличения времени проверьте политику сети и размер запроса.
  • Несовместимая политика данных: остановите удалённую обработку и выберите одобренный контур.

Для отката верните предыдущего провайдера или модель и повторите создание клиента и ограниченную сквозную проверку.

Связанные руководства