AI Review Backend

FastAPI backend для AI Code Review Agent с поддержкой LangGraph и Ollama.

Установка

# Создайте виртуальное окружение
python -m venv venv
source venv/bin/activate  # Windows: venv\Scripts\activate

# Установите зависимости
pip install -r requirements.txt

Настройка

Создайте .env файл из примера:

cp .env.example .env

Отредактируйте .env:

# Ollama - убедитесь что Ollama запущен
OLLAMA_BASE_URL=http://localhost:11434
OLLAMA_MODEL=codellama

# Database
DATABASE_URL=sqlite+aiosqlite:///./review.db

# Security - сгенерируйте случайные строки!
SECRET_KEY=your-secret-key-here
ENCRYPTION_KEY=your-encryption-key-here

# Server
HOST=0.0.0.0
PORT=8000
DEBUG=True

# CORS
CORS_ORIGINS=http://localhost:5173

Запуск

# Запуск сервера
uvicorn app.main:app --reload --host 0.0.0.0 --port 8000

# Или через Python
python -m app.main

API будет доступен на http://localhost:8000

Swagger документация: http://localhost:8000/docs

Структура

app/
├── agents/         # LangGraph агенты
│   ├── reviewer.py   # Основной агент
│   ├── prompts.py    # Промпты для LLM
│   └── tools.py      # Инструменты агента
├── api/            # FastAPI endpoints
│   ├── repositories.py
│   ├── reviews.py
│   └── webhooks.py
├── models/         # SQLAlchemy модели
│   ├── repository.py
│   ├── pull_request.py
│   ├── review.py
│   └── comment.py
├── schemas/        # Pydantic схемы
├── services/       # Git платформы (Gitea, GitHub, Bitbucket)
├── webhooks/       # Webhook обработчики
├── config.py       # Конфигурация
├── database.py     # Database setup
└── main.py         # FastAPI приложение

API Endpoints

Repositories

  • GET /api/repositories - список
  • POST /api/repositories - создать
  • PUT /api/repositories/{id} - обновить
  • DELETE /api/repositories/{id} - удалить

Reviews

  • GET /api/reviews - список с фильтрами
  • GET /api/reviews/{id} - детали
  • POST /api/reviews/{id}/retry - повторить
  • GET /api/reviews/stats/dashboard - статистика

Webhooks

  • POST /api/webhooks/gitea/{repo_id}
  • POST /api/webhooks/github/{repo_id}
  • POST /api/webhooks/bitbucket/{repo_id}

WebSocket

  • ws://localhost:8000/ws/reviews - real-time

Разработка

Тестирование API

# Используйте Swagger UI
open http://localhost:8000/docs

# Или curl
curl http://localhost:8000/health

База данных

База данных создается автоматически при первом запуске (SQLite).

Для production рекомендуется PostgreSQL:

DATABASE_URL=postgresql+asyncpg://user:pass@localhost/dbname

Зависимости

Основные пакеты:

  • fastapi - веб-фреймворк
  • sqlalchemy - ORM
  • langchain - LLM фреймворк
  • langgraph - граф агентов
  • httpx - HTTP клиент
  • cryptography - шифрование

См. requirements.txt для полного списка.