Files
moss-ai/app/backend-python/models/chat.py
雷雨 8635b84b2d init
2025-12-15 22:05:56 +08:00

67 lines
1.9 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
from typing import List, Optional, Any, Dict
from pydantic import BaseModel, Field
# 聊天请求
class ChatRequest(BaseModel):
query: str = Field(..., description="用户输入的消息")
system_user_id: int = Field(..., description="系统用户ID当前登录用户")
context_id: Optional[str] = Field(None, description="会话上下文ID")
class Config:
json_schema_extra = {
"example": {
"query": "查看所有可用代理",
"system_user_id": 1000000001,
"context_id": "session-1234567890"
}
}
# 聊天响应
class ChatResponse(BaseModel):
content: str = Field(..., description="AI 回复内容")
context_id: str = Field(..., description="会话上下文ID")
task_id: Optional[str] = Field(None, description="任务ID")
status: str = Field(default="success", description="响应状态")
class Config:
json_schema_extra = {
"example": {
"content": "系统中共有 4 个可用代理...",
"context_id": "session-1234567890",
"task_id": "task-abc123",
"status": "success"
}
}
# 错误响应
class ErrorResponse(BaseModel):
error: str = Field(..., description="错误类型")
message: str = Field(..., description="错误消息")
details: Optional[Dict[str, Any]] = Field(None, description="错误详情")
# A2A 消息部分
class A2AMessagePart(BaseModel):
kind: str = "text"
text: str
# A2A 消息
class A2AMessage(BaseModel):
context_id: str
role: str = "user"
parts: List[A2AMessagePart]
message_id: str
# A2A 请求
class A2ARequest(BaseModel):
jsonrpc: str = "2.0"
method: str = "message/send"
params: Dict[str, A2AMessage]
id: int
# A2A 响应
class A2AResponse(BaseModel):
id: int
jsonrpc: str
result: Dict[str, Any]