HomePilot Deploy Bot
chore(hf): sync HomePilot to HF Space
921d377
Raw
History Blame Contribute Delete
1.57 kB
"""
Multilingual variant generator.
``generate_language_variants`` takes a filled BranchGraph and a
list of target languages, and returns a list of dicts suitable
for persisting into ``ix_node_variants`` via the repo.
Phase 1 implementation: passthrough — same narration/subtitles in
every target language with an ``[untranslated:<lang>]`` prefix.
This keeps the pipeline testable without an LLM/translator in the
loop. Phase 2 swaps in a real translator behind the same
signature.
"""
from __future__ import annotations
from typing import Any, Dict, List
from ..branching.graph import BranchGraph
def generate_language_variants(
graph: BranchGraph, *, target_languages: List[str],
) -> List[Dict[str, Any]]:
"""Produce variant rows (as dicts) for every (node, language)
pair where language is NOT already the authoring language
('en' by convention). No side effects — the caller persists.
"""
out: List[Dict[str, Any]] = []
for lang in target_languages:
lang = (lang or "").strip()
if not lang or lang == "en":
continue
for node in graph.nodes:
narration = (node.narration or "").strip()
if not narration:
continue
out.append({
"node_id": node.id,
"language": lang,
"narration": f"[untranslated:{lang}] {narration}",
"subtitles": f"[untranslated:{lang}] {narration}",
"audio_asset_id": "",
"video_asset_id": "",
})
return out