from sqlalchemy import Column, Integer, String, DateTime, func from pydantic import BaseModel from typing import Optional from datetime import datetime from chatchat.server.db.base import Base class KnowledgeBaseModel(Base): """ 知识库模型 """ __tablename__ = 'knowledge_base' id = Column(Integer, primary_key=True, autoincrement=True, comment='知识库ID') kb_name = Column(String(50), comment='知识库名称') kb_info = Column(String(200), comment='知识库简介(用于Agent)') vs_type = Column(String(50), comment='向量库类型') embed_model = Column(String(50), comment='嵌入模型名称') file_count = Column(Integer, default=0, comment='文件数量') create_time = Column(DateTime, default=func.now(), comment='创建时间') def __repr__(self): return f"" # 创建一个对应的 Pydantic 模型 class KnowledgeBaseSchema(BaseModel): id: int kb_name: str kb_info: Optional[str] vs_type: Optional[str] embed_model: Optional[str] file_count: Optional[int] create_time: Optional[datetime] class Config: from_attributes = True # 确保可以从 ORM 实例进行验证