mirror of
https://github.com/jxxghp/MoviePilot.git
synced 2026-09-06 07:56:52 +08:00
feat(web-agent): enhance message handling with edit capabilities and button descriptions
This commit is contained in:
@@ -88,6 +88,22 @@ class AgentChatChoiceButton(BaseModel):
|
||||
|
||||
label: str = Field(..., description="按钮文案")
|
||||
callback_data: str = Field(..., description="回调数据")
|
||||
description: Optional[str] = Field(None, description="选项描述")
|
||||
|
||||
|
||||
class AgentChatChoiceSelection(BaseModel):
|
||||
"""
|
||||
Agent 会话中用户选择的展示快照。
|
||||
"""
|
||||
|
||||
choice_id: str = Field(..., description="选择卡片 ID")
|
||||
title: Optional[str] = Field(None, description="标题")
|
||||
prompt: str = Field(default="", description="提示语")
|
||||
buttons: list[AgentChatChoiceButton] = Field(default_factory=list, description="按钮列表")
|
||||
button_rows: list[list[AgentChatChoiceButton]] = Field(default_factory=list, description="按钮行")
|
||||
selected_label: Optional[str] = Field(None, description="已选择文案")
|
||||
selected_value: Optional[str] = Field(None, description="已选择值")
|
||||
selected_description: Optional[str] = Field(None, description="已选择描述")
|
||||
|
||||
|
||||
class AgentChatChoiceCard(BaseModel):
|
||||
@@ -99,9 +115,11 @@ class AgentChatChoiceCard(BaseModel):
|
||||
title: Optional[str] = Field(None, description="标题")
|
||||
prompt: str = Field(default="", description="提示语")
|
||||
buttons: list[AgentChatChoiceButton] = Field(default_factory=list, description="按钮列表")
|
||||
button_rows: list[list[AgentChatChoiceButton]] = Field(default_factory=list, description="按钮行")
|
||||
status: str = Field(default="pending", description="选择状态")
|
||||
selected_label: Optional[str] = Field(None, description="已选择文案")
|
||||
selected_value: Optional[str] = Field(None, description="已选择值")
|
||||
selected_description: Optional[str] = Field(None, description="已选择描述")
|
||||
|
||||
|
||||
class AgentChatMessage(BaseModel):
|
||||
@@ -117,6 +135,7 @@ class AgentChatMessage(BaseModel):
|
||||
tools: list[AgentChatToolCall] = Field(default_factory=list, description="工具提示列表")
|
||||
attachments: list[AgentChatAttachment] = Field(default_factory=list, description="附件列表")
|
||||
choices: list[AgentChatChoiceCard] = Field(default_factory=list, description="选择卡片列表")
|
||||
choice_selection: Optional[AgentChatChoiceSelection] = Field(None, description="用户选择项快照")
|
||||
|
||||
|
||||
class AgentChatSession(BaseModel):
|
||||
|
||||
@@ -330,6 +330,8 @@ class AgentWebChatRequest(BaseModel):
|
||||
|
||||
# 用户本轮输入
|
||||
text: str = Field(default="")
|
||||
# 展示历史中记录的用户可读文本;为空时使用 text
|
||||
display_text: Optional[str] = Field(None)
|
||||
# 前端会话标识,相同标识复用同一段 Agent 记忆
|
||||
session_id: Optional[str] = Field(None)
|
||||
# 图片 URL 或 data URL 列表
|
||||
@@ -338,6 +340,12 @@ class AgentWebChatRequest(BaseModel):
|
||||
audio_refs: Optional[List[str]] = Field(default_factory=list)
|
||||
# 文件附件列表
|
||||
files: Optional[List[AgentWebChatFile]] = Field(default_factory=list)
|
||||
# 用户通过按钮选择时的完整选择快照
|
||||
choice_selection: Optional[Dict[str, Any]] = Field(default=None)
|
||||
# WebAgent 按钮回调关联的原消息 ID,用于传统交互原地编辑卡片
|
||||
original_message_id: Optional[Union[str, int]] = Field(default=None)
|
||||
# WebAgent 按钮回调关联的原聊天 ID,用于传统交互原地编辑卡片
|
||||
original_chat_id: Optional[Union[str, int]] = Field(default=None)
|
||||
# 是否在展示历史中记录本轮用户消息
|
||||
echo_user: bool = Field(default=True)
|
||||
|
||||
@@ -351,6 +359,10 @@ class AgentWebChoiceRequest(BaseModel):
|
||||
session_id: Optional[str] = Field(None)
|
||||
# Agent 工具生成的按钮回调数据
|
||||
callback_data: str = Field(..., min_length=1)
|
||||
# WebAgent 原助手消息 ID,用于传统按钮回调原地编辑
|
||||
original_message_id: Optional[Union[str, int]] = Field(default=None)
|
||||
# WebAgent 原聊天 ID,用于传统按钮回调原地编辑
|
||||
original_chat_id: Optional[Union[str, int]] = Field(default=None)
|
||||
|
||||
|
||||
class ChannelCapability(Enum):
|
||||
|
||||
Reference in New Issue
Block a user