Add first turn option

This commit is contained in:
Xin Wang
2026-02-12 15:23:32 +08:00
parent 56ca95c200
commit edcbc2cec7
9 changed files with 97 additions and 24 deletions

View File

@@ -20,6 +20,7 @@ def _is_siliconflow_vendor(vendor: Optional[str]) -> bool:
def _resolve_runtime_metadata(db: Session, assistant: Assistant) -> dict:
metadata = {
"systemPrompt": assistant.prompt or "",
"firstTurnMode": assistant.first_turn_mode or "bot_first",
"greeting": assistant.opener or "",
"generatedOpenerEnabled": bool(assistant.generated_opener_enabled),
"output": {"mode": "audio" if assistant.voice_output_enabled else "text"},
@@ -104,6 +105,7 @@ def assistant_to_dict(assistant: Assistant) -> dict:
"id": assistant.id,
"name": assistant.name,
"callCount": assistant.call_count,
"firstTurnMode": assistant.first_turn_mode or "bot_first",
"opener": assistant.opener or "",
"generatedOpenerEnabled": bool(assistant.generated_opener_enabled),
"prompt": assistant.prompt or "",
@@ -131,6 +133,7 @@ def assistant_to_dict(assistant: Assistant) -> dict:
def _apply_assistant_update(assistant: Assistant, update_data: dict) -> None:
field_map = {
"knowledgeBaseId": "knowledge_base_id",
"firstTurnMode": "first_turn_mode",
"interruptionSensitivity": "interruption_sensitivity",
"botCannotBeInterrupted": "bot_cannot_be_interrupted",
"configMode": "config_mode",
@@ -192,6 +195,7 @@ def create_assistant(data: AssistantCreate, db: Session = Depends(get_db)):
id=str(uuid.uuid4())[:8],
user_id=1, # 默认用户,后续添加认证
name=data.name,
first_turn_mode=data.firstTurnMode,
opener=data.opener,
generated_opener_enabled=data.generatedOpenerEnabled,
prompt=data.prompt,