Add dynamic variable support to Assistant model and related components

- Introduce dynamic variable definitions in AssistantConfig and Assistant models, allowing for flexible prompt customization.
- Implement validation for dynamic variable names and types in the schema.
- Update backend services and routes to handle dynamic variables in assistant configurations and runtime processing.
- Enhance frontend components to support dynamic variable definitions, including a new editor for managing variables.
- Add tests to ensure proper functionality and validation of dynamic variables in various scenarios.
This commit is contained in:
Xin Wang
2026-07-12 23:42:56 +08:00
parent 7c9a18c806
commit deaf3d7730
21 changed files with 1396 additions and 12 deletions

View File

@@ -24,6 +24,7 @@ class RuntimeTool(BaseModel):
type: str
description: str = ""
definition: dict = Field(default_factory=dict)
secrets: dict = Field(default_factory=dict)
class AssistantConfig(BaseModel):
@@ -34,6 +35,10 @@ class AssistantConfig(BaseModel):
type: str = "prompt"
greeting: str = "您好,我是 AI 视频助手,请问有什么可以帮您?"
prompt: str = "你是一个有帮助的助手。"
dynamic_variable_definitions: dict = Field(default_factory=dict)
dynamic_variables: dict = Field(default_factory=dict)
secret_dynamic_variables: dict = Field(default_factory=dict)
conversation_id: str = ""
runtimeMode: RuntimeMode = "pipeline"
# 模型/音色选项
@@ -121,3 +126,4 @@ class SignalingOffer(BaseModel):
assistant_id: str | None = None
inline_config: AssistantConfig | None = None
vision_enabled: bool = False
dynamic_variables: dict = Field(default_factory=dict)