Python/agent/application/models.py

51 lines
1.6 KiB
Python

# -*- coding: utf-8 -*-
"""
数据表模型
"""
from datetime import datetime
from pydantic_ai._uuid import uuid7
from sqlmodel import Field, JSON, SQLModel
# 会话数据表模型
class Conversation(SQLModel, table=True):
id: str = Field(
default_factory=lambda: str(uuid7()),
primary_key=True,
description="会话唯一标识",
)
user_id: str = Field(..., index=True, description="用户唯一标识")
description: str = Field(..., description="会话描述")
is_deleted: bool = Field(default=False, description="是否删除")
created_at: datetime = Field(default_factory=datetime.now, description="创建时间")
# 对话数据表模型
class Dialog(SQLModel, table=True):
id: str = Field(
default_factory=lambda: str(uuid7()),
primary_key=True,
description="对话唯一标识",
)
conversation_id: str = Field(..., index=True, description="会话唯一标识")
question: str = Field(..., description="问题")
thought_nodes: list[ThoughtNode] = Field(
default_factory=list, sa_type=JSON, description="思考节点列表"
)
answer: str = Field(default="", description="回答")
# 思考节点数据表模型
class ThoughtNode(SQLModel):
kind: str = Field(description="思考节点类型")
content: str = Field(default="", description="思考节点内容")
# 运行结果数据表模型
class RunResult(SQLModel, table=True):
conversation_id: str = Field(primary_key=True, description="会话唯一标识")
dialog_id: str = Field(primary_key=True, description="对话唯一标识")
new_messages: str = Field(description="新增消息")