Руководство по интеграции GigaChat

Руководство по интеграции GigaChat

Руководство по интеграции API GigaChat (российская языковая модель от Сбера) с CodeGraph.

Содержание

Обзор

GigaChat — российский поставщик языковых моделей от Сбербанка. CodeGraph поддерживает GigaChat как альтернативу OpenAI, Yandex AI Studio или локальным моделям.

Совет: Для большего контекстного окна (до 262K токенов) рассмотрите использование Yandex AI Studio с моделями Qwen3-235B и другими.

Быстрая настройка (3 шага)

Шаг 1: Установка ключа авторизации

# Windows PowerShell
$env:GIGACHAT_AUTH_KEY = "ваш_ключ_авторизации"

# Постоянная установка (сохраняется после перезагрузки)
[System.Environment]::SetEnvironmentVariable('GIGACHAT_AUTH_KEY', 'ваш_ключ', 'User')
# Linux/Mac
export GIGACHAT_AUTH_KEY="ваш_ключ_авторизации"

# Добавьте в ~/.bashrc для постоянного действия
echo 'export GIGACHAT_AUTH_KEY="ваш_ключ"' >> ~/.bashrc

Шаг 2: Настройка config.yaml

llm:
  provider: gigachat

  gigachat:
    client_id: "019a7e2b-aeb3-78c4-ba3d-ddc1142b4ee6"
    scope: "GIGACHAT_API_PERS"
    model: "GigaChat-2-Pro"
    temperature: 0.7
    max_tokens: 2000
    timeout: 60

Шаг 3: Проверка

python test_gigachat.py

Ожидаемый вывод:

Подключение к GigaChat успешно установлено
Модель: GigaChat-2-Pro
Статус: Готов

Предустановленные параметры

Параметр Значение
Client ID 019a7e2b-aeb3-78c4-ba3d-ddc1142b4ee6
Область (Scope) GIGACHAT_API_PERS
Модель GigaChat-2-Pro
Ключ авторизации Устанавливается через переменную окружения

Доступные модели

Модель Описание Рекомендуется для
GigaChat-2-Pro Наиболее мощная Сложный анализ
GigaChat-2 Стандартная Общее использование
GigaChat-Lite Самая быстрая Простые запросы

Автоматическая настройка

Скрипт PowerShell

# Запуск автоматической настройки
.\setup_gigachat.ps1

Скрипт выполнит: 1. Запросит ключ авторизации 2. Создаст config.yaml из шаблона 3. Установит SDK GigaChat 4. Проверит конфигурацию

Использование шаблона

# Копирование шаблона
cp config.gigachat.yaml.example config.yaml

# Редактирование с вашими настройками
notepad config.yaml

Использование в коде

Базовое использование

import os
from langchain_gigachat import GigaChat

# Получение ключа авторизации из окружения
auth_key = os.getenv("GIGACHAT_AUTH_KEY")

# Инициализация клиента
llm = GigaChat(
    credentials=auth_key,
    scope="GIGACHAT_API_PERS",
    model="GigaChat-2-Pro",
    verify_ssl_certs=False
)

# Отправка запроса
response = llm.invoke("Что такое PostgreSQL?")
print(response.content)

С CodeGraph

from src.llm.gigachat_provider import GigaChatProvider

# Инициализация поставщика
provider = GigaChatProvider()

# Использование в рабочем процессе
from src.workflow import MultiScenarioCopilot

copilot = MultiScenarioCopilot()
result = copilot.run("Найти методы обработки транзакций")
print(result['answer'])

Справочник по конфигурации

Пример полного config.yaml

llm:
  provider: gigachat

  gigachat:
    # Обязательные
    client_id: "019a7e2b-aeb3-78c4-ba3d-ddc1142b4ee6"
    scope: "GIGACHAT_API_PERS"
    model: "GigaChat-2-Pro"

    # Опциональные
    temperature: 0.7          # Креативность (0.0–1.0)
    max_tokens: 2000          # Максимальная длина ответа
    timeout: 60               # Время ожидания запроса (секунды)
    verify_ssl_certs: false   # Проверка SSL
    profanity_check: false    # Фильтр нежелательного контента

    # Ограничение частоты
    max_retries: 3
    retry_delay: 1.0

Переменные окружения

# Обязательные
GIGACHAT_AUTH_KEY=ваш_ключ_авторизации

# Опциональные
GIGACHAT_CLIENT_ID=019a7e2b-aeb3-78c4-ba3d-ddc1142b4ee6
GIGACHAT_SCOPE=GIGACHAT_API_PERS
GIGACHAT_MODEL=GigaChat-2-Pro

Устранение неполадок

Ошибка аутентификации (401)

Ошибка: 401 Unauthorized

Решение:

# Проверка установки ключа
echo $GIGACHAT_AUTH_KEY

# Проверка формата ключа (должен быть в base64)
python -c "import base64; base64.b64decode('$GIGACHAT_AUTH_KEY')"

Время ожидания соединения

Ошибка: Превышено время ожидания соединения

Решение:

# Увеличение времени ожидания в config.yaml
gigachat:
  timeout: 120  # секунд

Ошибка SSL-сертификата

Ошибка: SSL: CERTIFICATE_VERIFY_FAILED

Решение:

# Отключение проверки SSL (не рекомендуется для рабочей среды)
gigachat:
  verify_ssl_certs: false

Ограничение частоты запросов

Ошибка: 429 Too Many Requests

Решение:

gigachat:
  max_retries: 5
  retry_delay: 2.0  # секунд

Рекомендации

  1. Никогда не сохраняйте ключи авторизации в репозитории — используйте переменные окружения
  2. Используйте GigaChat-2-Pro — наилучшее качество для анализа кода
  3. Установите подходящий время ожидания — 60 с для обычных задач, 120 с для сложных
  4. Включите повторные попытки — для обработки временных сбоев

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

  • Храните ключи авторизации в переменных окружения
  • Добавьте .env в .gitignore
  • Используйте защищённое соединение (HTTPS)
  • Рассмотрите возможность проверки SSL в рабочей среде

Ресурсы

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