AstraChat — это AI-платформа с микросервисной архитектурой, объединяющая приватность локальных моделей, масштабируемость облачных решений и интеллект агентной архитектуры для корпоративного использования. Платформа представляет собой интеллектуальный AI-ассистент с расширенными возможностями для работы с документами, голосовым взаимодействием и автоматизацией задач, построенный на основе передовых технологий машинного обучения.
- LLM-сервис — единый сервис для инференса больших языковых моделей
- OCR-сервис — извлечение текста из изображений/сканов для дальнейшей обработки
- RAG-сервисы:
- SVC-RAG: логика RAG: индексация, поиск, иерархия чанков, связь с БД, отдает релевантные фрагменты бэкенду
- SVC-RAG-MODELS: модели для эмбеддингов и реранкинга
- TTS-сервис: синтез речи
- STT-сервис: распознавание речи
- Diarization: разделение речи по спикерам
- Backend — основная бизнес-логика с агентной архитектурой
- Frontend — современный веб-интерфейс на React
- Агент-оркестратор — автоматический выбор и координация специализированных агентов
- Специализированные агенты:
- DocumentAgent — работа с загруженными документами
- WebSearchAgent — поиск информации в интернете
- CalculationAgent — математические вычисления
- MemoryAgent — работа с памятью системы
- MCPAgent — интеграция с внешними сервисами
- LangGraphAgent — планирование и выполнение сложных задач
- Планирование задач — многошаговое планирование сложных задач
- Транскрибация речи: WhisperX
- Диаризация спикеров: автоматическое разделение речи по говорящим
- Синтез речи: Silero TTS с несколькими голосами
- Обработка документов: PDF, DOCX, TXT, Markdown
- Векторный поиск на базе PostgreSQL + pgvector
- Семантический поиск по загруженным документам
- Контекстные ответы на основе ваших документов
- Иерархическое индексирование — оптимизация для больших документов (30+ страниц)
- 4-8x ускорение поиска для больших документов
- Полный контекст вместо отдельных фрагментов
- 60-70% меньше векторов в базе данных
- Автоматическая активация для документов > 5 страниц
- MongoDB — хранение диалогов и истории общения
- PostgreSQL + pgvector — векторная база данных для RAG
- MinIO — хранение временных файлов и документов
- WebSocket — потоковая передача ответов
- Интерактивный чат — мгновенные обновления интерфейса
Перед началом работы с AstraChat необходимо установить и запустить Docker на вашей системе.
-
Скачайте Docker Desktop для Windows с официального сайта:
-
Запустите установщик и следуйте инструкциям мастера установки.
-
После установки запустите Docker Desktop и дождитесь полной загрузки (иконка Docker в системном трее должна быть активна).
-
Убедитесь, что Docker запущен, выполнив в командной строке или PowerShell:
docker --version docker-compose --version
# Обновляем список пакетов
sudo apt-get update
# Устанавливаем необходимые пакеты
sudo apt-get install -y ca-certificates curl gnupg lsb-release
# Добавляем официальный GPG ключ Docker
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
# Настраиваем репозиторий
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# Устанавливаем Docker Engine и Docker Compose
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
# Добавляем текущего пользователя в группу docker (чтобы не использовать sudo)
sudo usermod -aG docker $USER
# Перезапускаем сессию или выполняем:
newgrp docker# Устанавливаем необходимые пакеты
sudo yum install -y yum-utils
# Добавляем репозиторий Docker
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# Устанавливаем Docker Engine и Docker Compose
sudo yum install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
# Запускаем Docker
sudo systemctl start docker
sudo systemctl enable docker
# Добавляем текущего пользователя в группу docker
sudo usermod -aG docker $USER
newgrp dockerПосле установки проверьте, что Docker работает:
docker --version
docker-compose --version
sudo systemctl status docker # Для LinuxВажно
Убедитесь, что Docker запущен и работает перед выполнением команд установки AstraChat. В Windows Docker Desktop должен быть запущен, в Linux — служба Docker должна быть активна.
Примечание
Для некоторых Docker-окружений могут потребоваться дополнительные настройки. Если вы столкнетесь с проблемами подключения, обратитесь к подробной документации проекта.
Важно
При использовании Docker для установки AstraChat убедитесь, что вы правильно настроили монтирование томов для моделей и данных. Это критически важно для корректной работы системы и предотвращения потери данных.
Совет
Для использования AstraChat с поддержкой GPU (CUDA) убедитесь, что на вашей системе установлен Nvidia CUDA container toolkit. Это необходимо для ускорения работы больших моделей.
После клонирования репозитория перейдите в директорию проекта и создайте необходимые папки:
# Перейдите в директорию проекта (замените путь на ваш)
cd /path/to/AstraChat_AI
# Создайте необходимые папки
mkdir venv_312 models diarize_models silero_models whisperx_modelsЭти папки используются для хранения:
venv_312— виртуальное окружение Python (опционально, если не используете Docker)models— LLM модели и модели RAG (модель эмбеддингов, реранкер)diarize_models— модели для диаризации спикеровsilero_models— модели Silero для синтеза речиwhisperx_models— модели WhisperX для точной транскрипции
Важно: Docker должен быть запущен!
Перед выполнением команд установки убедитесь, что Docker запущен и работает:
- Windows: Docker Desktop должен быть запущен (проверьте иконку в системном трее)
- Linux: Служба Docker должна быть активна (
sudo systemctl status docker)
Для запуска всех компонентов системы (LLM-сервис, звуковые сервисы, Backend, Frontend, базы данных) убедитесь, что вы находитесь в корневой директории проекта и выполните:
# Перейдите в директорию проекта (если еще не в ней)
cd /path/to/AstrraChat_AI
# Запустите все сервисы
docker-compose up -dЭта команда запустит микросервисную связку (см. docker-compose.yml):
- LLM-сервис (
llm-service) — порт хоста8002(внутри контейнера8000) - STT (
stt-service, WhisperX) —8001 - Диаризация (
diarization-service) —8003 - OCR (
ocr-service) —8004 - TTS (
tts-service, Silero) —8005 - Backend (
astrachat-backend, API + Socket.IO) —8000 - Frontend (
astrachat-frontend) —3000 - RAG: модели (
rag-models) —8010 - RAG: логика (
svc-rag, парсинг, pgvector, BM25) —8011 - MongoDB —
27017 - PostgreSQL (pgvector) —
5432 - MinIO —
9000(API) и9001(Console)
Опционально (профиль production): Nginx — 80 и 443 (см. docker compose --profile production up -d).
После установки вы сможете получить доступ к AstraChat по адресу: http://localhost:3000
Если вы хотите запускать сервисы отдельно, убедитесь, что вы находитесь в корневой директории проекта:
# Перейдите в директорию проекта (если еще не в ней)
cd /path/to/AstraChat_AIdocker-compose -f docker-compose-llm-svc.yml up -ddocker-compose -f docker-compose-backend.yml up -ddocker-compose -f docker-compose-frontend.yml up -dДля использования GPU-ускорения при работе с большими моделями:
docker-compose up -dУбедитесь, что в вашем docker-compose.yml настроены параметры GPU (если требуется). Для Linux/WSL необходимо установить Nvidia CUDA container toolkit.
Создайте файл .env в корне проекта на основе MAIN.env и настройте следующие параметры:
LLM_MODEL_PATH— путь к LLM моделиLLM_MODEL_NAME— имя моделиSILERO_MODELS_DIR— директория с моделями SileroWHISPERX_MODELS_DIR— директория с моделями WhisperX
MONGODB_USER— пользователь MongoDBMONGODB_PASSWORD— пароль MongoDBPOSTGRES_USER— пользователь PostgreSQLPOSTGRES_PASSWORD— пароль PostgreSQLMINIO_ROOT_USER— пользователь MinIOMINIO_ROOT_PASSWORD— пароль MinIO
LLM_SVC_INTERNAL_URL— внутренний URL LLM-сервиса (по умолчанию:http://llm-svc:8000)USE_LLM_SVC— использование LLM-сервиса (по умолчанию:true)
После установки проверьте статус контейнеров:
docker-compose psВсе сервисы должны быть в состоянии Up и healthy.
Основной вход пользователя:
- Frontend: http://localhost:3000
- Backend API и WebSocket: http://localhost:8000
Микросервисы (для отладки и прямых проверок; в работе приложения backend ходит к ним по именам контейнеров):
- LLM-сервис: http://localhost:8002
- STT: http://localhost:8001
- Диаризация: http://localhost:8003
- OCR: http://localhost:8004
- TTS: http://localhost:8005
- RAG (модели): http://localhost:8010
- RAG (SVC-RAG API): http://localhost:8011
Хранилища и БД:
- MongoDB:
localhost:27017 - PostgreSQL:
localhost:5432 - MinIO API: http://localhost:9000
- MinIO Console: http://localhost:9001
Приятного использования AstraChat!
