Add opener audio functionality to Assistant model and related schemas, enabling audio generation and playback features. Update API routes and frontend components to support opener audio management, including status retrieval and generation controls.

This commit is contained in:
Xin Wang
2026-02-26 14:31:50 +08:00
parent 833cb0d4c4
commit fb95e2abe2
9 changed files with 551 additions and 4 deletions

View File

@@ -275,6 +275,7 @@ class AssistantBase(BaseModel):
firstTurnMode: str = "bot_first"
opener: str = ""
generatedOpenerEnabled: bool = False
openerAudioEnabled: bool = False
prompt: str = ""
knowledgeBaseId: Optional[str] = None
language: str = "zh"
@@ -304,6 +305,7 @@ class AssistantUpdate(BaseModel):
firstTurnMode: Optional[str] = None
opener: Optional[str] = None
generatedOpenerEnabled: Optional[bool] = None
openerAudioEnabled: Optional[bool] = None
prompt: Optional[str] = None
knowledgeBaseId: Optional[str] = None
language: Optional[str] = None
@@ -349,6 +351,7 @@ class AssistantRuntimeMetadata(BaseModel):
knowledgeBaseId: Optional[str] = None
knowledge: Dict[str, Any] = Field(default_factory=dict)
history: Dict[str, Any] = Field(default_factory=dict)
openerAudio: Dict[str, Any] = Field(default_factory=dict)
assistantId: Optional[str] = None
configVersionId: Optional[str] = None
@@ -362,6 +365,22 @@ class AssistantEngineConfigResponse(BaseModel):
warnings: List[str] = Field(default_factory=list)
class AssistantOpenerAudioGenerateRequest(BaseModel):
text: Optional[str] = None
class AssistantOpenerAudioOut(BaseModel):
enabled: bool = False
ready: bool = False
encoding: str = "pcm_s16le"
sample_rate_hz: int = 16000
channels: int = 1
duration_ms: int = 0
updated_at: Optional[datetime] = None
text_hash: Optional[str] = None
tts_fingerprint: Optional[str] = None
class AssistantStats(BaseModel):
assistant_id: str
total_calls: int = 0