1
0
Fork 0
mirror of https://github.com/EDeev/api_processor.git synced 2026-10-07 20:49:34 +03:00
Commit graph

9 commits

Author SHA1 Message Date
76d7db1215 Образы на git.deev.su вместо dcr.deev.su: реестр zot выведен из работы, копию из GHCR делает синхронизатор 2026-10-06 17:03:54 +03:00
479e0c96ad Тесты, CI, Docker с моделью Vosk и FFmpeg, лицензия MIT, README на русском и английском
Пример записи перенесён из media/ в examples/sample.ogg — на нём проверяется распознавание.
db.sqlite3, media/ и models/ — в .gitignore.
2026-10-06 00:38:57 +00:00
b211b10c39 Настройки из окружения, токен доступа, лимит размера, без утечки ошибок
- SECRET_KEY, DEBUG (по умолчанию выключен), ALLOWED_HOSTS — из DJANGO_*;
- необязательный API_TOKEN (заголовок Authorization: Bearer), лимит файла
  MAX_UPLOAD_SIZE_MB (по умолчанию 50);
- в ответ на ошибку больше не отдаётся текст исключения — он уходит в лог;
- Django 5.2 LTS: 4.2 больше не поддерживается.
2026-10-06 00:38:57 +00:00
7465fce2b7 Документы: экранирование текста, расширения в любом регистре, верный тип картинок
- текст документа вставлялся в HTML как есть — XSS у потребителя, который отрисует
  результат; теперь текст и таблицы экранируются;
- файл с расширением .PDF или .DOCX давал пустой результат;
- картинки из DOCX и PDF всегда помечались image/png; теперь — настоящий тип, а сырые
  потоки PDF без формата картинки пропускаются; пустые ячейки таблиц — пустые строки.
2026-10-06 00:38:57 +00:00
c16287063c gRPC: клиент работает с настоящим сервером
Путь к сгенерированным модулям считался на уровень выше репозитория, импорт всегда падал, и
вместо gRPC работала заглушка с поддельным success: true. Путь исправлен, заглушка убрана;
адрес и таймаут — GRPC_SERVER и GRPC_TIMEOUT (пусто — шаг пропускается), недоступный
сервер даёт success: false. proto/*_pb2*.py пересобраны под актуальный protobuf.
2026-10-06 00:38:57 +00:00
fc2f750cee Распознавание речи: исправлены ошибки
- любой файл, кроме WAV 16 кГц моно, падал с NameError: вызывался несуществующий
  convert.convert_audio_to_wav;
- из длинной записи оставалась только последняя фраза: бралось лишь FinalResult(), а Vosk
  отдаёт текст по фразам через Result();
- общий временный audio.wav в текущей папке — одновременные запросы перезаписывали друг
  другу аудио; теперь свой временный файл на запрос;
- ffmpeg — из PATH (или FFMPEG_BINARY) вместо Windows-пути к ffmpeg.exe;
- модель загружается один раз на процесс, а не на каждый запрос;
- ошибка конвертации возвращается клиенту, а не печатается и не превращается в пустой текст.
2026-10-06 00:38:57 +00:00
c004e79119 Переводы строк приведены к LF, удалены заметки разработчика
тесты.txt — команды curl с локальными путями Windows и ссылкой на личный файл; примеры
запросов будут в README.
2026-10-06 00:09:01 +00:00
9dafb27c3d README.md 2025-07-01 00:17:54 +03:00
Egor Deev
57f47a9aa4 v. 0.1 2025-05-06 17:29:20 +03:00