38 lines
1.6 KiB
Python
38 lines
1.6 KiB
Python
|
|
from typing import Any, Dict, Optional
|
||
|
|
|
||
|
|
from pydantic import BaseModel, ConfigDict, Field
|
||
|
|
|
||
|
|
|
||
|
|
class SuperAgentRequest(BaseModel):
|
||
|
|
"""Super Agent 请求模型"""
|
||
|
|
|
||
|
|
model_config = ConfigDict(extra="forbid")
|
||
|
|
|
||
|
|
query: str = Field(..., desc ription="用户查询")
|
||
|
|
conversation_id: Optional[str] = Field(None, description="会话ID")
|
||
|
|
user_id: Optional[str] = Field(None, description="用户ID")
|
||
|
|
workflow_type: str = Field(default="conversation", description="工作流类型")
|
||
|
|
context: Dict[str, str] = Field(default_factory=dict, description="上下文信息")
|
||
|
|
timeout_seconds: int = Field(default=30, description="超时时间(秒)")
|
||
|
|
|
||
|
|
|
||
|
|
class SuperAgentResponse(BaseModel):
|
||
|
|
"""Super Agent 响应模型"""
|
||
|
|
|
||
|
|
conversation_id: str = Field(..., description="会话ID")
|
||
|
|
workflow_type: str = Field(..., description="工作流类型")
|
||
|
|
status: str = Field(default="success", description="状态: success/error")
|
||
|
|
sql: Optional[str] = Field(None, description="生成的SQL")
|
||
|
|
result: Optional[str] = Field(None, description="查询结果")
|
||
|
|
error: Optional[str] = Field(None, description="错误信息")
|
||
|
|
metadata: Dict[str, str] = Field(default_factory=dict, description="元数据")
|
||
|
|
|
||
|
|
|
||
|
|
class SuperAgentStreamEvent(BaseModel):
|
||
|
|
"""Super Agent 流式响应事件"""
|
||
|
|
|
||
|
|
conversation_id: str = Field(..., description="会话ID")
|
||
|
|
event: str = Field(..., description="事件类型: sql_generated/sql_executing/result/error/done")
|
||
|
|
data: str = Field(..., description="事件数据")
|
||
|
|
timestamp: int = Field(..., description="时间戳(毫秒)")
|