statuses update
This commit is contained in:
85
README.md
85
README.md
@@ -225,6 +225,8 @@ exchange: transcription_done (fanout)
|
||||
└── queue: tagging
|
||||
|
||||
queue: final (default exchange, без binding)
|
||||
|
||||
queue: pipeline.status (default exchange — события стадий для фронта)
|
||||
```
|
||||
|
||||
### Очереди
|
||||
@@ -235,6 +237,55 @@ queue: final (default exchange, без binding)
|
||||
| `analyse` | transcribe | analyse | Результат транскрипции |
|
||||
| `tagging` | transcribe | tagging | Результат транскрипции |
|
||||
| `final` | analyse/tagging | — | Итоговый результат |
|
||||
| `pipeline.status` | все воркеры | backend | Стадии обработки (см. ниже) |
|
||||
|
||||
### Очередь `pipeline.status` (стадии)
|
||||
|
||||
Каждый воркер публикует JSON-события в очередь `pipeline.status` (переменная `STATUS_QUEUE`).
|
||||
|
||||
**Формат сообщения:**
|
||||
|
||||
```json
|
||||
{
|
||||
"task_id": "01KTN...",
|
||||
"filename": "recording.wav",
|
||||
"status": "pending",
|
||||
"stage": "queued",
|
||||
"error": "",
|
||||
"timestamp": 1717843200
|
||||
}
|
||||
```
|
||||
|
||||
**Значения `status`:**
|
||||
|
||||
| status | Описание |
|
||||
|----------------|-----------------|
|
||||
| `pending` | ожидает |
|
||||
| `in_progress` | в процессе |
|
||||
| `done` | готово |
|
||||
| `error` | ошибка |
|
||||
|
||||
**Значения `stage`:**
|
||||
|
||||
| stage | Кто публикует | Когда |
|
||||
|-----------------|---------------|--------------------------------|
|
||||
| `queued` | watcher | Задача отправлена в RabbitMQ |
|
||||
| `transcribing` | transcribe | STT начат / ошибка Nexara |
|
||||
| `analysing` | analyse | LLM-анализ начат / ошибка |
|
||||
| `tagging` | tagging | Классификация начата / ошибка |
|
||||
| `completed` | analyse/tagging | Оба воркера завершились |
|
||||
|
||||
**Типичная последовательность:**
|
||||
|
||||
```
|
||||
pending/queued
|
||||
→ in_progress/transcribing
|
||||
→ in_progress/analysing (параллельно)
|
||||
→ in_progress/tagging (параллельно)
|
||||
→ done/completed
|
||||
```
|
||||
|
||||
> Браузер не может подписаться на RabbitMQ напрямую. Нужен backend-consumer, который читает `pipeline.status` и отдаёт события через REST или WebSocket.
|
||||
|
||||
### Dead Letter
|
||||
|
||||
@@ -254,7 +305,7 @@ CREATE TABLE results (
|
||||
analysis JSONB, -- результат analyse (Yandex LLM)
|
||||
tagging JSONB, -- результат tagging (Yandex LLM)
|
||||
metadata JSONB, -- file_path, segments, prompts, language, transcribed_at
|
||||
status TEXT DEFAULT 'pending', -- pending | done
|
||||
status TEXT NOT NULL DEFAULT 'pending', -- pending | in_progress | done | error
|
||||
created_at TIMESTAMPTZ,
|
||||
updated_at TIMESTAMPTZ
|
||||
);
|
||||
@@ -269,7 +320,7 @@ CREATE TABLE results (
|
||||
| `filename` | оба | При сохранении своей части |
|
||||
| `transcription` | analyse | При сохранении analysis |
|
||||
| `metadata` | analyse | file_path, segments, prompts… |
|
||||
| `status` | оба | `done` когда оба поля заполнены|
|
||||
| `status` | оба | `in_progress` при старте; `done` когда оба поля заполнены; `error` при сбое |
|
||||
|
||||
### Просмотр данных
|
||||
|
||||
@@ -484,6 +535,7 @@ OUTPUT_EXCHANGE=transcription_done
|
||||
ANALYSE_QUEUE=analyse
|
||||
TAGGING_QUEUE=tagging
|
||||
FINAL_QUEUE=final
|
||||
STATUS_QUEUE=pipeline.status
|
||||
PREFETCH=1
|
||||
|
||||
# Nexara (STT)
|
||||
@@ -560,6 +612,35 @@ docker compose logs -f watcher transcribe analyse tagging
|
||||
|
||||
UI: http://localhost:15672 → Queues → `final`
|
||||
|
||||
### Развёртывание в k3s
|
||||
|
||||
Полная инструкция: **[k8s/README.md](k8s/README.md)**
|
||||
|
||||
Кратко:
|
||||
|
||||
```bash
|
||||
# 1. секреты из .env
|
||||
./k8s/prepare-secret.sh
|
||||
|
||||
# 2. каталог хранилища на ноде k3s
|
||||
sudo mkdir -p /var/lib/audio-pipeline/storage/{incoming,processing,failed}
|
||||
|
||||
# 3. сборка образов и импорт в k3s
|
||||
./k8s/build-images.sh
|
||||
|
||||
# 4. деплой
|
||||
kubectl apply -k k8s/
|
||||
|
||||
# 5. проверка
|
||||
kubectl -n audio-pipeline get pods
|
||||
```
|
||||
|
||||
Загрузка файла на ноду:
|
||||
|
||||
```bash
|
||||
sudo cp recording.wav /var/lib/audio-pipeline/storage/incoming/
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Логирование
|
||||
|
||||
Reference in New Issue
Block a user