kb_controller.go 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. package llm
  2. import (
  3. "encoding/json"
  4. "eta/eta_api/controllers"
  5. "eta/eta_api/controllers/llm/llm_http"
  6. "eta/eta_api/models"
  7. "eta/eta_api/services/llm/facade"
  8. )
  9. type KbController struct {
  10. controllers.BaseAuthController
  11. }
  12. // SearchDocs @Title 搜索知识库文档
  13. // @Description 搜索知识库文档
  14. // @Success 101 {object} response.ListResp
  15. // @router /knowledge_base/searchDocs [post]
  16. func (kbctrl *KbController) SearchDocs() {
  17. br := new(models.BaseResponse).Init()
  18. defer func() {
  19. if br.ErrMsg == "" {
  20. br.IsSendEmail = false
  21. }
  22. kbctrl.Data["json"] = br
  23. kbctrl.ServeJSON()
  24. }()
  25. sysUser := kbctrl.SysUser
  26. if sysUser == nil {
  27. br.Msg = "请登录"
  28. br.ErrMsg = "请登录,SysUser Is Empty"
  29. br.Ret = 408
  30. return
  31. }
  32. var req facade.LLMKnowledgeSearch
  33. err := json.Unmarshal(kbctrl.Ctx.Input.RequestBody, &req)
  34. if err != nil {
  35. br.Msg = "参数解析异常!"
  36. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  37. return
  38. }
  39. searchResp, err := facade.LLMKnowledgeBaseSearchDocs(req)
  40. if err != nil {
  41. br.Msg = "搜索知识库失败"
  42. br.ErrMsg = "搜索知识库失败:" + err.Error()
  43. return
  44. }
  45. br.Data = searchResp
  46. br.Ret = 200
  47. br.Success = true
  48. br.Msg = "获取成功"
  49. }
  50. // KnowledgeList
  51. // @Title 获取知识库列表
  52. // @Description 获取知识库列表
  53. // @Success 101 {object} response.ListResp
  54. // @router /knowledge/list [get]
  55. func (ucCtrl *UserChatController) KnowledgeList() {
  56. br := new(models.BaseResponse).Init()
  57. defer func() {
  58. ucCtrl.Data["json"] = br
  59. ucCtrl.ServeJSON()
  60. }()
  61. sysUser := ucCtrl.SysUser
  62. if sysUser == nil {
  63. br.Msg = "请登录"
  64. br.ErrMsg = "请登录,SysUser Is Empty"
  65. br.Ret = 408
  66. return
  67. }
  68. // 获取基础配置, 若未配置则直接返回
  69. conf, e := models.GetBusinessConf()
  70. if e != nil {
  71. br.Msg = "获取失败"
  72. br.ErrMsg = "获取基础配置失败, Err: " + e.Error()
  73. return
  74. }
  75. list := make([]llm_http.KnowledgeList, 0)
  76. if conf[models.KnowledgeBaseName] != "" {
  77. list = append(list, llm_http.KnowledgeList{
  78. KnowledgeName: conf[models.KnowledgeBaseName],
  79. Name: "弘则公共知识库",
  80. })
  81. }
  82. if conf[models.PrivateKnowledgeBaseName] != "" {
  83. list = append(list, llm_http.KnowledgeList{
  84. KnowledgeName: conf[models.PrivateKnowledgeBaseName],
  85. Name: "弘则私有知识库",
  86. })
  87. }
  88. br.Data = list
  89. br.Ret = 200
  90. br.Success = true
  91. br.Msg = "获取知识库列表成功"
  92. }