Тип файлов | Количество строк | Доля, % |
Python (*.py) | ≈ 59 522 | 66,6 |
JavaScript / TypeScript (*.js, *.ts) | ≈ 20 372 | 22,8 |
HTML (*.html) | ≈ 4 885 | 5,5 |
CSS (*.css) | ≈ 4 630 | 5,2 |
YAML / TOML / JSON (конфигурации) | ≈ 500 | 0,6 |
Bash / PowerShell скрипты | ≈ 1 000 | 1,1 |
ИТОГО | ≈ 89 409 строк, 161 файл | 100 |
Сервис | Образ | Назначение | Порт (по умолчанию, host) |
app | sitellm/backend:1 | FastAPI-приложение, админ-панель, виджет | 18080 → 8000 |
mongo | mongo:8.0 | Документная СУБД, GridFS | 27038 → 27017 |
redis | redis:7-alpine | Кэш, брокер Celery | 16380 → 6379 |
qdrant | qdrant/qdrant:latest | Векторное хранилище | 26333/26334 → 6333/6334 |
celery_worker | sitellm/backend:1 | Фоновые задачи (индексация, эмбеддинги, бэкап) | — |
celery_beat | sitellm/backend:1 | Планировщик периодических задач | — |
ollama | ollama/ollama:latest | Локальный рантайм LLM (GGUF), опц. профиль local-ollama | 11434 |
telegram-bot | sitellm/telegram:1 | Клиент Bot API | — |
knowledge_service (опц.) | sitellm/backend:1 | Микросервис обогащения базы знаний | — |
Коллекция | Назначение |
projects | Конфигурация мульти-арендных проектов: токены ботов, промпты, доступы |
documents | Метаданные загруженных документов и web-страниц |
fs.files / fs.chunks | GridFS-бакет с бинарными файлами (PDF, DOCX, XLSX, изображения) |
conversations / sessions | История диалогов, сессии пользователей виджета и ботов |
qa_pairs | Ручные пары «вопрос — ответ» для повышения точности |
unanswered | Запросы, на которые система не дала ответа, для последующего анализа |
reading_pages | Сегментированный контент режима «чтение» |
backup_settings | Параметры расписания и истории резервного копирования |
operator_requests | Очередь обращений, переадресованных оператору |
feedback | Оценки качества ответов пользователями |
Библиотека | Версия (≥) | Назначение | Лицензия |
FastAPI | 0.115.14 | ASGI-фреймворк REST API | MIT |
Uvicorn[standard] | 0.35.0 | ASGI-сервер с поддержкой WebSocket/SSE | BSD-3-Clause |
Pydantic / pydantic-settings | 2.2.1 | Валидация и управление конфигурацией | MIT |
Celery | 5.5.3 | Брокеризованные фоновые задачи и планировщик Beat | BSD-3-Clause |
LangChain / langchain-community | 0.3.26 | Оркестрация RAG-цепочек, лоадеры | MIT |
langchain-redis | 0.2.3 | Хранилище и кэш через Redis | MIT |
LangChain-HuggingFace (опц.) | 0.1.0 | Подключение моделей HuggingFace | MIT |
aiogram | 3.5.0 | Клиент Telegram Bot API (асинхронный) | MIT |
aiohttp / requests / httpx | — | HTTP-клиенты (асинхронный, синхронный, тестовый) | Apache 2.0 / Apache 2.0 / BSD-3-Clause |
structlog | 24.1.0 | Структурированное логирование | Apache 2.0 / MIT |
prometheus-client | 0.20.0 | Экспонирование метрик /metrics | Apache 2.0 |
orjson | 3.10.18 | Высокопроизводительная JSON-сериализация | Apache 2.0 / MIT |
python-multipart | 0.0.9 | Парсинг multipart-загрузок | Apache 2.0 |
python-dotenv | 1.0.1 | Загрузка переменных окружения | BSD-3-Clause |
MCP | 1.0.0 | Реализация протокола Model Context Protocol | MIT |
Библиотека | Назначение |
pypdf ≥ 5.7.0 | Извлечение текста из PDF |
docx2txt ≥ 0.9 | Извлечение текста из DOCX |
openpyxl ≥ 3.1.5 | Чтение/запись XLSX |
beautifulsoup4 ≥ 4.12 | Парсинг HTML/XML |
lxml ≥ 5.2.0 | Быстрый парсер XML/HTML |
Pillow ≥ 10.0 | Обработка изображений (предобработка перед OCR) |
nltk ≥ 3.8.1 | Токенизация и сегментация естественного языка |
Компонент | Технология | Применение |
Векторизатор (embedder) | sentence-transformers (опц.) / встроенный клиент эмбеддингов | Преобразование текста в плотные векторы 1024-d |
Векторное хранилище | qdrant-client ≥ 1.9.0 | Поиск по плотным векторам, BM25, RRF |
Локальный инференс LLM | Ollama Runtime (REST API) | Запуск GGUF-моделей (YandexGPT-5-Lite, Llama, Mistral, Qwen, Phi) |
Внешние LLM API | backend.llm_client (универсальный адаптер) | OpenAI-совместимые HTTP API, YaLLM, корпоративные шлюзы |
Кластер LLM-узлов | backend.ollama_cluster | Балансировка между несколькими экземплярами Ollama |
Модель | Параметров | Размер | Лицензия |
yandex/YandexGPT-5-Lite-8B-instruct-GGUF | 8B | ≈ 4,5 ГБ | YandexGPT License (оценить применимость) |
mistral:7b-instruct | 7B | ≈ 4,1 ГБ | Apache 2.0 |
llama3.1:8b-instruct | 8B | ≈ 4,9 ГБ | Meta Llama 3.1 Community License |
qwen2.5:14b-instruct | 14B | ≈ 8,6 ГБ | Qwen License (Tongyi) |
phi3:mini-instruct | 3.8B | ≈ 2,7 ГБ | MIT |
gemma2:9b-instruct | 9B | ≈ 5,4 ГБ | Gemma Terms of Use |
Канал | Протокол | Модуль |
Telegram | Bot API (HTTPS, long-polling/webhook) | tg_bot/ |
ВКонтакте | VK API + Long Poll | vk_bot/ |
MAX | Web API | max_bot/ |
Bitrix24 | REST webhooks (двусторонний) | integrations/bitrix.py + connectors/bitrix24 |
Электронная почта | IMAP (входящие) + SMTP (исходящие) | integrations/mail.py + connectors/email |
Web-виджет | HTTPS + SSE (text/event-stream) | widget/ |
MCP-серверы | Model Context Protocol (JSON-RPC over stdio/HTTP) | connectors/ |
Роль | Тип учётной записи | Полномочия |
Суперадминистратор | Глобальный — задаётся через ADMIN_USERNAME / ADMIN_PASSWORD в .env | Все разделы, все проекты, управление учётными записями, конфигурация LLM-кластера и системные настройки |
Администратор проекта | Локальная учётная запись (Project.admin_password_hash, SHA-256) | Все разделы в рамках одного проекта |
Редактор базы знаний | На базе административной учётной записи проекта с ограничением разрешений | Загрузка/редактирование документов, Q&A, запуск краулера |
Оператор | Учётная запись оператора (operator_users) | Просмотр диалогов и обращений, ручное закрытие диалогов, переадресация на коллег |
Конечный пользователь | Анонимный сеанс / идентификатор мессенджера | Доступ только к публичному API (виджет, бот) |
Параметр | Минимум | Рекомендуется |
CPU | 4 ядра, AVX2 | 8+ ядер |
RAM | 16 ГБ | 32+ ГБ (при использовании моделей > 8B) |
Диск | 20 ГБ | 100+ ГБ SSD |
GPU (опц.) | — | NVIDIA с поддержкой CUDA 11.8+ (для ускорения эмбеддингов и LLM) |
ОС | Linux (Ubuntu 22.04+) | Linux (Ubuntu 22.04 LTS / Astra Linux 1.7 / RED OS 7.3+) |
Docker Engine | 24.0 | 26.x |
Docker Compose | 2.20 | 2.27+ |
Сервис | Память (limit) | Память (reservation) |
app (FastAPI) | 8 ГБ | 2 ГБ |
celery_worker | 4 ГБ | 1 ГБ |
celery_beat | 512 МБ | 256 МБ |
telegram-bot | 1 ГБ | 256 МБ |
mongo | по умолчанию хост-системы | — |
qdrant | по умолчанию хост-системы | — |
ollama | зависит от модели | — |
Код | Наименование | Связь с функциональностью «Ассистент ПРО» |
04.06 | Средства разработки программного обеспечения на нейротехнологиях и искусственном интеллекте (NLP, обработка речи, компьютерное зрение) | Базовая платформа для построения интеллектуальных ассистентов на основе NLP |
05.09 | Диалоговые роботы (чат-боты, голосовые ассистенты) | Готовое решение для диалогового взаимодействия в каналах Telegram, ВКонтакте, MAX, веб-виджет |
07.xx | Лингвистическое программное обеспечение | Эмбеддинги, токенизация, обработка русского языка |
11.04 | Интеллектуальный анализ данных | Семантическая индексация и анализ корпоративных корпусов знаний |
Компонент | Лицензия | Совместимость с проприетарным распространением |
FastAPI / Uvicorn / Pydantic | MIT / BSD-3-Clause / MIT | Совместимы |
LangChain / langchain-community | MIT | Совместимы |
Sentence Transformers | Apache 2.0 | Совместимы |
Qdrant | Apache 2.0 | Совместимы |
Redis | BSD 3-Clause (≤ 7.2) / RSALv2 (≥ 7.4) | Для коммерческого использования рекомендуется зафиксировать версию ≤ 7.2 либо использовать форк Valkey |
MongoDB Community | SSPL | Совместима при условии распространения как сервис заказчика; в проприетарной поставке учитывать ограничения SSPL |
Ollama | MIT | Совместима |
Celery | BSD-3-Clause | Совместима |
aiogram | MIT | Совместима |
pypdf / docx2txt / openpyxl | BSD-3-Clause / MIT / MIT | Совместимы |
Уровень | Инструмент | Покрытие |
Модульное (backend) | pytest ≥ 8.4.1 | ≈ 48 файлов тестов, > 100 тест-кейсов |
Интеграционное (backend) | pytest + httpx | ASGI-клиент, проверка эндпойнтов |
Модульное (frontend) | vitest ≥ 1.6.0 | Тесты SPA-админки и виджета |
Нагрузочное | scripts/benchmark.py | p50/p95-латентность; гейт CI: p95 < 4000 мс |
Линтинг | Ruff ≥ 0.12.1 | Все Python-файлы |