33 lines
893 B
Go
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))
|
|
}
|
|
}
|