Spaces:
Sleeping
Sleeping
File size: 2,666 Bytes
d04144c a1e4405 d04144c 775cbe6 d04144c a1e4405 d04144c a1e4405 d04144c a1e4405 d04144c 9e95393 a1e4405 9e95393 775cbe6 d04144c 9e95393 775cbe6 a1e4405 d04144c a1e4405 9e95393 775cbe6 9e95393 a1e4405 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 | from __future__ import annotations
from dataclasses import dataclass
from typing import Iterable, Mapping
from .hf_client import (
HF_CHAT_API_ADVERSARIAL,
HF_CHAT_API_CONSTRUCTIVE,
HF_CHAT_API_EVIDENCE,
HF_MODEL_4B,
HF_MODEL_8B,
)
from .japanese_skills import JapaneseShortQASkillPack
from .runtime_factory import InternalRuntimeDependencies, build_internal_core
from .service import CustomerAIWork
@dataclass(frozen=True)
class RuntimeDependencies:
live_state_provider: object
japanese_alias_registry: Mapping[str, Iterable[str]]
japanese_fuzzy_threshold: float
canonical_store: object | None = None
kb_snapshot_path: str | None = None
kb_generation_id: str | None = None
hf_token: str | None = None
role_pool: object | None = None
shared_head: object | None = None
max_targeted_retry: int = 1
constructive_model_id: str = HF_MODEL_4B
adversarial_model_id: str = HF_MODEL_4B
evidence_model_id: str = HF_MODEL_8B
constructive_api_url: str = HF_CHAT_API_CONSTRUCTIVE
adversarial_api_url: str = HF_CHAT_API_ADVERSARIAL
evidence_api_url: str = HF_CHAT_API_EVIDENCE
timeout_seconds: float = 300.0
def build_work(deps: RuntimeDependencies) -> CustomerAIWork:
if not (0.0 <= float(deps.japanese_fuzzy_threshold) <= 100.0):
raise ValueError("japanese_fuzzy_threshold_out_of_range")
if not isinstance(deps.max_targeted_retry, int) or deps.max_targeted_retry < 0:
raise ValueError("max_targeted_retry_invalid")
japanese = JapaneseShortQASkillPack(
alias_registry=deps.japanese_alias_registry,
fuzzy_threshold=float(deps.japanese_fuzzy_threshold),
)
injected_pool = deps.role_pool if deps.role_pool is not None else deps.shared_head
core = build_internal_core(
InternalRuntimeDependencies(
canonical_store=deps.canonical_store,
kb_snapshot_path=deps.kb_snapshot_path,
kb_generation_id=deps.kb_generation_id,
live_state_provider=deps.live_state_provider,
japanese_skill_pack=japanese,
hf_token=deps.hf_token,
role_pool=injected_pool,
max_targeted_retry=deps.max_targeted_retry,
constructive_model_id=deps.constructive_model_id,
adversarial_model_id=deps.adversarial_model_id,
evidence_model_id=deps.evidence_model_id,
constructive_api_url=deps.constructive_api_url,
adversarial_api_url=deps.adversarial_api_url,
evidence_api_url=deps.evidence_api_url,
timeout_seconds=deps.timeout_seconds,
)
)
return CustomerAIWork(core)
|