translation.py 968 Bytes
"""Translation client factory for business callers."""

from __future__ import annotations

from typing import Any

from config.services_config import get_translation_config
from translation.client import TranslationServiceClient


def create_translation_provider(query_config: Any = None) -> TranslationServiceClient:
    """
    Create a translation client.

    Translation is no longer selected via provider mechanism on the caller side.
    Search / indexer always talk to the translator service, while the service
    itself decides which translation capabilities are enabled and how to route.
    """

    cfg = get_translation_config()
    qc = query_config
    default_scene = getattr(qc, "translation_context", None) if qc is not None else None
    return TranslationServiceClient(
        base_url=cfg.service_url,
        default_model=cfg.default_model,
        default_scene=default_scene or cfg.default_scene,
        timeout_sec=cfg.timeout_sec,
    )