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 для полного списка.