init
This commit is contained in:
@@ -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` для полного списка.
|
||||
|
||||
Reference in New Issue
Block a user