185 lines
4.5 KiB
Markdown
185 lines
4.5 KiB
Markdown
# FileAudioAPI - Quick Start Guide
|
||
|
||
## 🚀 Быстрый старт
|
||
|
||
### Вариант 1: Запуск с Docker (рекомендуется)
|
||
|
||
```bash
|
||
# Клонировать репозиторий
|
||
cd /Users/petr/SpeechAnalytics/FileAudioAPI
|
||
|
||
# Запуск с Docker Compose
|
||
make up
|
||
|
||
# Или вручную
|
||
docker-compose up -d
|
||
```
|
||
|
||
Приложение будет доступно по адресу: **http://localhost:8000**
|
||
|
||
API документация:
|
||
- 📚 Swagger UI: http://localhost:8000/api/v1/docs
|
||
- 📖 ReDoc: http://localhost:8000/api/v1/redoc
|
||
|
||
### Вариант 2: Локальный запуск
|
||
|
||
```bash
|
||
# 1. Установить зависимости
|
||
make install
|
||
# или
|
||
pip3 install -r requirements.txt
|
||
|
||
# 2. Создать базу данных
|
||
make db-migrate
|
||
|
||
# 3. Запустить приложение
|
||
make dev
|
||
# или
|
||
python3 run.py
|
||
```
|
||
|
||
## 📋 Makefile команды
|
||
|
||
```bash
|
||
make help # Показать все доступные команды
|
||
make build # Собрать Docker образ
|
||
make up # Запустить контейнеры
|
||
make down # Остановить контейнеры
|
||
make logs # Просмотр логов
|
||
make shell # Открыть shell в контейнере
|
||
make clean # Очистка контейнеров и volumes
|
||
```
|
||
|
||
## 🔧 Полная документация
|
||
|
||
- [FastAPI API Guide](README_FASTAPI.md) - Документация API
|
||
- [Docker Deployment](README_DOCKER.md) - Docker развертывание
|
||
|
||
## 📁 Структура проекта
|
||
|
||
```
|
||
FileAudioAPI/
|
||
├── apiApp/
|
||
│ ├── schemas/ # Pydantic модели валидации
|
||
│ ├── services/ # Business logic (CRUD)
|
||
│ ├── routers/ # API endpoints
|
||
│ ├── database/ # SQLAlchemy модели
|
||
│ ├── dbApi/ # Legacy совместимость
|
||
│ ├── config.py # Конфигурация
|
||
│ └── database.py # SQLAlchemy настройка
|
||
├── main.py # FastAPI приложение
|
||
├── Dockerfile # Docker образ
|
||
├── docker-compose.yml # Docker Compose конфиг
|
||
├── Makefile # Управление проектом
|
||
└── requirements.txt # Зависимости
|
||
```
|
||
|
||
## 🎯 Основные endpoints
|
||
|
||
### Загрузка файла
|
||
```bash
|
||
curl -X POST http://localhost:8000/api/v1/upload \
|
||
-F "file=@audio.mp3"
|
||
```
|
||
|
||
### Список файлов
|
||
```bash
|
||
curl http://localhost:8000/api/v1/audio/list
|
||
```
|
||
|
||
### Запуск распознавания
|
||
```bash
|
||
curl -X POST http://localhost:8000/api/v1/recognize/{audio_id}
|
||
```
|
||
|
||
### Статус распознавания
|
||
```bash
|
||
curl http://localhost:8000/api/v1/recognize/{audio_id}
|
||
```
|
||
|
||
## 🛠️ Разработка
|
||
|
||
### Локальный запуск с автоперезагрузкой
|
||
```bash
|
||
python3 run.py
|
||
# или
|
||
make dev
|
||
```
|
||
|
||
### Запуск тестов
|
||
```bash
|
||
make test
|
||
```
|
||
|
||
### Форматирование кода
|
||
```bash
|
||
make format
|
||
```
|
||
|
||
### Линтер
|
||
```bash
|
||
make lint
|
||
```
|
||
|
||
## 🐛 Troubleshooting
|
||
|
||
### Проблема: Module not found
|
||
```bash
|
||
# Переустановить зависимости
|
||
pip3 install -r requirements.txt
|
||
```
|
||
|
||
### Проблема: Database error
|
||
```bash
|
||
# Пересоздать базу данных
|
||
make clean
|
||
make db-migrate
|
||
make up
|
||
```
|
||
|
||
### Проблема: Port already in use
|
||
```bash
|
||
# Изменить порт в docker-compose.yml
|
||
# или в main.py
|
||
```
|
||
|
||
## 📝 Environment переменные
|
||
|
||
Скопируйте `.env.example` в `.env` и настройте:
|
||
|
||
```bash
|
||
cp .env.example .env
|
||
```
|
||
|
||
Доступные переменные:
|
||
- `DATABASE_URL` - URL базы данных
|
||
- `MAX_UPLOAD_SIZE` - Макс. размер загрузки
|
||
- `APP_TITLE` - Название приложения
|
||
- `APP_VERSION` - Версия приложения
|
||
|
||
## 🔒 Безопасность
|
||
|
||
Для production:
|
||
1. Измените `CORS` origins в `main.py`
|
||
2. Настройте `DATABASE_URL` на PostgreSQL
|
||
3. Используйте Redis для хранения статусов задач
|
||
4. Добавьте аутентификацию
|
||
5. Настройте SSL/HTTPS
|
||
|
||
## 📊 Мониторинг
|
||
|
||
```bash
|
||
# Health check
|
||
curl http://localhost:8000/health
|
||
|
||
# Docker stats
|
||
docker stats file-audio-api
|
||
|
||
# Логи
|
||
make logs
|
||
```
|
||
|
||
## 🤝 Поддержка
|
||
|
||
Для вопросов и предложений создайте issue в репозитории.
|