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