Сервис для хранения файлов аудио, индексации файлов, записи и выдачи результатов распознавания
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

4.5 KiB

FileAudioAPI - Quick Start Guide

🚀 Быстрый старт

Вариант 1: Запуск с Docker (рекомендуется)

# Клонировать репозиторий
cd /Users/petr/SpeechAnalytics/FileAudioAPI

# Запуск с Docker Compose
make up

# Или вручную
docker-compose up -d

Приложение будет доступно по адресу: http://localhost:8000

API документация:

Вариант 2: Локальный запуск

# 1. Установить зависимости
make install
# или
pip3 install -r requirements.txt

# 2. Создать базу данных
make db-migrate

# 3. Запустить приложение
make dev
# или
python3 run.py

📋 Makefile команды

make help      # Показать все доступные команды
make build     # Собрать Docker образ
make up        # Запустить контейнеры
make down      # Остановить контейнеры
make logs      # Просмотр логов
make shell     # Открыть shell в контейнере
make clean     # Очистка контейнеров и volumes

🔧 Полная документация

📁 Структура проекта

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

Загрузка файла

curl -X POST http://localhost:8000/api/v1/upload \
  -F "file=@audio.mp3"

Список файлов

curl http://localhost:8000/api/v1/audio/list

Запуск распознавания

curl -X POST http://localhost:8000/api/v1/recognize/{audio_id}

Статус распознавания

curl http://localhost:8000/api/v1/recognize/{audio_id}

🛠 Разработка

Локальный запуск с автоперезагрузкой

python3 run.py
# или
make dev

Запуск тестов

make test

Форматирование кода

make format

Линтер

make lint

🐛 Troubleshooting

Проблема: Module not found

# Переустановить зависимости
pip3 install -r requirements.txt

Проблема: Database error

# Пересоздать базу данных
make clean
make db-migrate
make up

Проблема: Port already in use

# Изменить порт в docker-compose.yml
# или в main.py

📝 Environment переменные

Скопируйте .env.example в .env и настройте:

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

📊 Мониторинг

# Health check
curl http://localhost:8000/health

# Docker stats
docker stats file-audio-api

# Логи
make logs

🤝 Поддержка

Для вопросов и предложений создайте issue в репозитории.