ИИ-бот первой линии технической поддержки на базе FastAPI, LangGraph и OpenAI.
- Backend: FastAPI + Uvicorn
- База данных: PostgreSQL + SQLAlchemy + Alembic
- Векторная БД: Qdrant
- ИИ: OpenAI, LangGraph, LangChain
- Очереди: Celery + RabbitMQ
- NLP: spaCy, sentence-transformers
- Тестирование: pytest + pytest-asyncio
- Python 3.9+
- Docker и Docker Compose
- OpenAI API ключ
git clone <repository-url>
cd aisupportСоздайте файл .env в корне проекта:
# База данных
POSTGRES_HOST=localhost
POSTGRES_PORT=5432
POSTGRES_USER=postgres
POSTGRES_PASSWORD=postgres
POSTGRES_DB=aisupport
# Qdrant
QDRANT_HOST=localhost
QDRANT_PORT=6333
# RabbitMQ
RABBITMQ_HOST=localhost
RABBITMQ_PORT=5672
RABBITMQ_USER=guest
RABBITMQ_PASSWORD=guest
# OpenAI
OPENAI_API_KEY=your-openai-api-key
# Приложение
APP_NAME=AI Support API
APP_PORT=8000
DEBUG=false
# Безопасность
SECRET_KEY=your-secret-key-here
ACCESS_TOKEN_EXPIRE_MINUTES=30
# CORS
ALLOWED_ORIGINS=["http://localhost:3000", "http://localhost:8080"]docker-compose up -ddocker-compose exec fastapi alembic upgrade headОткройте http://localhost:8000/docs для доступа к Swagger UI.
# Все тесты
pytest
# Только unit тесты
pytest tests/unity/
# Только integration тесты
pytest tests/integration/
# С покрытием
pytest --cov=.aisupport/
├── agents/ # Агенты ИИ (RAG, File, DB, Support)
├── api/ # FastAPI приложение
│ ├── deps/ # Зависимости (auth, services)
│ ├── middleware/ # Middleware (error handling)
│ ├── routes/ # API роуты
│ └── schemas/ # Pydantic схемы
├── core/ # Основная конфигурация
├── db/ # Настройки базы данных
├── graph_config/ # Конфигурация LangGraph
├── logger/ # Настройки логирования
├── migrations/ # Alembic миграции
├── models/ # SQLAlchemy модели
├── services/ # Бизнес-логика
├── tests/ # Тесты
├── uploads/ # Загруженные файлы
├── utils/ # Утилиты
└── main.py # Точка входа
- AskService: Обработка вопросов пользователей
- FileService: Работа с файлами
- ConversationService: Управление диалогами
- ConversationStateService: Состояния графа поддержки
- SupportAgent: Основной агент поддержки
- FileAgent: Обработка файлов
- RAGAgent: Поиск по базе знаний
- DBAgent: Работа с базой данных
POST /api/v1/ask- Задать вопросGET /api/v1/conversations- Получить диалогиPOST /api/v1/auth/login- АвторизацияGET /health- Проверка здоровья
- JWT токены для аутентификации
- Валидация входных данных
- Централизованная обработка ошибок
- CORS настройки
- TrustedHost middleware
Настроено структурированное логирование с:
- Консольным и файловым выводом
- Разными уровнями для разных компонентов
- Контекстной информацией