transcription/config.yaml

118 lines
3.9 KiB
YAML
Raw Normal View History

# Конфигурация пайплайна транскрибации совещаний
# Профили оборудования
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