-добавлены нетворки в докер композ -исправлен рутинг (баг пайчарма) -запросы к ии агентам не проходят из-за ссл сертификата (пробовали отключить, но пока не выходит, нужно доделать)
117 lines
4.2 KiB
Markdown
117 lines
4.2 KiB
Markdown
# Новая Планета - Backend API
|
||
|
||
Backend API для мобильного приложения **Новая Планета** - визуальное расписание для детей с РАС.
|
||
|
||
## 🛠️ Tech Stack
|
||
|
||
- **Python** 3.11+
|
||
- **FastAPI** 0.109+
|
||
- **PostgreSQL** 15+ + **Redis** 7+
|
||
- **SQLAlchemy** 2.0+ (async)
|
||
- **GigaChat API** для ИИ-агента
|
||
- **MinIO/S3** для хранения изображений
|
||
|
||
## 🚀 Быстрый старт
|
||
|
||
### Требования
|
||
|
||
- Python 3.11+
|
||
- PostgreSQL 15+
|
||
- Redis 7+
|
||
- Docker (опционально)
|
||
|
||
### Установка
|
||
|
||
1. Клонируйте репозиторий
|
||
2. Установить окружение ("python -m venv venv")
|
||
3. Установите зависимости:
|
||
```bash
|
||
pip install -r requirements.txt
|
||
```
|
||
|
||
4. Настройте `.env`:
|
||
```bash
|
||
cp .env.example .env
|
||
#В целом вам нужно поменять GIGACHAT API секцию, JWT Secret key сгенерить, просто в поисковике генератор на 256 байт сделаете JWT
|
||
#Для гигачата логинетесь, дергаете от туда CLIENT_ID и SECRET KEY
|
||
# Отредактируйте .env с вашими настройками
|
||
```
|
||
|
||
5. Запустите инфраструктуру (Docker):
|
||
```bash
|
||
docker-compose -f docker/docker-compose.yml up -d
|
||
# или используйте вариант ниже,но лучше вариант выше для избежания непредвиденного
|
||
#также напоминаю что вам необходим сам запущенный докер чтобы тестировать локально
|
||
docker-compose up
|
||
```
|
||
|
||
6. Примените миграции:
|
||
```bash
|
||
alembic upgrade head
|
||
```
|
||
|
||
7. Запустите сервер:
|
||
```bash
|
||
uvicorn app.main:app --reload
|
||
# если не запустилось, проверяйте есть ли .venv(установлено ли окружение для питона), также попробуйте в венве uvicorn app.main:app --reload --host 0.0.0.0 --port 8000
|
||
```
|
||
|
||
API доступен на `http://localhost:8000`
|
||
Swagger UI: `http://localhost:8000/docs`
|
||
|
||
## 📡 API Endpoints
|
||
|
||
### Authentication
|
||
- `POST /api/v1/auth/register` - Регистрация
|
||
- `POST /api/v1/auth/login` - Вход
|
||
- `POST /api/v1/auth/refresh` - Обновление токена
|
||
- `GET /api/v1/auth/me` - Текущий пользователь
|
||
|
||
### Для написания всех запросов ниже:
|
||
Не забывайте авторизоваться в сваггере, сверху кнопка Authorize
|
||
|
||
### Schedules
|
||
- `GET /api/v1/schedules` - Список расписаний
|
||
- `POST /api/v1/schedules` - Создать расписание
|
||
- `POST /api/v1/schedules/generate` - Сгенерировать через ИИ
|
||
- `GET /api/v1/schedules/{id}` - Получить расписание
|
||
- `PUT /api/v1/schedules/{id}` - Обновить
|
||
- `DELETE /api/v1/schedules/{id}` - Удалить
|
||
|
||
### Tasks
|
||
- `GET /api/v1/tasks/schedule/{schedule_id}` - Задачи расписания
|
||
- `POST /api/v1/tasks` - Создать задачу
|
||
- `PATCH /api/v1/tasks/{id}/complete` - Отметить выполненной
|
||
|
||
### AI
|
||
- `POST /api/v1/ai/chat` - Чат с ИИ-агентом
|
||
- `POST /api/v1/ai/schedule/generate` - Генерация расписания
|
||
|
||
### Images
|
||
- `POST /api/v1/images/upload` - Загрузить изображение
|
||
- `DELETE /api/v1/images/{key}` - Удалить изображение
|
||
|
||
### WebSocket
|
||
- `WS /api/v1/ws/chat` - WebSocket чат с ИИ
|
||
|
||
## 🗄️ База данных
|
||
|
||
Используется PostgreSQL с async SQLAlchemy. Миграции через Alembic.
|
||
|
||
## 🤖 GigaChat Integration
|
||
|
||
Интеграция с GigaChat API для:
|
||
- Чат с ИИ-агентом "Планета Земля"
|
||
- Генерация расписаний
|
||
|
||
## 📚 Документация
|
||
|
||
- Swagger UI: `/docs`
|
||
- ReDoc: `/redoc`
|
||
|
||
## 🔗 Связанные репозитории
|
||
|
||
- **Frontend (Android)** — [new-planet-android](https://git.bro-js.ru/Glevel/New-planet-app.git)
|
||
- **AI Agents** — [new-planet-ai-agents](https://git.bro-js.ru/Glevel/New-planet-ai-agent.git)
|
||
|