transcription/config.yaml
keboss-m eee8f4c8a4 Replace LightRAG with native Python RAG engine + add deploy tooling
- New: src/rag/engine/ — in-process hybrid search (FTS5 BM25 + sqlite-vec + LLM rerank)
- New: src/rag/qmd/ — compatibility layer (qmd_query, qmd_chat, qmd_chat_stream, qmd_index_*)
- New: src/ingest/stub_writer.py — .md stubs for binary files (videos, archives)
- New: scripts/deploy.sh + scripts/pull_models.sh + Makefile + .env.example
- Removed: LightRAG, sentence-transformers embedding via separate package, rag_standalone/
- Removed: @nousresearch/qmd npm dep (package not published); Node.js from Dockerfile
- Updated: tests/ (46 passed), docker-compose, .dockerignore, config.yaml, README

Engine: in-process Python (no daemon, no npm), sentence-transformers 384-dim,
RRF fusion (k=60), BM25 + vector with numpy fallback. WebSocket API unchanged.

Deploy: 'git clone' + 'make init' + 'make pull-models MODELS_SOURCE=...' + 'make up'.
Models (5.83 GB) live outside git; pulled via rsync from dev host.
2026-06-10 14:24:01 +03:00

118 lines
3.9 KiB
YAML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Конфигурация пайплайна транскрибации совещаний
# Профили оборудования
profiles:
# Текущий: MacBook Air M4, 16GB RAM
mac_m4:
device: cpu # MPS на Mac может быть медленнее/багован; CPU + int8 стабильнее
compute_type: int8
batch_size: 2 # Оптимум для CPU (1.2-1.3x быстрее, RAM ~4.5 GB)
model: large-v3
language: ru
diarize: true
# Будущий: GPU с 8GB VRAM
gpu_8gb:
device: cuda
compute_type: float16 # или int8 если не хватает памяти
batch_size: 1 # large-v3 + alignment + diarization в ~8GB
model: large-v3
language: ru
diarize: true
# Универсальный CPU (без GPU)
cpu_best:
device: cpu
compute_type: int8
batch_size: 1
model: large-v3
language: ru
diarize: true
# Активный профиль (можно переопределить через CLI: --profile gpu_8gb)
active_profile: mac_m4
# Настройки диаризации
hf_token: null # HuggingFace токен для pyannote. Установите через env: HF_TOKEN
# Настройки выходного документа
output:
formats: [docx, md] # Список форматов: docx, md, txt. Можно указать один или несколько.
include_timestamps: true
speaker_label_style: name # name | id | none
paragraph_pause_sec: 2.0 # новый абзац, если пауза > N секунд
# Настройки RAG (native Python engine: BM25/FTS5 + sqlite-vec + LLM rerank)
# Движок работает in-process; внешние сервисы не требуются.
rag:
enabled: true
auto_index: true
sections:
- Планировка
- Конструкции
- MEP
- Отделка
- Общие вопросы
- Согласование
- Контроль качества
# Native RAG engine (in-process, без демонов)
qmd_collection_root: ./processed # ENV override: QMD_COLLECTION_ROOT
qmd_use_rerank: true # LLM-реранкер (2-3 сек warm)
embed_model: sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2 # ENV: RAG_EMBED_MODEL
# OpenCode LLM (чат-генерация ответов поверх найденного контекста)
chat_backend: opencode
chat_model: deepseek-v4-flash-free
chat_max_tokens: 8192
opencode_api_key: "sk-4jJBUMS7WJyBOtZZAexsSy6aT4NKOYp2gA19WLlaux8jHMw0HvyCl1V45Jf8SONz" # Или через env: OPENCODE_API_KEY
opencode_url: "https://opencode.ai/zen/v1"
# Классификация и summary (metadata layer, поверх движка)
summary_auto: true
summary_model: deepseek-v4-flash-free
summary_chunk_size: 10000
classify_chunk_size: 7000
classify_model: mimo-v2.5-free
index_model: mimo-v2.5-free # legacy alias, используется в legacy-классификации
# Очередь обработки
queue:
transcribe_workers: 2
postprocess_workers: 1
ingest_workers: 1
# Ingest документов (MD, PDF, DOCX, XLSX, TXT)
ingest:
auto_classify: true
pdf_ocr: true
doc_types:
- meeting
- specification
- estimate
- contract
- report
- correspondence
- other
# Авторизация и multi-tenant (org + projects)
auth:
jwt_secret: "" # Обязательно задайте JWT_SECRET в .env для production
jwt_expire_hours: 168
database_path: ./data/transcriba.db
bootstrap:
org_slug: merakom
org_name: "МЕРАКОМ"
admin_username: admin
admin_password: "admin123" # Смените после первого входа; или AUTH_ADMIN_PASSWORD в .env
default_projects:
- slug: "2026"
name: "2026"
- slug: "gp-merakom"
name: "ГП МЕРАКОМ"
# Пути
paths:
output_dir: ./output
temp_dir: ./tmp