feat: implement file upload and callback handling for Web Agent

This commit is contained in:
jxxghp
2026-06-16 22:53:11 +08:00
parent e8ae686d4f
commit e78efe3e34
6 changed files with 413 additions and 19 deletions
+16 -1
View File
@@ -264,9 +264,11 @@ class AgentWebChatRequest(BaseModel):
name: Optional[str] = Field(None)
mime_type: Optional[str] = Field(None)
size: Optional[int] = Field(None)
local_path: Optional[str] = Field(None)
status: Optional[str] = Field(None)
# 用户本轮输入
text: str = Field(..., min_length=1)
text: str = Field(default="")
# 前端会话标识,相同标识复用同一段 Agent 记忆
session_id: Optional[str] = Field(None)
# 图片 URL 或 data URL 列表
@@ -277,6 +279,17 @@ class AgentWebChatRequest(BaseModel):
files: Optional[List[AgentWebChatFile]] = Field(default_factory=list)
class AgentWebChoiceRequest(BaseModel):
"""
Web 智能助手按钮选择请求。
"""
# 前端会话标识,用于保持与原对话窗口的关联
session_id: Optional[str] = Field(None)
# Agent 工具生成的按钮回调数据
callback_data: str = Field(..., min_length=1)
class ChannelCapability(Enum):
"""
渠道能力枚举
@@ -474,6 +487,8 @@ class ChannelCapabilityManager:
MessageChannel.WebAgent: ChannelCapabilities(
channel=MessageChannel.WebAgent,
capabilities={
ChannelCapability.INLINE_BUTTONS,
ChannelCapability.CALLBACK_QUERIES,
ChannelCapability.MESSAGE_EDITING,
ChannelCapability.MARKDOWN,
ChannelCapability.RICH_TEXT,