Skip to content

NeKonnnn/AstraChat_AI_System

Repository files navigation

AstraChat

GitHub Stars GitHub Forks GitHub Watchers Repo Size Languages Python Last Commit

Astra Chat Logo

Что такое AstraChat?

AstraChat — это AI-платформа с микросервисной архитектурой, объединяющая приватность локальных моделей, масштабируемость облачных решений и интеллект агентной архитектуры для корпоративного использования. Платформа представляет собой интеллектуальный AI-ассистент с расширенными возможностями для работы с документами, голосовым взаимодействием и автоматизацией задач, построенный на основе передовых технологий машинного обучения.

Основной функционал

Микросервисная архитектура

  • LLM-сервис — единый сервис для инференса больших языковых моделей
  • OCR-сервис — извлечение текста из изображений/сканов для дальнейшей обработки
  • RAG-сервисы:
    • SVC-RAG: логика RAG: индексация, поиск, иерархия чанков, связь с БД, отдает релевантные фрагменты бэкенду
    • SVC-RAG-MODELS: модели для эмбеддингов и реранкинга
  • TTS-сервис: синтез речи
  • STT-сервис: распознавание речи
  • Diarization: разделение речи по спикерам
  • Backend — основная бизнес-логика с агентной архитектурой
  • Frontend — современный веб-интерфейс на React

Агентная архитектура на LangGraph

  • Агент-оркестратор — автоматический выбор и координация специализированных агентов
  • Специализированные агенты:
    • DocumentAgent — работа с загруженными документами
    • WebSearchAgent — поиск информации в интернете
    • CalculationAgent — математические вычисления
    • MemoryAgent — работа с памятью системы
    • MCPAgent — интеграция с внешними сервисами
    • LangGraphAgent — планирование и выполнение сложных задач
  • Планирование задач — многошаговое планирование сложных задач

Мультимодальность

  • Транскрибация речи: WhisperX
  • Диаризация спикеров: автоматическое разделение речи по говорящим
  • Синтез речи: Silero TTS с несколькими голосами
  • Обработка документов: PDF, DOCX, TXT, Markdown

RAG система (Retrieval-Augmented Generation)

  • Векторный поиск на базе PostgreSQL + pgvector
  • Семантический поиск по загруженным документам
  • Контекстные ответы на основе ваших документов
  • Иерархическое индексирование — оптимизация для больших документов (30+ страниц)
    • 4-8x ускорение поиска для больших документов
    • Полный контекст вместо отдельных фрагментов
    • 60-70% меньше векторов в базе данных
    • Автоматическая активация для документов > 5 страниц

Хранение данных

  • MongoDB — хранение диалогов и истории общения
  • PostgreSQL + pgvector — векторная база данных для RAG
  • MinIO — хранение временных файлов и документов

Реальное время

  • WebSocket — потоковая передача ответов
  • Интерактивный чат — мгновенные обновления интерфейса

Установка Docker

Перед началом работы с AstraChat необходимо установить и запустить Docker на вашей системе.

Установка Docker для Windows

  1. Скачайте Docker Desktop для Windows с официального сайта:

  2. Запустите установщик и следуйте инструкциям мастера установки.

  3. После установки запустите Docker Desktop и дождитесь полной загрузки (иконка Docker в системном трее должна быть активна).

  4. Убедитесь, что Docker запущен, выполнив в командной строке или PowerShell:

    docker --version
    docker-compose --version

Установка Docker для Linux

Ubuntu/Debian

# Обновляем список пакетов
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

CentOS/RHEL/Fedora

# Устанавливаем необходимые пакеты
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-окружений могут потребоваться дополнительные настройки. Если вы столкнетесь с проблемами подключения, обратитесь к подробной документации проекта.

Важно

При использовании 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
  • MongoDB27017
  • PostgreSQL (pgvector) — 5432
  • MinIO9000 (API) и 9001 (Console)

Опционально (профиль production): Nginx80 и 443 (см. docker compose --profile production up -d).

После установки вы сможете получить доступ к AstraChat по адресу: http://localhost:3000

Поэтапная установка

Если вы хотите запускать сервисы отдельно, убедитесь, что вы находитесь в корневой директории проекта:

# Перейдите в директорию проекта (если еще не в ней)
cd /path/to/AstraChat_AI

1. Сначала запустите LLM-сервис:

docker-compose -f docker-compose-llm-svc.yml up -d

2. Затем запустите Backend и базы данных:

docker-compose -f docker-compose-backend.yml up -d

3. И наконец, запустите Frontend:

docker-compose -f docker-compose-frontend.yml up -d

Установка с поддержкой GPU

Для использования GPU-ускорения при работе с большими моделями:

docker-compose up -d

Убедитесь, что в вашем docker-compose.yml настроены параметры GPU (если требуется). Для Linux/WSL необходимо установить Nvidia CUDA container toolkit.

Настройка переменных окружения

Создайте файл .env в корне проекта на основе MAIN.env и настройте следующие параметры:

LLM-сервис

  • LLM_MODEL_PATH — путь к LLM модели
  • LLM_MODEL_NAME — имя модели
  • SILERO_MODELS_DIR — директория с моделями Silero
  • WHISPERX_MODELS_DIR — директория с моделями WhisperX

Базы данных

  • MONGODB_USER — пользователь MongoDB
  • MONGODB_PASSWORD — пароль MongoDB
  • POSTGRES_USER — пользователь PostgreSQL
  • POSTGRES_PASSWORD — пароль PostgreSQL
  • MINIO_ROOT_USER — пользователь MinIO
  • MINIO_ROOT_PASSWORD — пароль MinIO

Сеть

  • LLM_SVC_INTERNAL_URL — внутренний URL LLM-сервиса (по умолчанию: http://llm-svc:8000)
  • USE_LLM_SVC — использование LLM-сервиса (по умолчанию: true)

Проверка работы

После установки проверьте статус контейнеров:

docker-compose ps

Все сервисы должны быть в состоянии Up и healthy.

Доступ к сервисам

Основной вход пользователя:

Микросервисы (для отладки и прямых проверок; в работе приложения backend ходит к ним по именам контейнеров):

Хранилища и БД:


Star History

Star History Chart


Приятного использования AstraChat!

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors