49 lines
1.3 KiB
Python
49 lines
1.3 KiB
Python
# -*- coding: utf-8 -*-
|
||
"""
|
||
reflex运行时领域模型
|
||
"""
|
||
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="创建时间")
|