API для работы с файлами, индексация файлов и результатов распощнавания

This commit is contained in:
poturaevpetr
2025-12-24 16:05:14 +05:00
parent 4f23dc8664
commit c39b348472
31 changed files with 1739 additions and 0 deletions
+184
View File
@@ -0,0 +1,184 @@
# 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 в репозитории.