Refactor assistant greeting logic to conditionally use system prompt for generated openers. Update related tests to verify new behavior and ensure correct metadata handling in API responses. Enhance UI to reflect changes in opener management based on generated opener settings.

This commit is contained in:
Xin Wang
2026-03-02 02:38:45 +08:00
parent 31b3969b96
commit 4d553de34d
5 changed files with 98 additions and 51 deletions

View File

@@ -182,11 +182,13 @@ def _resolve_runtime_tools(db: Session, selected_tool_ids: List[str], warnings:
def _resolve_runtime_metadata(db: Session, assistant: Assistant) -> tuple[Dict[str, Any], List[str]]:
warnings: List[str] = []
generated_opener_enabled = bool(assistant.generated_opener_enabled)
metadata: Dict[str, Any] = {
"systemPrompt": _compose_runtime_system_prompt(assistant.prompt),
"firstTurnMode": assistant.first_turn_mode or "bot_first",
"greeting": assistant.opener or "",
"generatedOpenerEnabled": bool(assistant.generated_opener_enabled),
# Generated opener should rely on systemPrompt instead of fixed opener text.
"greeting": "" if generated_opener_enabled else (assistant.opener or ""),
"generatedOpenerEnabled": generated_opener_enabled,
"output": {"mode": "audio" if assistant.voice_output_enabled else "text"},
"bargeIn": {
"enabled": not bool(assistant.bot_cannot_be_interrupted),