fuwencai преди 8 месеца
родител
ревизия
dbaf28aefd
променени са 4 файла, в които са добавени 29 реда и са изтрити 46 реда
  1. 7 9
      api/knowledge/knowledge.go
  2. 1 1
      rpc/knowledge/internal/config/config.go
  3. 15 27
      rpc/knowledge/internal/service/knowledgeService.go
  4. 6 9
      rpc/knowledge/knowledge.go

+ 7 - 9
api/knowledge/knowledge.go

@@ -2,14 +2,12 @@ package main
 
 import (
 	mc "app.yhyue.com/moapp/jybase/common"
-	"app.yhyue.com/moapp/jybase/endless"
 	"bp.jydev.jianyu360.cn/BaseService/gateway/core/node"
 	. "bp.jydev.jianyu360.cn/SocialPlatform/knowledgeBase/api/knowledge/common"
 	"bp.jydev.jianyu360.cn/SocialPlatform/knowledgeBase/api/knowledge/internal/handler"
 	"bp.jydev.jianyu360.cn/SocialPlatform/knowledgeBase/api/knowledge/internal/svc"
 	"fmt"
 	"github.com/zeromicro/go-zero/rest"
-	"log"
 	"os"
 	"os/signal"
 	"syscall"
@@ -23,13 +21,13 @@ func main() {
 	if err != nil {
 		panic(err)
 	}
-	//
-	go func() {
-		err := endless.ListenAndServe(":"+mc.InterfaceToStr(C.WebRpcPort), nil, func() {})
-		if err != nil {
-			log.Println("ListenAndServe: ", err)
-		}
-	}()
+	////
+	//go func() {
+	//	err := endless.ListenAndServe(":"+mc.InterfaceToStr(C.WebRpcPort), nil, func() {})
+	//	if err != nil {
+	//		log.Println("ListenAndServe: ", err)
+	//	}
+	//}()
 
 	ctx := svc.NewServiceContext(C)
 	server := rest.MustNewServer(C.RestConf)

+ 1 - 1
rpc/knowledge/internal/config/config.go

@@ -23,5 +23,5 @@ type Config struct {
 		Index    string
 		Type     string
 	}
-	MinScore float64
+	MinScore []float64
 }

+ 15 - 27
rpc/knowledge/internal/service/knowledgeService.go

@@ -261,7 +261,7 @@ func (k *KnowledgeService) FindAnswer(param *knowledgeclient.FindAnswerReq, addr
 	robotEntId := SE.Decode4Hex(param.RobotEntId)
 	//组装es query
 	//query := util.DSL4SmartResponse(param.Question, robotEntId, int(param.Type), addr, index, segment)
-	query := util.GetAnswerQueryStr(param.Question, robotEntId, 1, ki.C.MinScore)
+	query := util.GetAnswerQueryStr(param.Question, robotEntId, 1, 0.01)
 	logx.Info("query:", query)
 	if query != "" {
 		res := ESV7.Get(ESV7Index, ESV7Type, query)
@@ -277,39 +277,27 @@ func (k *KnowledgeService) FindAnswer(param *knowledgeclient.FindAnswerReq, addr
 // RecommendAnswer 根据问题推荐三个答案
 func (k *KnowledgeService) RecommendAnswer(param *knowledgeclient.FindAnswerReq, segment string, recommendQuestionCount int) []*knowledgeclient.Question {
 	var (
-		//keyWords    = ""
-		//searchField = `"answer","question"`
 		answers []*knowledgeclient.Question
 	)
-	////根据问题进行分词
-	//keywordsArr := util.HanlpGetNormalWords(param.Question, segment)
-	//logx.Info("keywordsArr", keywordsArr)
-	//if len(keywordsArr) != 0 {
-	//	for _, val := range keywordsArr {
-	//		keyWords += val + " "
-	//	}
-	//}
-	//if keyWords == "" {
-	//	keyWords = param.Question
-	//}
-	////logx.Info("entId:", SE.Decode4Hex(param.RobotEntId))
-	//var query = util.DSL4SearchByKwsOrid(keyWords, param.RobotEntId, 0)
 	limit := 3
 	if param.ReqSource == 1 {
 		limit = recommendQuestionCount
 	}
-	//res := elastic.GetAllByNgram(Index, Type, query, "", "", searchField, 0, limit, 0, false)
-	query := util.GetAnswerQueryStr(param.Question, param.RobotEntId, limit, ki.C.MinScore)
-	logx.Info("query:", query)
-	res := ESV7.Get(ESV7Index, ESV7Type, query)
-	if res != nil && len(*res) > 0 {
-		for _, val := range *res {
-			answers = append(answers, &knowledgeclient.Question{
-				Question: cm.ObjToString(val["question"]),
-				Answer:   cm.ObjToString(val["answer"]),
-			})
+	for i := 0; i < len(ki.C.MinScore); i++ {
+		query := util.GetAnswerQueryStr(param.Question, param.RobotEntId, limit, ki.C.MinScore[i])
+		logx.Info("query:", query)
+		res := ESV7.Get(ESV7Index, ESV7Type, query)
+		logx.Info("res:", res)
+		if res != nil && len(*res) > 0 {
+			for _, val := range *res {
+				answers = append(answers, &knowledgeclient.Question{
+					Question: cm.ObjToString(val["question"]),
+					Answer:   cm.ObjToString(val["answer"]),
+				})
+			}
+			log.Println("推荐答案:", answers)
+			return answers
 		}
-		log.Println("推荐答案:", answers)
 	}
 	return answers
 }

+ 6 - 9
rpc/knowledge/knowledge.go

@@ -1,8 +1,6 @@
 package main
 
 import (
-	mc "app.yhyue.com/moapp/jybase/common"
-	"app.yhyue.com/moapp/jybase/endless"
 	IC "bp.jydev.jianyu360.cn/SocialPlatform/knowledgeBase/rpc/knowledge/init"
 	"bp.jydev.jianyu360.cn/SocialPlatform/knowledgeBase/rpc/knowledge/internal/server"
 	"bp.jydev.jianyu360.cn/SocialPlatform/knowledgeBase/rpc/knowledge/internal/svc"
@@ -10,16 +8,15 @@ import (
 	"fmt"
 	"github.com/zeromicro/go-zero/zrpc"
 	"google.golang.org/grpc"
-	"log"
 )
 
 func main() {
-	go func() {
-		err := endless.ListenAndServe(":"+mc.InterfaceToStr(IC.C.WebRpcPort), nil, func() {})
-		if err != nil {
-			log.Println("ListenAndServe: ", err)
-		}
-	}()
+	//go func() {
+	//	err := endless.ListenAndServe(":"+mc.InterfaceToStr(IC.C.WebRpcPort), nil, func() {})
+	//	if err != nil {
+	//		log.Println("ListenAndServe: ", err)
+	//	}
+	//}()
 
 	ctx := svc.NewServiceContext(IC.C)
 	srv := server.NewKnowledgeServer(ctx)