package service import ( "StuAcaWorksAI/dao" "StuAcaWorksAI/proto" "errors" "github.com/google/uuid" ) func CreateKnowledgeBase(userID int, req proto.KnowledgeBaseReq) (dao.KnowledgeBase, error) { //生成uuid uuid := uuid.New().String() sessionName := "知识库会话:" + req.Name //创建会话 err, sessionID := CreateSession(userID, proto.SessionTypeKnowledgeBase, sessionName) if err != nil { return dao.KnowledgeBase{}, err } // 创建知识库 base := dao.KnowledgeBase{AuthID: uint(userID), Name: req.Name, Description: req.Description, UUID: uuid, FileIDs: req.FileIDS, SessionID: sessionID} knowledgeBase, err := dao.CreateKnowledgeBase(base) if err != nil { return dao.KnowledgeBase{}, err } // 创建向量数据库,后面完成 return knowledgeBase, err } // 更新知识库 func UpdateKnowledgeBase(userID int, req proto.KnowledgeBaseReq) (dao.KnowledgeBase, error) { //查找知识库 knowledgeBase, err := dao.GetKnowledgeBaseByID(req.ID) if err != nil { return dao.KnowledgeBase{}, err } if knowledgeBase.AuthID != uint(userID) { return dao.KnowledgeBase{}, errors.New("not authorized to update this knowledge base") } knowledgeBase.Name = req.Name knowledgeBase.Description = req.Description knowledgeBase.FileIDs = req.FileIDS return dao.UpdateKnowledgeBase(knowledgeBase) } // 获取知识库列表 func GetKnowledgeBaseList(userID int) ([]dao.KnowledgeBase, error) { knowledgeBases, err := dao.GetKnowledgeBaseList(userID) if err != nil { return nil, err } return knowledgeBases, nil } // 删除知识库 func DeleteKnowledgeBase(userID int, req proto.KnowledgeBaseReq) error { //查找知识库 knowledgeBase, err := dao.GetKnowledgeBaseByID(req.ID) if err != nil { return err } if knowledgeBase.AuthID != uint(userID) { return errors.New("not authorized to delete this knowledge base") } return dao.DeleteKnowledgeBase(knowledgeBase.ID) }