Selaa lähdekoodia

Merge branch 'rag/4.0' into debug

Roc 19 tuntia sitten
vanhempi
commit
a9cfca4559

+ 4 - 3
controllers/llm/abstract.go

@@ -48,6 +48,7 @@ func (c *AbstractController) List() {
 	currentIndex, _ := c.GetInt("CurrentIndex")
 	keyWord := c.GetString("KeyWord")
 	tagIdStr := c.GetString("TagId")
+	questionId, _ := c.GetInt("QuestionId")
 
 	tagIdList := make([]int, 0)
 	if tagIdStr != `` {
@@ -77,7 +78,7 @@ func (c *AbstractController) List() {
 	startSize = utils.StartIndex(currentIndex, pageSize)
 
 	// 获取列表
-	total, viewList, err := getAbstractList(keyWord, tagIdList, startSize, pageSize)
+	total, viewList, err := getAbstractList(keyWord, tagIdList, questionId, startSize, pageSize)
 	if err != nil {
 		br.Msg = "获取失败"
 		br.ErrMsg = "获取失败,Err:" + err.Error()
@@ -96,7 +97,7 @@ func (c *AbstractController) List() {
 	br.Data = resp
 }
 
-func getAbstractList(keyWord string, tagList []int, startSize, pageSize int) (total int, viewList []rag.WechatArticleAbstractView, err error) {
+func getAbstractList(keyWord string, tagList []int, questionId int, startSize, pageSize int) (total int, viewList []rag.WechatArticleAbstractView, err error) {
 	//if keyWord == `` {
 	//	var condition string
 	//	var pars []interface{}
@@ -167,7 +168,7 @@ func getAbstractList(keyWord string, tagList []int, startSize, pageSize int) (to
 	for _, v := range platformList {
 		platformIdList = append(platformIdList, v.WechatPlatformId)
 	}
-	tmpTotal, list, tmpErr := elastic.WechatArticleAbstractEsSearch(keyWord, tagList, platformIdList, startSize, pageSize, sortMap)
+	tmpTotal, list, tmpErr := elastic.WechatArticleAbstractEsSearch(keyWord, tagList, platformIdList, questionId, startSize, pageSize, sortMap)
 	if tmpErr != nil {
 		err = tmpErr
 		return

+ 4 - 3
controllers/llm/rag_eta_report_abstract.go

@@ -48,6 +48,7 @@ func (c *RagEtaReportAbstractController) List() {
 	currentIndex, _ := c.GetInt("CurrentIndex")
 	keyWord := c.GetString("KeyWord")
 	tagIdStr := c.GetString("TagId")
+	questionId, _ := c.GetInt("QuestionId")
 
 	tagIdList := make([]int, 0)
 	if tagIdStr != `` {
@@ -77,7 +78,7 @@ func (c *RagEtaReportAbstractController) List() {
 	startSize = utils.StartIndex(currentIndex, pageSize)
 
 	// 获取列表
-	total, viewList, err := getRagEtaReportAbstractList(keyWord, tagIdList, startSize, pageSize)
+	total, viewList, err := getRagEtaReportAbstractList(keyWord, tagIdList, questionId, startSize, pageSize)
 	if err != nil {
 		br.Msg = "获取失败"
 		br.ErrMsg = "获取失败,Err:" + err.Error()
@@ -96,7 +97,7 @@ func (c *RagEtaReportAbstractController) List() {
 	br.Data = resp
 }
 
-func getRagEtaReportAbstractList(keyWord string, tagList []int, startSize, pageSize int) (total int, viewList []rag.RagEtaReportAbstractView, err error) {
+func getRagEtaReportAbstractList(keyWord string, tagList []int, questionId, startSize, pageSize int) (total int, viewList []rag.RagEtaReportAbstractView, err error) {
 	//if keyWord == `` {
 	//	var condition string
 	//	var pars []interface{}
@@ -157,7 +158,7 @@ func getRagEtaReportAbstractList(keyWord string, tagList []int, startSize, pageS
 		//"WechatArticleAbstractId": "desc",
 	}
 
-	tmpTotal, list, tmpErr := elastic.RagEtaReportAbstractEsSearch(keyWord, tagList, startSize, pageSize, sortMap)
+	tmpTotal, list, tmpErr := elastic.RagEtaReportAbstractEsSearch(keyWord, tagList, questionId, startSize, pageSize, sortMap)
 	if tmpErr != nil {
 		err = tmpErr
 		return

+ 81 - 0
controllers/llm/report.go

@@ -235,6 +235,87 @@ func (c *RagEtaReportController) ArticleDel() {
 	br.Msg = "删除成功"
 }
 
+// AbstractList
+// @Title 摘要列表
+// @Description 我关注的接口
+// @Param   PageSize   query   int  true       "每页数据条数"
+// @Param   CurrentIndex   query   int  true       "当前页页码,从1开始"
+// @Param   RagEtaReportId   query   int  true       "知识库与eta报告关联的id"
+// @Success 200 {object} []*rag.WechatPlatform
+// @router /eta_report/article/abstract/list [get]
+func (c *RagEtaReportController) AbstractList() {
+	br := new(models.BaseResponse).Init()
+	defer func() {
+		c.Data["json"] = br
+		c.ServeJSON()
+	}()
+
+	sysUser := c.SysUser
+	if sysUser == nil {
+		br.Msg = "请登录"
+		br.ErrMsg = "请登录,SysUser Is Empty"
+		return
+	}
+	pageSize, _ := c.GetInt("PageSize")
+	currentIndex, _ := c.GetInt("CurrentIndex")
+	ragEtaReportId, _ := c.GetInt("RagEtaReportId")
+
+	var startSize int
+	if pageSize <= 0 {
+		pageSize = utils.PageSize20
+	}
+	if currentIndex <= 0 {
+		currentIndex = 1
+	}
+	startSize = utils.StartIndex(currentIndex, pageSize)
+
+	//var condition string
+	//var pars []interface{}
+	//
+	//if keyWord != "" {
+	//	condition += fmt.Sprintf(` AND (b.%s like ? or a.%s like ? ) `, rag.WechatPlatformColumns.Nickname, rag.WechatArticleColumns.Title)
+	//	pars = append(pars, `%`+keyWord+`%`, `%`+keyWord+`%`)
+	//}
+	//
+	//if wechatPlatformId > 0 {
+	//	condition += fmt.Sprintf(` AND a.%s = ?`, rag.WechatArticleColumns.WechatPlatformID)
+	//	pars = append(pars, wechatPlatformId)
+	//}
+	//
+	//condition += fmt.Sprintf(` AND b.%s = ? `, rag.WechatPlatformColumns.Enabled)
+	//pars = append(pars, 1)
+
+	// TODO 格式转换
+
+	var total int
+
+	var condition string
+	var pars []interface{}
+
+	condition += fmt.Sprintf(` AND a.%s  = ?  `, rag.RagEtaReportAbstractColumns.RagEtaReportId)
+	pars = append(pars, ragEtaReportId)
+
+	obj := new(rag.RagEtaReportAbstract)
+	tmpTotal, list, err := obj.GetPageListByPlatformCondition(condition, pars, startSize, pageSize)
+	if err != nil {
+		br.Msg = "获取失败"
+		br.ErrMsg = "获取失败,Err:" + err.Error()
+		return
+	}
+	total = tmpTotal
+
+	page := paging.GetPaging(currentIndex, pageSize, total)
+	resp := response.RagEtaReportItemAbstractListListResp{
+		List:   list,
+		Paging: page,
+	}
+
+	br.Ret = 200
+	br.Success = true
+	br.Msg = "获取成功"
+	br.Data = resp
+}
+
 //// 修复历史ETA报告到知识库
 //func init() {
 //	idList, err := models.GetAllPublishReportId()

+ 80 - 0
controllers/llm/wechat_platform.go

@@ -725,6 +725,86 @@ func (c *WechatPlatformController) ArticleDel() {
 	br.Msg = "删除成功"
 }
 
+// AbstractList
+// @Title 摘要列表
+// @Description 我关注的接口
+// @Param   PageSize   query   int  true       "每页数据条数"
+// @Param   CurrentIndex   query   int  true       "当前页页码,从1开始"
+// @Param   WechatArticleId   query   int  true       "文章id"
+// @Success 200 {object} []*rag.WechatPlatform
+// @router /wechat_platform/article/abstract/list [get]
+func (c *WechatPlatformController) AbstractList() {
+	br := new(models.BaseResponse).Init()
+	defer func() {
+		c.Data["json"] = br
+		c.ServeJSON()
+	}()
+
+	sysUser := c.SysUser
+	if sysUser == nil {
+		br.Msg = "请登录"
+		br.ErrMsg = "请登录,SysUser Is Empty"
+		return
+	}
+	pageSize, _ := c.GetInt("PageSize")
+	currentIndex, _ := c.GetInt("CurrentIndex")
+	wechatArticleId, _ := c.GetInt("WechatArticleId")
+
+	var startSize int
+	if pageSize <= 0 {
+		pageSize = utils.PageSize20
+	}
+	if currentIndex <= 0 {
+		currentIndex = 1
+	}
+	startSize = utils.StartIndex(currentIndex, pageSize)
+
+	//var condition string
+	//var pars []interface{}
+	//
+	//if keyWord != "" {
+	//	condition += fmt.Sprintf(` AND (b.%s like ? or a.%s like ? ) `, rag.WechatPlatformColumns.Nickname, rag.WechatArticleColumns.Title)
+	//	pars = append(pars, `%`+keyWord+`%`, `%`+keyWord+`%`)
+	//}
+	//
+	//if wechatPlatformId > 0 {
+	//	condition += fmt.Sprintf(` AND a.%s = ?`, rag.WechatArticleColumns.WechatPlatformID)
+	//	pars = append(pars, wechatPlatformId)
+	//}
+	//
+	//condition += fmt.Sprintf(` AND b.%s = ? `, rag.WechatPlatformColumns.Enabled)
+	//pars = append(pars, 1)
+	// TODO 格式转换
+
+	var total int
+
+	var condition string
+	var pars []interface{}
+
+	condition += fmt.Sprintf(` AND a.%s  = ?  `, rag.WechatArticleAbstractColumns.WechatArticleID)
+	pars = append(pars, wechatArticleId)
+
+	obj := new(rag.WechatArticleAbstract)
+	tmpTotal, list, err := obj.GetPageListByPlatformCondition(condition, pars, startSize, pageSize)
+	if err != nil {
+		br.Msg = "获取失败"
+		br.ErrMsg = "获取失败,Err:" + err.Error()
+		return
+	}
+	total = tmpTotal
+
+	page := paging.GetPaging(currentIndex, pageSize, total)
+	resp := response.WechatArticleItemAbstractListListResp{
+		List:   list,
+		Paging: page,
+	}
+
+	br.Ret = 200
+	br.Success = true
+	br.Msg = "获取成功"
+	br.Data = resp
+}
+
 //func init() {
 //	//obj := rag.WechatPlatform{}
 //	//item, _ := obj.GetByID(2)

+ 5 - 0
models/rag/article_abstract_history.go

@@ -14,6 +14,7 @@ type ArticleAbstractHistory struct {
 	ArticleID                int       `gorm:"column:article_id" description:"文章/报告Id"`
 	QuestionId               int       `gorm:"column:question_id" description:"提示词Id"`
 	Tags                     string    `gorm:"column:tags" description:"标签"`
+	TagsName                 string    `gorm:"column:tags_name" description:"标签名,多个用英文逗号隔开"`
 	QuestionContent          string    `gorm:"column:question_content" description:"questionContent"`
 	Content                  string    `gorm:"column:content" description:"摘要内容"`
 	Version                  int       `gorm:"column:version" description:"版本号"`
@@ -35,6 +36,7 @@ var ArticleAbstractHistoryColumns = struct {
 	ArticleID                string
 	QuestionId               string
 	Tags                     string
+	TagsName                 string
 	QuestionContent          string
 	Content                  string
 	Version                  string
@@ -48,6 +50,7 @@ var ArticleAbstractHistoryColumns = struct {
 	ArticleID:                "article_id",
 	QuestionId:               "question_id",
 	Tags:                     "tags",
+	TagsName:                 "tags_name",
 	QuestionContent:          "question_content",
 	Content:                  "content",
 	Version:                  "version",
@@ -75,6 +78,7 @@ func AddArticleAbstractHistoryByWechatArticleAbstract(item *WechatArticleAbstrac
 		ArticleID:                item.WechatArticleId,
 		QuestionId:               item.QuestionId,
 		Tags:                     item.Tags,
+		TagsName:                 item.TagsName,
 		QuestionContent:          item.QuestionContent,
 		Content:                  item.Content,
 		Version:                  item.Version,
@@ -98,6 +102,7 @@ func AddArticleAbstractHistoryByRagEtaReportAbstract(item *RagEtaReportAbstract)
 		ArticleID:                item.RagEtaReportId,
 		QuestionId:               item.QuestionId,
 		Tags:                     item.Tags,
+		TagsName:                 item.TagsName,
 		QuestionContent:          item.QuestionContent,
 		Content:                  item.Content,
 		Version:                  item.Version,

+ 14 - 12
models/rag/rag_eta_report_abstract.go

@@ -17,6 +17,7 @@ type RagEtaReportAbstract struct {
 	QuestionContent        string    `gorm:"column:question_content" description:"questionContent"`
 	Version                int       `gorm:"column:version" description:"版本号"`
 	Tags                   string    `gorm:"column:tags" description:"标签"`
+	TagsName               string    `gorm:"column:tags_name" description:"标签名,多个用英文逗号隔开"`
 	VectorKey              string    `gorm:"column:vector_key" description:"向量key标识"`
 	ModifyTime             time.Time `gorm:"column:modify_time" description:"modifyTime"`
 	CreateTime             time.Time `gorm:"column:create_time" description:"createTime"`
@@ -36,6 +37,7 @@ var RagEtaReportAbstractColumns = struct {
 	QuestionContent        string
 	Version                string
 	Tags                   string
+	TagsName               string
 	VectorKey              string
 	ModifyTime             string
 	CreateTime             string
@@ -47,6 +49,7 @@ var RagEtaReportAbstractColumns = struct {
 	QuestionContent:        "question_content",
 	Version:                "version",
 	Tags:                   "tags",
+	TagsName:               "tags_name",
 	VectorKey:              "vector_key",
 	ModifyTime:             "modify_time",
 	CreateTime:             "create_time",
@@ -134,13 +137,14 @@ func (m *RagEtaReportAbstract) GetByRagEtaReportIdAndQuestionId(articleId, quest
 
 type RagEtaReportAbstractView struct {
 	RagEtaReportAbstractId int    `gorm:"primaryKey;column:rag_eta_report_abstract_id" description:"-"`
-	RagEtaReportId         int    `gorm:"column:rag_eta_report_id" description:"ETA报告id"` //
+	RagEtaReportId         int    `gorm:"column:rag_eta_report_id" description:"ETA报告id"`
 	Abstract               string `gorm:"column:abstract;type:longtext;comment:摘要内容;" description:"摘要内容"`
-	QuestionId             int    `gorm:"column:question_id" description:"提示词Id"` //
+	QuestionId             int    `gorm:"column:question_id" description:"提示词Id"`
 	QuestionContent        string `gorm:"column:question_content" description:"questionContent"`
-	Version                int    `gorm:"column:version" description:"版本号"`        //
-	Tags                   string `gorm:"column:tags" description:"标签"`            //
-	VectorKey              string `gorm:"column:vector_key" description:"向量key标识"` //
+	Version                int    `gorm:"column:version" description:"版本号"`
+	Tags                   string `gorm:"column:tags" description:"标签"`
+	TagsName               string `gorm:"column:tags_name" description:"标签名,多个用英文逗号隔开"`
+	VectorKey              string `gorm:"column:vector_key" description:"向量key标识"`
 	ModifyTime             string `gorm:"column:modify_time;type:datetime;default:NULL;" description:"modify_time"`
 	CreateTime             string `gorm:"column:create_time;type:datetime;default:NULL;" description:"create_time"`
 	Title                  string `gorm:"column:title;type:varchar(255);comment:标题;" description:"标题"`
@@ -154,6 +158,7 @@ type RagEtaReportAbstractItem struct {
 	QuestionContent        string    `gorm:"column:question_content" description:"questionContent"`
 	Version                int       `gorm:"column:version" description:"版本号"`
 	Tags                   string    `gorm:"column:tags" description:"标签"`
+	TagsName               string    `gorm:"column:tags_name" description:"标签名,多个用英文逗号隔开"`
 	VectorKey              string    `gorm:"column:vector_key" description:"向量key标识"`
 	ModifyTime             time.Time `gorm:"column:modify_time;type:datetime;default:NULL;" description:"modify_time"`
 	CreateTime             time.Time `gorm:"column:create_time;type:datetime;default:NULL;" description:"create_time"`
@@ -172,6 +177,7 @@ func (m *RagEtaReportAbstractItem) ToView() RagEtaReportAbstractView {
 		Title:                  m.Title,
 		QuestionId:             m.QuestionId,
 		Tags:                   m.Tags,
+		TagsName:               m.TagsName,
 		QuestionContent:        m.QuestionContent,
 	}
 }
@@ -190,9 +196,7 @@ func (m *RagEtaReportAbstract) GetListByPlatformCondition(field, condition strin
 		field = "*"
 	}
 	sqlStr := fmt.Sprintf(`SELECT %s FROM %s AS a 
-          JOIN wechat_article AS b ON a.rag_eta_report_id=b.rag_eta_report_id
-          JOIN wechat_platform AS c ON b.wechat_platform_id=c.wechat_platform_id
-          WHERE 1=1 AND b.is_deleted=0 %s  order by a.modify_time DESC,a.rag_eta_report_abstract_id DESC LIMIT ?,?`, field, m.TableName(), condition)
+          WHERE 1=1  %s order by a.modify_time DESC,a.rag_eta_report_abstract_id DESC LIMIT ?,?`, field, m.TableName(), condition)
 	pars = append(pars, startSize, pageSize)
 	err = global.DbMap[utils.DbNameAI].Raw(sqlStr, pars...).Find(&items).Error
 
@@ -202,9 +206,7 @@ func (m *RagEtaReportAbstract) GetListByPlatformCondition(field, condition strin
 func (m *RagEtaReportAbstract) GetCountByPlatformCondition(condition string, pars []interface{}) (total int, err error) {
 	var intNull sql.NullInt64
 	sqlStr := fmt.Sprintf(`SELECT COUNT(1) total FROM %s AS a 
-          JOIN wechat_article AS b ON a.rag_eta_report_id=b.rag_eta_report_id
-          JOIN wechat_platform AS c ON b.wechat_platform_id=c.wechat_platform_id
-          WHERE 1=1 AND b.is_deleted=0 %s`, m.TableName(), condition)
+          WHERE 1=1  %s`, m.TableName(), condition)
 	err = global.DbMap[utils.DbNameAI].Raw(sqlStr, pars...).Scan(&intNull).Error
 	if err == nil && intNull.Valid {
 		total = int(intNull.Int64)
@@ -220,7 +222,7 @@ func (m *RagEtaReportAbstract) GetPageListByPlatformCondition(condition string,
 		return
 	}
 	if total > 0 {
-		items, err = m.GetListByPlatformCondition(`a.rag_eta_report_abstract_id,a.rag_eta_report_id,a.content AS abstract,a.version,a.vector_key,b.title,b.link,a.modify_time,a.create_time`, condition, pars, startSize, pageSize)
+		items, err = m.GetListByPlatformCondition(``, condition, pars, startSize, pageSize)
 	}
 
 	return

+ 10 - 0
models/rag/response/abstract.go

@@ -14,3 +14,13 @@ type RagEtaReportAbstractListListResp struct {
 	List   []rag.RagEtaReportAbstractView
 	Paging *paging.PagingItem `description:"分页数据"`
 }
+
+type RagEtaReportItemAbstractListListResp struct {
+	List   []*rag.RagEtaReportAbstractItem
+	Paging *paging.PagingItem `description:"分页数据"`
+}
+
+type WechatArticleItemAbstractListListResp struct {
+	List   []*rag.WechatArticleAbstractItem
+	Paging *paging.PagingItem `description:"分页数据"`
+}

+ 7 - 2
models/rag/wechat_article_abstract.go

@@ -18,6 +18,7 @@ type WechatArticleAbstract struct {
 	CreateTime              time.Time `gorm:"column:create_time;type:datetime;default:NULL;" description:"create_time"`
 	QuestionId              int       `gorm:"column:question_id" description:"提示词Id"`
 	Tags                    string    `gorm:"column:tags" description:"标签"`
+	TagsName                string    `gorm:"column:tags_name" description:"标签名,多个用英文逗号隔开"`
 	QuestionContent         string    `gorm:"column:question_content" description:"提示词内容"`
 }
 
@@ -32,6 +33,7 @@ var WechatArticleAbstractColumns = struct {
 	WechatArticleID         string
 	QuestionId              string
 	Tags                    string
+	TagsName                string
 	QuestionContent         string
 	Content                 string
 	Version                 string
@@ -41,7 +43,7 @@ var WechatArticleAbstractColumns = struct {
 	WechatArticleAbstractID: "wechat_article_abstract_id",
 	WechatArticleID:         "wechat_article_id",
 	QuestionId:              "question_id",
-	Tags:                    "tags",
+	TagsName:                "tags_name",
 	QuestionContent:         "question_content",
 	Content:                 "content",
 	Version:                 "version",
@@ -143,6 +145,7 @@ type WechatArticleAbstractView struct {
 	TagId                   int    `gorm:"column:tag_id;type:int(9) UNSIGNED;comment:品种id;default:0;" description:"品种id"`
 	QuestionId              int    `gorm:"column:question_id" description:"提示词Id"`
 	Tags                    string `gorm:"column:tags" description:"标签"`
+	TagsName                string `gorm:"column:tags_name" description:"标签名,多个用英文逗号隔开"`
 	QuestionContent         string `gorm:"column:question_content" description:"提示词内容"`
 }
 
@@ -159,6 +162,7 @@ type WechatArticleAbstractItem struct {
 	TagId                   int       `gorm:"column:tag_id;type:int(9) UNSIGNED;comment:品种id;default:0;" description:"品种id"`
 	QuestionId              int       `gorm:"column:question_id" description:"提示词Id"`
 	Tags                    string    `gorm:"column:tags" description:"标签"`
+	TagsName                string    `gorm:"column:tags_name" description:"标签名,多个用英文逗号隔开"`
 	QuestionContent         string    `gorm:"column:question_content" description:"提示词内容"`
 }
 
@@ -176,6 +180,7 @@ func (m *WechatArticleAbstractItem) ToView() WechatArticleAbstractView {
 		TagId:                   m.TagId,
 		QuestionId:              m.QuestionId,
 		Tags:                    m.Tags,
+		TagsName:                m.TagsName,
 		QuestionContent:         m.QuestionContent,
 	}
 }
@@ -224,7 +229,7 @@ func (m *WechatArticleAbstract) GetPageListByPlatformCondition(condition string,
 		return
 	}
 	if total > 0 {
-		items, err = m.GetListByPlatformCondition(`a.wechat_article_abstract_id,a.wechat_article_id,a.content AS abstract,a.version,a.vector_key,b.title,b.link,a.modify_time,a.create_time`, condition, pars, startSize, pageSize)
+		items, err = m.GetListByPlatformCondition(``, condition, pars, startSize, pageSize)
 	}
 
 	return

+ 18 - 0
routers/commentsRouter.go

@@ -8962,6 +8962,15 @@ func init() {
             Filters: nil,
             Params: nil})
 
+    beego.GlobalControllerRouter["eta/eta_api/controllers/llm:RagEtaReportController"] = append(beego.GlobalControllerRouter["eta/eta_api/controllers/llm:RagEtaReportController"],
+        beego.ControllerComments{
+            Method: "AbstractList",
+            Router: `/eta_report/article/abstract/list`,
+            AllowHTTPMethods: []string{"get"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
     beego.GlobalControllerRouter["eta/eta_api/controllers/llm:RagEtaReportController"] = append(beego.GlobalControllerRouter["eta/eta_api/controllers/llm:RagEtaReportController"],
         beego.ControllerComments{
             Method: "ArticleDel",
@@ -9061,6 +9070,15 @@ func init() {
             Filters: nil,
             Params: nil})
 
+    beego.GlobalControllerRouter["eta/eta_api/controllers/llm:WechatPlatformController"] = append(beego.GlobalControllerRouter["eta/eta_api/controllers/llm:WechatPlatformController"],
+        beego.ControllerComments{
+            Method: "AbstractList",
+            Router: `/wechat_platform/article/abstract/list`,
+            AllowHTTPMethods: []string{"get"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
     beego.GlobalControllerRouter["eta/eta_api/controllers/llm:WechatPlatformController"] = append(beego.GlobalControllerRouter["eta/eta_api/controllers/llm:WechatPlatformController"],
         beego.ControllerComments{
             Method: "ArticleDel",

+ 6 - 1
services/elastic/rag_eta_report_abstract.go

@@ -146,7 +146,7 @@ func RagEtaReportAbstractEsDel(docId string) (err error) {
 // @return total int64
 // @return list []*RagEtaReportAbstractItem
 // @return err error
-func RagEtaReportAbstractEsSearch(keywordStr string, tagIdList []int, from, size int, sortMap map[string]string) (total int64, list []*RagEtaReportAbstractItem, err error) {
+func RagEtaReportAbstractEsSearch(keywordStr string, tagIdList []int, questionId, from, size int, sortMap map[string]string) (total int64, list []*RagEtaReportAbstractItem, err error) {
 	indexName := EsRagEtaReportAbstractName
 	list = make([]*RagEtaReportAbstractItem, 0)
 	defer func() {
@@ -165,6 +165,11 @@ func RagEtaReportAbstractEsSearch(keywordStr string, tagIdList []int, from, size
 		query = query.Must(elastic.NewTermsQuery("TagIdList", termsList...))
 	}
 
+	// 提示词id
+	if questionId > 0 {
+		query = query.Must(elastic.NewTermsQuery("QuestionId", questionId))
+	}
+
 	// 名字匹配
 	if keywordStr != `` {
 		query = query.Must(elastic.NewMultiMatchQuery(keywordStr, "Abstract"))

+ 7 - 1
services/elastic/wechat_article_abstract.go

@@ -48,6 +48,7 @@ func (m *WechatArticleAbstractItem) ToView() rag.WechatArticleAbstractView {
 		WechatPlatformId:        m.WechatPlatformId,
 		Abstract:                m.Abstract,
 		Version:                 m.Version,
+		QuestionId:              m.QuestionId,
 		VectorKey:               m.VectorKey,
 		ModifyTime:              modifyTime,
 		CreateTime:              createTime,
@@ -148,7 +149,7 @@ func WechatArticleAbstractEsDel(docId string) (err error) {
 // @return total int64
 // @return list []*WechatArticleAbstractItem
 // @return err error
-func WechatArticleAbstractEsSearch(keywordStr string, tagIdList, platformIdList []int, from, size int, sortMap map[string]string) (total int64, list []*WechatArticleAbstractItem, err error) {
+func WechatArticleAbstractEsSearch(keywordStr string, tagIdList, platformIdList []int, questionId, from, size int, sortMap map[string]string) (total int64, list []*WechatArticleAbstractItem, err error) {
 	indexName := EsWechatArticleAbstractName
 	list = make([]*WechatArticleAbstractItem, 0)
 	defer func() {
@@ -178,6 +179,11 @@ func WechatArticleAbstractEsSearch(keywordStr string, tagIdList, platformIdList
 		query = query.Must(elastic.NewTermsQuery("WechatPlatformId", termsList...))
 	}
 
+	// 提示词id
+	if questionId > 0 {
+		query = query.Must(elastic.NewTermsQuery("QuestionId", questionId))
+	}
+
 	// 名字匹配
 	if keywordStr != `` {
 		query = query.Must(elastic.NewMultiMatchQuery(keywordStr, "Abstract"))

+ 12 - 2
services/llm_report.go

@@ -376,9 +376,11 @@ func GenerateRagEtaReportAbstractByQuestion(item *rag.RagEtaReport, question *ra
 	//err = item.Update([]string{"AbstractStatus", "ModifyTime"})
 
 	var tagIdJsonStr string
+	var tagNameJsonStr string
 	// 标签ID
 	{
 		tagIdList := make([]int, 0)
+		tagNameList := make([]string, 0)
 		tagIdMap := make(map[int]bool)
 
 		if abstractItem != nil && abstractItem.Tags != `` {
@@ -390,6 +392,9 @@ func GenerateRagEtaReportAbstractByQuestion(item *rag.RagEtaReport, question *ra
 					tagIdMap[tagId] = true
 				}
 			}
+			if abstractItem.TagsName != `` {
+				tagNameList = strings.Split(abstractItem.TagsName, ",")
+			}
 		}
 		for _, tagName := range industryTags {
 			tagId, tmpErr := GetTagIdByName(tagName)
@@ -398,6 +403,7 @@ func GenerateRagEtaReportAbstractByQuestion(item *rag.RagEtaReport, question *ra
 			}
 			if _, ok := tagIdMap[tagId]; !ok {
 				tagIdList = append(tagIdList, tagId)
+				tagNameList = append(tagNameList, tagName)
 				tagIdMap[tagId] = true
 			}
 		}
@@ -418,6 +424,8 @@ func GenerateRagEtaReportAbstractByQuestion(item *rag.RagEtaReport, question *ra
 		} else {
 			tagIdJsonStr = string(tagIdJsonByte)
 		}
+
+		tagNameJsonStr = strings.Join(tagNameList, `,`)
 	}
 
 	if abstractItem == nil || abstractItem.RagEtaReportAbstractId <= 0 {
@@ -429,6 +437,7 @@ func GenerateRagEtaReportAbstractByQuestion(item *rag.RagEtaReport, question *ra
 			QuestionContent:        question.QuestionContent,
 			Version:                1,
 			Tags:                   tagIdJsonStr,
+			TagsName:               tagNameJsonStr,
 			VectorKey:              "",
 			ModifyTime:             time.Now(),
 			CreateTime:             time.Now(),
@@ -441,9 +450,10 @@ func GenerateRagEtaReportAbstractByQuestion(item *rag.RagEtaReport, question *ra
 		abstractItem.Content = abstract
 		abstractItem.Version++
 		abstractItem.ModifyTime = time.Now()
-		abstractItem.Tags = ""
+		abstractItem.Tags = tagIdJsonStr
+		abstractItem.TagsName = tagNameJsonStr
 		abstractItem.QuestionContent = question.QuestionContent
-		err = abstractItem.Update([]string{"content", "version", "modify_time", "tags", "question_content"})
+		err = abstractItem.Update([]string{"content", "version", "modify_time", "tags", "tags_name", "question_content"})
 	}
 
 	if err != nil {

+ 13 - 3
services/wechat_platform.go

@@ -403,21 +403,26 @@ func GenerateWechatArticleAbstractByQuestion(item *rag.WechatArticle, question *
 	}
 
 	var tagIdJsonStr string
+	var tagNameJsonStr string
 	// 标签ID
 	{
 		tagIdList := make([]int, 0)
+		tagNameList := make([]string, 0)
 		tagIdMap := make(map[int]bool)
 
 		if abstractItem != nil && abstractItem.Tags != `` {
 			tmpErr = json.Unmarshal([]byte(abstractItem.Tags), &tagIdList)
 			if tmpErr != nil {
-				utils.FileLog.Info(fmt.Sprintf("json.Unmarshal 失败,标签数据:%s,Err:%s", abstractItem.Tags, tmpErr.Error()))
+				utils.FileLog.Info(fmt.Sprintf("json.Unmarshal Tags 失败,标签数据:%s,Err:%s", abstractItem.Tags, tmpErr.Error()))
 			} else {
 				for _, tagId := range tagIdList {
 					tagIdMap[tagId] = true
 				}
 			}
 		}
+		if abstractItem.TagsName != `` {
+			tagNameList = strings.Split(abstractItem.TagsName, ",")
+		}
 		for _, tagName := range industryTags {
 			tagId, tmpErr := GetTagIdByName(tagName)
 			if tmpErr != nil {
@@ -425,6 +430,7 @@ func GenerateWechatArticleAbstractByQuestion(item *rag.WechatArticle, question *
 			}
 			if _, ok := tagIdMap[tagId]; !ok {
 				tagIdList = append(tagIdList, tagId)
+				tagNameList = append(tagNameList, tagName)
 				tagIdMap[tagId] = true
 			}
 		}
@@ -445,6 +451,8 @@ func GenerateWechatArticleAbstractByQuestion(item *rag.WechatArticle, question *
 		} else {
 			tagIdJsonStr = string(tagIdJsonByte)
 		}
+
+		tagNameJsonStr = strings.Join(tagNameList, `,`)
 	}
 
 	if abstract == `sorry` || strings.Index(abstract, `根据已知信息无法回答该问题`) == 0 {
@@ -468,6 +476,7 @@ func GenerateWechatArticleAbstractByQuestion(item *rag.WechatArticle, question *
 			CreateTime:              time.Now(),
 			QuestionId:              question.QuestionId,
 			Tags:                    tagIdJsonStr,
+			TagsName:                tagNameJsonStr,
 			QuestionContent:         question.QuestionContent,
 		}
 		err = abstractItem.Create()
@@ -478,9 +487,10 @@ func GenerateWechatArticleAbstractByQuestion(item *rag.WechatArticle, question *
 		abstractItem.Content = abstract
 		abstractItem.Version++
 		abstractItem.ModifyTime = time.Now()
-		abstractItem.Tags = ""
+		abstractItem.Tags = tagIdJsonStr
+		abstractItem.TagsName = tagNameJsonStr
 		abstractItem.QuestionContent = question.QuestionContent
-		err = abstractItem.Update([]string{"content", "version", "modify_time", "tags", "question_content"})
+		err = abstractItem.Update([]string{"content", "version", "modify_time", "tags", "tags_name", "question_content"})
 	}
 
 	if err != nil {