فهرست منبع

Merge branch 'rag/4.0' into debug

Roc 1 روز پیش
والد
کامیت
aa400b6dc3

+ 6 - 0
controllers/llm/abstract.go

@@ -157,6 +157,12 @@ func getAbstractList(keyWord string, tagList []int, questionId int, startSize, p
 		//"ModifyTime":              "desc",
 		//"WechatArticleAbstractId": "desc",
 	}
+	if keyWord == `` {
+		sortMap = map[string]string{
+			"ModifyTime": "desc",
+			//"WechatArticleAbstractId": "desc",
+		}
+	}
 
 	obj := new(rag.WechatPlatform)
 	platformList, tmpErr := obj.GetListByCondition(` AND enabled = 1 `, []interface{}{}, 0, 100000)

+ 19 - 3
controllers/llm/question.go

@@ -28,6 +28,7 @@ type QuestionController struct {
 // @Param   PageSize   query   int  true       "每页数据条数"
 // @Param   CurrentIndex   query   int  true       "当前页页码,从1开始"
 // @Param   KeyWord   query   string  true       "搜索关键词"
+// @Param   IsQueryDefault   query   bool  true       "是否默认:true,或者false"
 // @Success 200 {object} []*rag.QuestionListListResp
 // @router /question/list [get]
 func (c *QuestionController) List() {
@@ -46,6 +47,7 @@ func (c *QuestionController) List() {
 	pageSize, _ := c.GetInt("PageSize")
 	currentIndex, _ := c.GetInt("CurrentIndex")
 	keyWord := c.GetString("KeyWord")
+	isQueryDefault, _ := c.GetBool("IsQueryDefault")
 
 	var startSize int
 	if pageSize <= 0 {
@@ -64,9 +66,15 @@ func (c *QuestionController) List() {
 		var pars []interface{}
 
 		if keyWord != "" {
-			condition += fmt.Sprintf(` AND %s like ?`, rag.QuestionColumns.QuestionContent)
+			condition += fmt.Sprintf(` AND %s like ? `, rag.QuestionColumns.QuestionContent)
 			pars = append(pars, `%`+keyWord+`%`)
 		}
+
+		if isQueryDefault {
+			condition += fmt.Sprintf(` AND %s = ? `, rag.QuestionColumns.IsDefault)
+			pars = append(pars, 1)
+		}
+
 		obj := new(rag.Question)
 		tmpTotal, list, err := obj.GetPageListByCondition(condition, pars, startSize, pageSize)
 		if err != nil {
@@ -84,7 +92,7 @@ func (c *QuestionController) List() {
 			//"ArticleCreateTime": "desc",
 			//"WechatArticleId":   "desc",
 		}
-		tmpTotal, list, err := elastic.RagQuestionEsSearch(keyWord, startSize, pageSize, sortMap)
+		tmpTotal, list, err := elastic.RagQuestionEsSearch(keyWord, isQueryDefault, startSize, pageSize, sortMap)
 		if err != nil {
 			br.Msg = "获取失败"
 			br.ErrMsg = "获取失败,Err:" + err.Error()
@@ -114,6 +122,7 @@ func (c *QuestionController) List() {
 // @Param   PageSize   query   int  true       "每页数据条数"
 // @Param   CurrentIndex   query   int  true       "当前页页码,从1开始"
 // @Param   KeyWord   query   string  true       "搜索关键词"
+// @Param   IsQueryDefault   query   bool  true       "是否默认:true,或者false"
 // @Success 200 {object} []*rag.QuestionListListResp
 // @router /question/title/list [get]
 func (c *QuestionController) TitleList() {
@@ -132,6 +141,7 @@ func (c *QuestionController) TitleList() {
 	pageSize, _ := c.GetInt("PageSize")
 	currentIndex, _ := c.GetInt("CurrentIndex")
 	keyWord := c.GetString("KeyWord")
+	isQueryDefault, _ := c.GetBool("IsQueryDefault")
 
 	var startSize int
 	if pageSize <= 0 {
@@ -153,6 +163,12 @@ func (c *QuestionController) TitleList() {
 			condition += fmt.Sprintf(` AND %s like ?`, rag.QuestionColumns.QuestionContent)
 			pars = append(pars, `%`+keyWord+`%`)
 		}
+
+		if isQueryDefault {
+			condition += fmt.Sprintf(` AND %s = ? `, rag.QuestionColumns.IsDefault)
+			pars = append(pars, 1)
+		}
+
 		obj := new(rag.Question)
 		tmpTotal, list, err := obj.GetTitlePageListByCondition(condition, pars, startSize, pageSize)
 		if err != nil {
@@ -170,7 +186,7 @@ func (c *QuestionController) TitleList() {
 			//"ArticleCreateTime": "desc",
 			//"WechatArticleId":   "desc",
 		}
-		tmpTotal, esList, err := elastic.RagQuestionEsSearch(keyWord, startSize, pageSize, sortMap)
+		tmpTotal, esList, err := elastic.RagQuestionEsSearch(keyWord, isQueryDefault, startSize, pageSize, sortMap)
 		if err != nil {
 			br.Msg = "获取失败"
 			br.ErrMsg = "获取失败,Err:" + err.Error()

+ 6 - 0
controllers/llm/rag_eta_report_abstract.go

@@ -157,6 +157,12 @@ func getRagEtaReportAbstractList(keyWord string, tagList []int, questionId, star
 		//"ModifyTime":              "desc",
 		//"WechatArticleAbstractId": "desc",
 	}
+	if keyWord == `` {
+		sortMap = map[string]string{
+			"ModifyTime": "desc",
+			//"WechatArticleAbstractId": "desc",
+		}
+	}
 
 	tmpTotal, list, tmpErr := elastic.RagEtaReportAbstractEsSearch(keyWord, tagList, questionId, startSize, pageSize, sortMap)
 	if tmpErr != nil {

+ 7 - 1
services/elastic/rag_question.go

@@ -18,6 +18,7 @@ type RagQuestionItem struct {
 	QuestionTitle   string    `gorm:"column:question_title;type:varchar(255);comment:问题标题;" description:"问题标题"`
 	QuestionContent string    `gorm:"column:question_content;type:varchar(255);comment:问题内容;" description:"问题内容"`
 	Sort            int       `gorm:"column:sort;type:int(11);comment:排序;default:0;" description:"排序"`
+	IsDefault       int       `gorm:"column:is_default;type:int(1);comment:是否默认提示词;default:NULL;" description:"是否默认提示词"`
 	SysUserId       int       `gorm:"column:sys_user_id;type:int(11);comment:添加人id;default:0;" description:"添加人id"`
 	SysUserRealName string    `gorm:"column:sys_user_real_name;type:varchar(255);comment:添加人真实名称;" description:"添加人真实名称"`
 	ModifyTime      time.Time `gorm:"column:modify_time;type:datetime;default:NULL;" description:"modify_time"`
@@ -39,6 +40,7 @@ func (m *RagQuestionItem) ToView() rag.QuestionView {
 		QuestionTitle:   m.QuestionTitle,
 		QuestionContent: m.QuestionContent,
 		Sort:            m.Sort,
+		IsDefault:       m.IsDefault,
 		SysUserId:       m.SysUserId,
 		SysUserRealName: m.SysUserRealName,
 		ModifyTime:      modifyTime,
@@ -137,7 +139,7 @@ func RagQuestionEsDel(docId string) (err error) {
 // @return total int64
 // @return list []*RagQuestionItem
 // @return err error
-func RagQuestionEsSearch(keywordStr string, from, size int, sortMap map[string]string) (total int64, list []*RagQuestionItem, err error) {
+func RagQuestionEsSearch(keywordStr string, isQueryDefault bool, from, size int, sortMap map[string]string) (total int64, list []*RagQuestionItem, err error) {
 	indexName := EsRagQuestionName
 	list = make([]*RagQuestionItem, 0)
 	defer func() {
@@ -153,6 +155,10 @@ func RagQuestionEsSearch(keywordStr string, from, size int, sortMap map[string]s
 		query = query.Must(elastic.NewMultiMatchQuery(keywordStr, "QuestionContent"))
 	}
 
+	if isQueryDefault {
+		query = query.Must(elastic.NewTermQuery("IsDefault", 1))
+	}
+
 	// 排序
 	sortList := make([]*elastic.FieldSort, 0)
 	// 如果没有关键字,那么就走指标id倒序

+ 1 - 0
services/wechat_platform.go

@@ -1323,6 +1323,7 @@ func AddOrEditEsRagQuestion(questionId int) {
 		QuestionTitle:   questionInfo.QuestionTitle,
 		QuestionContent: questionInfo.QuestionContent,
 		Sort:            questionInfo.Sort,
+		IsDefault:       questionInfo.IsDefault,
 		SysUserId:       questionInfo.SysUserId,
 		SysUserRealName: questionInfo.SysUserRealName,
 		ModifyTime:      questionInfo.ModifyTime,