Build lightweight AI agent admin
This commit is contained in:
@@ -0,0 +1,50 @@
|
||||
"""
|
||||
对话模型
|
||||
"""
|
||||
from sqlalchemy import Column, String, Text, Float, Integer, Boolean, Index
|
||||
|
||||
from app.base_model import BaseModel
|
||||
|
||||
|
||||
class Conversation(BaseModel):
|
||||
"""
|
||||
对话
|
||||
"""
|
||||
__tablename__ = "ai_conversation"
|
||||
|
||||
app_id = Column(String(21), nullable=False, index=True, comment="所属应用ID(逻辑外键关联ai_app)")
|
||||
user_id = Column(String(21), nullable=False, index=True, comment="用户ID(逻辑外键关联core_user)")
|
||||
title = Column(String(200), default="", comment="对话标题")
|
||||
model_override_id = Column(String(21), nullable=True, comment="覆盖模型ID(逻辑外键关联ai_llm_model)")
|
||||
temperature_override = Column(Float, nullable=True, comment="覆盖温度参数")
|
||||
message_count = Column(Integer, default=0, comment="消息数量")
|
||||
total_tokens = Column(Integer, default=0, comment="总 Token 数")
|
||||
is_pinned = Column(Boolean, default=False, comment="是否置顶")
|
||||
|
||||
__table_args__ = (
|
||||
Index("ix_ai_conversation_user_app", "user_id", "app_id"),
|
||||
)
|
||||
|
||||
|
||||
class Message(BaseModel):
|
||||
"""
|
||||
消息
|
||||
"""
|
||||
__tablename__ = "ai_message"
|
||||
|
||||
conversation_id = Column(String(21), nullable=False, index=True, comment="所属对话ID(逻辑外键关联ai_conversation)")
|
||||
role = Column(String(20), nullable=False, comment="角色: system/user/assistant")
|
||||
content = Column(Text, nullable=False, comment="消息内容")
|
||||
status = Column(String(20), default="completed", comment="状态: pending/completed/failed/stopped")
|
||||
prompt_tokens = Column(Integer, default=0, comment="提示 Token 数")
|
||||
completion_tokens = Column(Integer, default=0, comment="补全 Token 数")
|
||||
total_tokens = Column(Integer, default=0, comment="总 Token 数")
|
||||
model_name = Column(String(100), default="", comment="使用的模型名称")
|
||||
latency = Column(Integer, default=0, comment="响应耗时(毫秒)")
|
||||
error_message = Column(Text, default="", comment="错误信息")
|
||||
parent_message_id = Column(String(21), nullable=True, comment="父消息ID(逻辑外键关联自身)")
|
||||
feedback = Column(String(20), default="", comment="用户反馈: like/dislike")
|
||||
|
||||
__table_args__ = (
|
||||
Index("ix_ai_message_conversation_created", "conversation_id", "sys_create_datetime"),
|
||||
)
|
||||
Reference in New Issue
Block a user