24 lines
1.1 KiB
Python
24 lines
1.1 KiB
Python
from typing import Any, List, Optional
|
|
|
|
from pydantic import BaseModel, ConfigDict, Field
|
|
|
|
|
|
class ChatMessageFileDTO(BaseModel):
|
|
"""文件输入模型(保持与前端 DTO 兼容,允许附带任意文件元数据)。"""
|
|
|
|
model_config = ConfigDict(extra="allow")
|
|
|
|
|
|
class ChatMessageRequestDTO(BaseModel):
|
|
"""/api/workflows/stream 请求模型(对齐前端 ChatMessageRequestDTO)。"""
|
|
|
|
model_config = ConfigDict(extra="forbid")
|
|
|
|
query: Optional[str] = Field(default=None, description="用户输入/提问内容。")
|
|
inputs: Any = Field(default_factory=dict, description="App 定义的变量值,默认 {}。")
|
|
response_mode: Optional[str] = Field(default=None, description="streaming 或 blocking。")
|
|
user: Optional[str] = Field(default=None, description="用户唯一标识。")
|
|
conversation_id: Optional[str] = Field(default=None, description="可选会话 ID。")
|
|
files: List[ChatMessageFileDTO] = Field(default_factory=list, description="可选文件列表。")
|
|
auto_generate_name: Optional[bool] = Field(default=None, description="兼容旧前端字段,当前后端忽略。")
|