package llm

import (
	"encoding/json"
	"eta/eta_api/controllers"
	"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 = "获取成功"
}