Интеграции

Интеграции

Интеграции со сторонними сервисами для CodeGraph: LLM-провайдеры, службы безопасности и внешние инструменты.

Обзор

┌─────────────────────────────────────────────────────────────┐
│                       Интеграции                             │
├─────────────────────────────────────────────────────────────┤
│  LLM-провайдеры          │  Службы безопасности             │
│  ├─ Yandex AI Studio     │  ├─ Vault (секреты)              │
│  ├─ GigaChat (Сбер)      │  ├─ SIEM (логирование)           │
│  ├─ OpenAI               │  └─ DLP (защита данных)          │
│  └─ Локальные (Ollama)   │                                  │
├─────────────────────────────────────────────────────────────┤
│  Внешние инструменты     │  Базы данных                     │
│  ├─ GoCPG (CPG)          │  ├─ DuckDB (граф)                │
│  ├─ Git                  │  └─ ChromaDB (векторы)           │
│  └─ Docker               │                                  │
└─────────────────────────────────────────────────────────────┘

Доступные интеграции

LLM-провайдеры

Интеграция Описание Статус
Yandex AI Studio YandexGPT, Qwen3 через OpenAI-совместимый API Продакшн
GigaChat Интеграция с LLM Sber GigaChat Продакшн
OpenAI Модели OpenAI GPT Продакшн
Локальные (Ollama) Самостоятельно размещённые модели через Ollama Бета

Службы безопасности

Интеграция Описание Статус
HashiCorp Vault Управление секретами Продакшн
SIEM Логирование событий безопасности Продакшн
DLP Предотвращение утечки данных Продакшн

Внешние инструменты

Интеграция Описание Статус
GoCPG Генерация CPG из исходного кода Обязательно
Git Интеграция с системой контроля версий Обязательно
Docker Развёртывание в контейнерах Опционально

Конфигурация

Конфигурация LLM-провайдера

# config.yaml
llm:
  provider: yandex  # yandex, gigachat, openai, local

  yandex:
    api_key: ${YANDEX_API_KEY}
    folder_id: ${YANDEX_FOLDER_ID}
    model: yandexgpt-lite

  gigachat:
    auth_key: ${GIGACHAT_AUTH_KEY}
    scope: GIGACHAT_API_PERS

  openai:
    api_key: ${OPENAI_API_KEY}
    model: gpt-4o

  local:
    base_url: http://localhost:11434
    model: llama3.1

Интеграция безопасности

# config.yaml
security:
  vault:
    enabled: true
    address: https://vault.example.com
    token: ${VAULT_TOKEN}

  siem:
    enabled: true
    endpoint: https://siem.example.com/api

  dlp:
    enabled: true
    patterns:
      - credit_card
      - api_key
      - password

Добавление новых интеграций

Новые интеграции должны следовать этому процессу:

1. Реализация интерфейса провайдера

# src/llm/providers/my_provider.py
from src.llm.base_provider import BaseLLMProvider

class MyProvider(BaseLLMProvider):
    def __init__(self, config: dict):
        self.config = config

    async def generate(self, prompt: str) -> str:
        # Реализация
        pass

    async def embed(self, text: str) -> list[float]:
        # Реализация
        pass

2. Регистрация провайдера

# src/llm/provider_factory.py
from src.llm.providers.my_provider import MyProvider

PROVIDERS = {
    "yandex": YandexProvider,
    "gigachat": GigaChatProvider,
    "openai": OpenAIProvider,
    "my_provider": MyProvider,  # Добавить нового провайдера
}

3. Добавление конфигурации

# config.yaml
llm:
  my_provider:
    api_key: ${MY_PROVIDER_API_KEY}
    model: my-model

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

Переменная Описание Требуется для
YANDEX_API_KEY API-ключ Yandex Cloud Yandex AI
YANDEX_FOLDER_ID ID папки Yandex Cloud Yandex AI
GIGACHAT_AUTH_KEY Ключ аутентификации GigaChat GigaChat
OPENAI_API_KEY API-ключ OpenAI OpenAI
VAULT_TOKEN Токен HashiCorp Vault Vault

Связанная документация