Python/agent/application/domain_models.py

59 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.

# -*- coding: utf-8 -*-
"""
领域模型
"""
from datetime import datetime
from typing import Dict, List
from pydantic_ai._uuid import uuid7
from pydantic import BaseModel, Field
class Thought(BaseModel):
"""
思考节点领域模型
"""
id: str = Field(..., description="思考唯一标识")
type: str = Field(..., description="思考类型")
content: str = Field(..., description="思考内容")
class Dialog(BaseModel):
"""
对话领域模型
"""
id: str = Field(..., description="对话唯一标识")
user_prompt: str = Field(..., description="用户提示词")
thoughts: List[Thought] = Field(default_factory=list, description="思考列表")
result_output: str = Field(default="", description="结果输出")
is_thinking: bool = Field(
default=False, description="正在思考True 表示正在思考False 表示未正在思考"
)
is_expanded: bool = Field(
default=False, description="思考折叠面板展开状态True 表示展开False 表示折叠"
)
class Conversation(BaseModel):
"""
会话领域模型
"""
id: str = Field(default_factory=lambda: str(uuid7()), description="会话唯一标识")
description: str = Field(default="新会话", description="会话描述")
is_running: bool = Field(
default=False, description="正在运行True 表示正在运行False 表示未正在运行"
)
dialogs: List[Dialog] = Field(default_factory=list, description="对话列表")
created_at: datetime = Field(default_factory=datetime.now, description="创建时间")
class ConversationHistoryItem(BaseModel):
"""
会话历史项领域模型
"""
id: str = Field(..., description="会话唯一标识")
description: str = Field(..., description="会话描述")
created_at: str = Field(..., description="会话创建时间")