AIED Backend - это система для анализа данных с использованием кастомной LLM модели. Система позволяет загружать файлы, анализировать их структуру и качество, генерировать рекомендации по выбору хранилища и создавать DDL скрипты.
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Frontend │────│ AI Backend │────│ Custom LLM │
│ (Port 3001) │ │ (Port 8080) │ │ (Port 8124) │
└─────────────────┘ └─────────────────┘ └─────────────────┘
│ │
│ │
┌─────────────────┐ ┌─────────────────┐
│ PostgreSQL │ │ Redis │
│ (Port 5432) │ │ (Port 6379) │
└─────────────────┘ └─────────────────┘
│
┌─────────────────┐ ┌─────────────────┐
│ MinIO │ │ ClickHouse │
│ (Port 9000) │ │ (Port 9000) │
└─────────────────┘ └─────────────────┘
- Порт: 3001
- Функции: Загрузка файлов, отображение результатов анализа
- API: Взаимодействует с AI Backend
- Порт: 8080
- Функции: Основной API сервис, обработка данных, интеграция с LLM
- Endpoints:
POST /api/v1/files/upload- Загрузка файловPOST /api/v1/analysis/start- Запуск анализаGET /api/v1/analysis/status/{id}- Статус анализаGET /api/v1/health- Проверка здоровья сервиса
- Порт: 8124
- Функции: Интеграция с внешними LLM API, обработка текстовых запросов
- Возможности:
- Анализ структуры данных
- Оценка качества данных
- Генерация рекомендаций
- Создание DDL скриптов
- Порт: 8124
- Функции: Обработка запросов с помощью LLM
- Возможности:
- Генерация DDL скриптов
- Анализ данных
- Обработка текстовых запросов
- PostgreSQL (порт 5432) - Основная база данных
- MinIO (порт 9000) - Объектное хранилище файлов
- Redis (порт 6379) - Кэширование
- Docker
- Docker Compose
# Клонирование репозитория
git clone <repository-url>
cd AIED_baceknd
# Запуск всех сервисов
docker-compose up -d
# Проверка статуса
docker-compose ps
# Тестирование интеграции
./test_integration.shПосле запуска система будет доступна по следующим адресам:
- Frontend: http://localhost:3001
- AI Backend API: http://localhost:8080
- LLM Service: http://localhost:8124
- MinIO Console: http://localhost:9001
- ClickHouse: http://localhost:8123 (HTTP), http://localhost:9002 (Native)
# Проверка статуса всех контейнеров
docker-compose ps
# Просмотр логов
docker-compose logs -f
# Проверка конкретного сервиса
curl http://localhost:8080/api/v1/health
curl http://localhost:8124/api/v1/health
docker compose ps
# Тестирование системы
./test_llm_integration.sh- Frontend: http://localhost:3001
- API Gateway: http://localhost:8080
- Data Analysis Service: http://localhost:8083
- Custom LLM: http://localhost:8124
- MinIO Console: http://localhost:9001
curl -X POST http://localhost:8080/api/v1/files/upload \
-F "file=@data.csv" \
-F "user_id=test_user"curl -X POST http://localhost:8080/api/v1/analysis/start \
-H "Content-Type: application/json" \
-d '{
"file_id": "file_123",
"user_id": "test_user",
"file_path": "bucket/data.csv"
}'curl http://localhost:8080/api/v1/analysis/status/{analysis_id}Загрузка файла в систему.
Параметры:
file(multipart/form-data) - Файл для загрузкиuser_id(query) - ID пользователя
Ответ:
{
"file_id": "file_123",
"status": "success",
"message": "Файл загружен успешно",
"storage_path": "bucket/data.csv"
}Запуск анализа данных.
Тело запроса:
{
"file_id": "file_123",
"user_id": "test_user",
"file_path": "bucket/data.csv"
}Ответ:
{
"analysis_id": "analysis_123",
"status": "started",
"message": "Анализ запущен"
}Получение статуса анализа.
Ответ:
{
"analysis_id": "analysis_123",
"status": "completed",
"result": {
"data_quality_score": 0.85,
"storage_recommendation": {...},
"table_schema": {...},
"ddl_metadata": {...}
}
}Обработка запросов с помощью LLM.
Тело запроса:
{
"user_query": "Проанализируй данные",
"source_config": {"type": "text"},
"target_config": {"type": "response"},
"operation_type": "data_analysis"
}Ответ:
{
"pipeline_id": "pipeline_123",
"status": "success",
"message": "Результат анализа",
"metadata": {
"processing_time": 0.123,
"model": "custom-llm-v1.0"
}
}./test_llm_integration.sh- Проверка здоровья сервисов:
curl http://localhost:8080/health
curl http://localhost:8083/health
curl http://localhost:8124/health- Тестирование LLM:
curl -X POST http://localhost:8124/api/v1/process \
-H "Content-Type: application/json" \
-d '{
"user_query": "Привет",
"source_config": {"type": "text"},
"target_config": {"type": "response"},
"operation_type": "text_generation"
}'# Логи всех сервисов
docker compose logs
# Логи конкретного сервиса
docker compose logs api-gateway
docker compose logs data-analysis-service
docker compose logs custom-llmdocker compose psdocker stats- Проверьте, что все порты свободны
- Убедитесь, что Docker запущен
- Проверьте логи:
docker compose logs
- Проверьте доступность:
curl http://localhost:8124/health - Проверьте логи:
docker compose logs custom-llm
- Проверьте MinIO:
curl http://localhost:9000/minio/health/live - Проверьте PostgreSQL:
docker exec aien_postgres pg_isready
AIED_baceknd/
├── api-geteway/ # API Gateway (Go)
├── data-analysis-service/ # Data Analysis Service (Go)
├── file-service/ # File Service (Go)
├── LLM/ # Custom LLM (Python)
├── frontend/ # Frontend (React)
├── docker-compose.yml # Docker Compose конфигурация
├── test_llm_integration.sh # Тесты интеграции
└── README.md # Этот файл
-
Новый endpoint в API Gateway:
- Добавьте метод в
api-geteway/cmd/http_main.go - Обновите маршруты в
main()
- Добавьте метод в
-
Новая функциональность в LLM:
- Добавьте новый тип операции в
LLM/app.py - Реализуйте обработку в
generate_response()
- Добавьте новый тип операции в
-
Новый анализ в Data Analysis Service:
- Добавьте метод в
data-analysis-service/cmd/main.go - Интегрируйте с Custom LLM
- Добавьте метод в
Проект разработан для внутреннего использования.
Для вопросов и поддержки обращайтесь к команде разработки.