This commit is contained in:
Primakov Alexandr Alexandrovich
2025-10-12 23:15:09 +03:00
commit 09cdd06307
88 changed files with 15007 additions and 0 deletions
+141
View File
@@ -0,0 +1,141 @@
# 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` для полного списка.