Langchain-Chatchat/libs/chatchat-server/chatchat/server/db/models/knowledge_base_model.py

40 lines
1.4 KiB
Python

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"<KnowledgeBase(id='{self.id}', kb_name='{self.kb_name}',kb_intro='{self.kb_info} vs_type='{self.vs_type}', embed_model='{self.embed_model}', file_count='{self.file_count}', create_time='{self.create_time}')>"
# 创建一个对应的 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 实例进行验证