from datetime import datetime from typing import Optional from pydantic import BaseModel from sqlalchemy import Column, DateTime, Integer, String, func 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 实例进行验证