# -*- coding: utf-8 -*- """ 内存模型 """ from datetime import datetime from typing import Dict from pydantic import BaseModel, Field class ThoughtNode(BaseModel): """ 思考节点内存模型 """ kind: str content: str class Dialog(BaseModel): """ 对话内存模型 """ question: str = Field(..., description="问题") is_thinking: bool = Field( default=False, description="思考状态,True 表示思考中,False 表示思考完成" ) is_collapse_expanded: bool = Field( default=False, description="思考折叠面板展开状态,True 表示展开,False 表示折叠" ) thought_nodes: dict[int, ThoughtNode] = Field( default_factory=dict, description="思考节点字典" ) answer: str = Field(default="", description="回答") class Conversation(BaseModel): """ 会话内存模型 """ description: str = Field(default="新会话", description="会话描述") is_running: bool = Field( default=False, description="运行状态,True 表示运行中,False 表示运行完成" ) dialogs: Dict[str, Dialog] = Field(default_factory=dict, description="对话字典") created_at: datetime = Field(default_factory=datetime.now, description="创建时间")