Skip to content

Repository files navigation

AI Support API

ИИ-бот первой линии технической поддержки на базе 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 ключ

🛠 Установка и запуск

1. Клонирование репозитория

git clone <repository-url>
cd aisupport

2. Настройка окружения

Создайте файл .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"]

3. Запуск с Docker Compose

docker-compose up -d

4. Применение миграций

docker-compose exec fastapi alembic upgrade head

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

Откройте 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: Работа с базой данных

📊 API Endpoints

  • POST /api/v1/ask - Задать вопрос
  • GET /api/v1/conversations - Получить диалоги
  • POST /api/v1/auth/login - Авторизация
  • GET /health - Проверка здоровья

🔒 Безопасность

  • JWT токены для аутентификации
  • Валидация входных данных
  • Централизованная обработка ошибок
  • CORS настройки
  • TrustedHost middleware

📝 Логирование

Настроено структурированное логирование с:

  • Консольным и файловым выводом
  • Разными уровнями для разных компонентов
  • Контекстной информацией

About

AI-powered first-line tech support chatbot. Stack: FastAPI, LangGraph, OpenAI, Celery, PostgreSQL, Docker

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages