Add configuration files for FastGPT and Xfyun voice services, enhancing LLM service capabilities. Update LLMConfig to include chat_id, variables, detail, and timeout settings. Refactor create_llm_service to support FastGPT integration and adjust pipeline to handle chat_id and greeting prompts. Implement context synchronization for interrupted assistant turns in text streaming.

This commit is contained in:
Xin Wang
2026-05-26 10:56:38 +08:00
parent e4e47f637e
commit b14ef64665
7 changed files with 583 additions and 13 deletions

View File

@@ -107,6 +107,11 @@ class LLMConfig:
base_url: str | None = None
model: str = "gpt-4o-mini"
temperature: float | None = 0.7
chat_id: str | None = None
variables: dict[str, str] = field(default_factory=dict)
detail: bool = False
timeout_sec: float = 60.0
send_system_prompt: bool = False
@dataclass(frozen=True)
@@ -183,6 +188,12 @@ def config_from_dict(data: dict) -> EngineConfig:
if stt.get("language") == "":
stt["language"] = None
llm = _dict(services.get("llm"))
if llm.get("chat_id") == "":
llm["chat_id"] = None
if not isinstance(llm.get("variables"), dict):
llm["variables"] = {}
turn = _dict(data.get("turn"))
vad = _dict(turn.get("vad"))
@@ -210,7 +221,7 @@ def config_from_dict(data: dict) -> EngineConfig:
),
agent=AgentConfig(**agent),
services=ServicesConfig(
llm=LLMConfig(**_dict(services.get("llm"))),
llm=LLMConfig(**llm),
stt=STTConfig(**stt),
tts=TTSConfig(**_dict(services.get("tts"))),
),