| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- """数据模型定义"""
- from pydantic import BaseModel, Field
- from typing import Dict, List, Optional
- from datetime import datetime
- class ChatRequest(BaseModel):
- """单个NPC对话请求"""
- npc_name: str = Field(..., description="NPC名称")
- message: str = Field(..., description="玩家消息")
-
- class Config:
- json_schema_extra = {
- "example": {
- "npc_name": "张三",
- "message": "你好,你在做什么?"
- }
- }
- class ChatResponse(BaseModel):
- """单个NPC对话响应"""
- npc_name: str = Field(..., description="NPC名称")
- npc_title: str = Field(..., description="NPC职位")
- message: str = Field(..., description="NPC回复")
- success: bool = Field(default=True, description="是否成功")
- timestamp: Optional[datetime] = Field(default_factory=datetime.now, description="时间戳")
-
- class Config:
- json_schema_extra = {
- "example": {
- "npc_name": "张三",
- "npc_title": "Python工程师",
- "message": "你好!我正在写代码,调试一个多智能体系统的bug。",
- "success": True
- }
- }
- class NPCInfo(BaseModel):
- """NPC信息"""
- name: str = Field(..., description="NPC名称")
- title: str = Field(..., description="NPC职位")
- location: str = Field(..., description="NPC位置")
- activity: str = Field(..., description="当前活动")
- available: bool = Field(default=True, description="是否可对话")
- class NPCStatusResponse(BaseModel):
- """NPC状态响应"""
- dialogues: Dict[str, str] = Field(..., description="NPC当前对话内容")
- last_update: Optional[datetime] = Field(None, description="上次更新时间")
- next_update_in: int = Field(..., description="下次更新倒计时(秒)")
-
- class Config:
- json_schema_extra = {
- "example": {
- "dialogues": {
- "张三": "终于把这个bug修复了,测试通过!",
- "李四": "下周的产品评审会需要准备一下资料。",
- "王五": "这个界面的配色方案还需要优化一下。"
- },
- "last_update": "2024-01-15T10:30:00",
- "next_update_in": 25
- }
- }
- class NPCListResponse(BaseModel):
- """NPC列表响应"""
- npcs: List[NPCInfo] = Field(..., description="NPC列表")
- total: int = Field(..., description="NPC总数")
|