Интеграции¶
Интеграции со сторонними сервисами для 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 |
Связанная документация¶