package dao import ( "StuAcaWorksAI/proto" "gorm.io/gorm" ) // 知识库表结构,存储知识库的基本信息及文件信息 type KnowledgeBase struct { gorm.Model AuthID uint `gorm:"column:auth_id"` // 知识库创建者ID Name string `gorm:"column:name"` // 知识库名称 Description string `gorm:"column:description"` // 知识库描述 SessionID uint `gorm:"column:session_id"` // 会话ID,创建知识库自动生成会话 UUID string `gorm:"column:uuid"` // 知识库UUID,用于向量数据库唯一标识 FileIDs string `gorm:"column:file_ids"` // 文件ID列表,逗号分隔json '[{'file_id';1}]' } // 创建知识库 func CreateKnowledgeBase(base KnowledgeBase) (KnowledgeBase, error) { var db2 *gorm.DB var err error if proto.Config.SERVER_SQL_LOG { db2 = DB.Debug() } else { db2 = DB } err = db2.Create(&base).Error if err != nil { return KnowledgeBase{}, err } return base, nil } // 更新知识库 func UpdateKnowledgeBase(base KnowledgeBase) (KnowledgeBase, error) { var db2 *gorm.DB var err error if proto.Config.SERVER_SQL_LOG { db2 = DB.Debug() } else { db2 = DB } err = db2.Save(&base).Error if err != nil { return KnowledgeBase{}, err } return base, nil } // 获取知识库列表 func GetKnowledgeBaseList(authID int) ([]KnowledgeBase, error) { var db2 *gorm.DB var err error if proto.Config.SERVER_SQL_LOG { db2 = DB.Debug() } else { db2 = DB } var bases []KnowledgeBase err = db2.Where("auth_id = ?", authID).Find(&bases).Error if err != nil { return nil, err } return bases, nil } // 根据id获取知识库 func GetKnowledgeBaseByID(id uint) (KnowledgeBase, error) { var db2 *gorm.DB var err error if proto.Config.SERVER_SQL_LOG { db2 = DB.Debug() } else { db2 = DB } var base KnowledgeBase err = db2.Where("id = ?", id).First(&base).Error if err != nil { return KnowledgeBase{}, err } return base, nil } // 删除知识库 func DeleteKnowledgeBase(id uint) error { var db2 *gorm.DB var err error if proto.Config.SERVER_SQL_LOG { db2 = DB.Debug() } else { db2 = DB } err = db2.Where("id = ?", id).Delete(&KnowledgeBase{}).Error if err != nil { return err } return nil }