""" 知识库检索日志模型 记录每次检索的查询、结果、耗时等信息,用于分析检索质量。 """ from sqlalchemy import Column, String, Text, Integer, Float, JSON, Index from app.base_model import BaseModel class KnowledgeRetrievalLog(BaseModel): """ 知识库检索日志 记录每次检索请求的完整信息,用于检索质量分析和优化。 """ __tablename__ = "ai_knowledge_retrieval_log" # 检索请求 query = Column(Text, nullable=False, comment="查询文本") knowledge_base_ids = Column(JSON, nullable=False, comment="检索的知识库ID列表") retrieval_mode = Column(String(20), default="hybrid", comment="检索模式: vector/fulltext/hybrid") top_k = Column(Integer, default=5, comment="请求的返回数量") score_threshold = Column(Float, default=0.5, comment="相似度阈值") # 检索结果 result_count = Column(Integer, default=0, comment="实际返回结果数") results = Column(JSON, nullable=True, comment="检索结果摘要(segment_id/score/kb_id)") rerank_applied = Column(String(5), default="false", comment="是否应用了重排序") # 性能 elapsed_time = Column(Integer, default=0, comment="耗时(毫秒)") # 来源 source = Column(String(50), nullable=True, comment="调用来源: api/workflow/chat") user_id = Column(String(21), nullable=True, comment="操作用户ID") __table_args__ = ( Index('idx_retrieval_log_query_time', 'sys_create_datetime'), Index('idx_retrieval_log_user', 'user_id'), )