Files
akuzakhemetov a649fb1192 Изменения:
-добавлены нетворки в докер композ
-исправлен рутинг (баг пайчарма)
-запросы к ии агентам не проходят из-за ссл сертификата (пробовали отключить, но пока не выходит, нужно доделать)
2025-12-19 00:57:13 +03:00

117 lines
4.2 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.
# Новая Планета - 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)