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

Интеграция с GigaChat

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

Интеграции

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

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

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

При генерации ответа CodeGraph отправляет на адрес API системную инструкцию, вопрос пользователя и параметры генерации. Потоковый режим передаёт те же входные данные и возвращает ответ по частям. Для эмбеддингов CodeGraph передаёт исходный текст и получает его числовое представление. GigaChat обрабатывает эти запросы в своей инфраструктуре.

Классифицируйте и редактируйте данные до вызова провайдера. Общие меры описаны в Безопасности LLM.

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

По быстрому старту Sber, с 1 сентября 2026 года новые клиенты и клиенты, ранее не покупавшие пакеты, могут оплачивать работу с моделями через Cloud.ru. Сервис Foundation Models предоставляет OpenAI-совместимый API. В CodeGraph выберите провайдера openai и укажите ключ, адрес API и ID модели из Cloud.ru. Например:

$env:CODEGRAPH_LLM_PROVIDER = 'openai'
$env:OPENAI_API_KEY = '<cloud.ru-api-key>'
llm:
  provider: openai
  openai:
    api_key: ${OPENAI_API_KEY}
    base_url: https://foundation-models.api.cloud.ru/v1
    model: <model-id-from-cloud.ru>

См. быстрый старт Cloud.ru Foundation Models и справочник API. Совместимый API описывает список моделей и генерацию ответа; справочник совместимости не описывает запросы эмбеддингов.

Для действующей учётной записи GigaChat API используйте нативную настройку ниже. В кабинете проекта откройте «Настройки API» и создайте Authorization Key.

Выполняйте команды в PowerShell из корня исходного репозитория CodeGraph с установленным Python-окружением проекта и пакетом langchain-gigachat. Подготовьте проект GigaChat API, доступ к выбранной модели и квоту. Создайте Authorization Key в кабинете проекта и сохраните его в хранилище секретов. Порядок работы с существующими аккаунтами описан в быстрых стартах GigaChat API: для физических лиц и для бизнеса.

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

Храните секрет вне репозитория. Команда просмотра конфигурации CLI распознаёт GIGACHAT_AUTH_KEY. Фрагмент YAML ниже подставляет её значение в credentials. Для использования GIGACHAT_CREDENTIALS укажите ${GIGACHAT_CREDENTIALS} в том же поле.

$env:CODEGRAPH_LLM_PROVIDER = 'gigachat'
$env:GIGACHAT_AUTH_KEY = '<secret-from-approved-store>'

В config.yaml оставьте только ссылку на окружение:

llm:
  provider: gigachat
  gigachat:
    credentials: ${GIGACHAT_AUTH_KEY}
    model: <approved-model-name>
    base_url: https://api.giga.chat/v1
    scope: GIGACHAT_API_PERS
    verify_ssl_certs: true
    ca_bundle_file: ''

base_url задаёт адрес запросов к моделям: в примере указан https://api.giga.chat/v1 из документации провайдера. SDK получает токен доступа по ключу авторизации.

По умолчанию verify_ssl_certs равен true. Если корпоративный TLS-прокси использует частный центр сертификации, укажите одобренный ca_bundle_file вместо отключения проверки. Храните ключ и содержащий его .env вне Git.

Выбор модели и scope

Укажите в model имя модели, доступной вашей учётной записи GigaChat. CodeGraph передаёт это имя в запросах к API. Выберите scope по типу доступа: GIGACHAT_API_PERS для физических лиц, GIGACHAT_API_B2B для бизнеса с предоплатой или GIGACHAT_API_CORP для бизнеса с оплатой по использованию. Значения описаны в справочнике авторизации провайдера.

Перед изменением сохраните текущие значения провайдера и модели. Проверьте доступ к модели и квоту в кабинете, затем меняйте по одному параметру.

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

Сначала выполните python -m src.cli llm providers: команда показывает настроенного провайдера и наличие переменных с учётными данными. Затем выполните запрос из корня репозитория в той же сессии 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 или квоты выполните подходящее действие из следующего раздела и повторите вопрос после исправления настройки.

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

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

Для отката верните прежнего провайдера или модель и повторите вопрос из раздела «Проверка интеграции». Сверьте ответ и имя модели в метаданных.

Следующие шаги