package llm import ( "encoding/json" "eta/eta_api/controllers" "eta/eta_api/controllers/llm/llm_http" "eta/eta_api/models" "eta/eta_api/services/llm/facade" ) type KbController struct { controllers.BaseAuthController } // SearchDocs @Title 搜索知识库文档 // @Description 搜索知识库文档 // @Success 101 {object} response.ListResp // @router /knowledge_base/searchDocs [post] func (kbctrl *KbController) SearchDocs() { br := new(models.BaseResponse).Init() defer func() { if br.ErrMsg == "" { br.IsSendEmail = false } kbctrl.Data["json"] = br kbctrl.ServeJSON() }() sysUser := kbctrl.SysUser if sysUser == nil { br.Msg = "请登录" br.ErrMsg = "请登录,SysUser Is Empty" br.Ret = 408 return } var req facade.LLMKnowledgeSearch err := json.Unmarshal(kbctrl.Ctx.Input.RequestBody, &req) if err != nil { br.Msg = "参数解析异常!" br.ErrMsg = "参数解析失败,Err:" + err.Error() return } searchResp, err := facade.LLMKnowledgeBaseSearchDocs(req) if err != nil { br.Msg = "搜索知识库失败" br.ErrMsg = "搜索知识库失败:" + err.Error() return } br.Data = searchResp br.Ret = 200 br.Success = true br.Msg = "获取成功" } // KnowledgeList // @Title 获取知识库列表 // @Description 获取知识库列表 // @Success 101 {object} response.ListResp // @router /knowledge/list [get] func (ucCtrl *UserChatController) KnowledgeList() { br := new(models.BaseResponse).Init() defer func() { ucCtrl.Data["json"] = br ucCtrl.ServeJSON() }() sysUser := ucCtrl.SysUser if sysUser == nil { br.Msg = "请登录" br.ErrMsg = "请登录,SysUser Is Empty" br.Ret = 408 return } // 获取基础配置, 若未配置则直接返回 conf, e := models.GetBusinessConf() if e != nil { br.Msg = "获取失败" br.ErrMsg = "获取基础配置失败, Err: " + e.Error() return } list := make([]llm_http.KnowledgeList, 0) if conf[models.KnowledgeBaseName] != "" { list = append(list, llm_http.KnowledgeList{ KnowledgeName: conf[models.KnowledgeBaseName], Name: "弘则公共知识库", }) } if conf[models.PrivateKnowledgeBaseName] != "" { list = append(list, llm_http.KnowledgeList{ KnowledgeName: conf[models.PrivateKnowledgeBaseName], Name: "弘则私有知识库", }) } br.Data = list br.Ret = 200 br.Success = true br.Msg = "获取知识库列表成功" }