Primakov Alexandr Alexandrovich 09cdd06307 init
2025-10-12 23:15:09 +03:00

142 lines
3.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# AI Review Backend
FastAPI backend для AI Code Review Agent с поддержкой LangGraph и Ollama.
## Установка
```bash
# Создайте виртуальное окружение
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
# Установите зависимости
pip install -r requirements.txt
```
## Настройка
Создайте `.env` файл из примера:
```bash
cp .env.example .env
```
Отредактируйте `.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
```
## Запуск
```bash
# Запуск сервера
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
```bash
# Используйте Swagger UI
open http://localhost:8000/docs
# Или curl
curl http://localhost:8000/health
```
### База данных
База данных создается автоматически при первом запуске (SQLite).
Для production рекомендуется PostgreSQL:
```env
DATABASE_URL=postgresql+asyncpg://user:pass@localhost/dbname
```
## Зависимости
Основные пакеты:
- `fastapi` - веб-фреймворк
- `sqlalchemy` - ORM
- `langchain` - LLM фреймворк
- `langgraph` - граф агентов
- `httpx` - HTTP клиент
- `cryptography` - шифрование
См. `requirements.txt` для полного списка.