You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

33 lines
893 B
Go

package app
import (
"go.uber.org/zap"
"miniapp/global"
"miniapp/model/app/request"
"miniapp/model/system"
)
type AiKefuService struct{}
// MatchKeywordReplyContent 匹配关键词回复内容
func (a *AiKefuService) MatchKeywordReplyContent(msg request.Msg) (kf system.Aikefu, err error) {
math := global.GVA_Kp.ExtractKeywords(msg.Msg)
if len(math) == 0 {
return
}
err = global.GVA_DB.Where("key_word like ? ", "%"+math[0].MatchString()+"%").First(&kf).Error
return
}
func (a *AiKefuService) AddKeyWord() {
var keyWords []system.Aikefu
err := global.GVA_DB.Find(&keyWords).Error
if err != nil {
global.GVA_LOG.Error("初始化分词器时查询关键词失败:", zap.Error(err))
}
for _, keyWord := range keyWords {
global.GVA_Kp.AddKeyWord(keyWord.KeyWord)
global.GVA_LOG.Info("初始化分词器时添加关键词", zap.String("keyWord", keyWord.KeyWord))
}
}