fix: muffin response
This commit is contained in:
parent
11241231c9
commit
4e98143c61
1 changed files with 14 additions and 46 deletions
|
@ -5,7 +5,6 @@ import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"log"
|
"log"
|
||||||
"math/rand"
|
"math/rand"
|
||||||
"sync"
|
|
||||||
|
|
||||||
"git.wh64.net/muffin/goMuffin/configs"
|
"git.wh64.net/muffin/goMuffin/configs"
|
||||||
"git.wh64.net/muffin/goMuffin/databases"
|
"git.wh64.net/muffin/goMuffin/databases"
|
||||||
|
@ -88,53 +87,22 @@ func getMuffinResponse(s *discordgo.Session, question string) (string, error) {
|
||||||
var data []databases.Text
|
var data []databases.Text
|
||||||
var learnData []databases.Learn
|
var learnData []databases.Learn
|
||||||
var result string
|
var result string
|
||||||
var wg sync.WaitGroup
|
|
||||||
|
|
||||||
ch1 := make(chan error)
|
|
||||||
ch2 := make(chan error)
|
|
||||||
x := rand.Intn(10)
|
x := rand.Intn(10)
|
||||||
|
|
||||||
wg.Add(2)
|
muffinCur, err := databases.Database.Texts.Find(context.TODO(), bson.D{{Key: "persona", Value: "muffin"}})
|
||||||
|
|
||||||
// 머핀 데이터
|
|
||||||
go func() {
|
|
||||||
cur, err := databases.Database.Texts.Find(context.TODO(), bson.D{{Key: "persona", Value: "muffin"}})
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
ch1 <- err
|
return "살려주ㅅ세요", err
|
||||||
}
|
}
|
||||||
|
learnCur, err := databases.Database.Learns.Find(context.TODO(), bson.D{{Key: "command", Value: question}})
|
||||||
defer cur.Close(context.TODO())
|
|
||||||
|
|
||||||
cur.All(context.TODO(), &data)
|
|
||||||
ch1 <- nil
|
|
||||||
wg.Done()
|
|
||||||
}()
|
|
||||||
|
|
||||||
// 지식 데이터
|
|
||||||
go func() {
|
|
||||||
cur, err := databases.Database.Learns.Find(context.TODO(), bson.D{{Key: "command", Value: question}})
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
ch2 <- err
|
return "살려주ㅅ세요", err
|
||||||
}
|
}
|
||||||
|
|
||||||
defer cur.Close(context.TODO())
|
defer muffinCur.Close(context.TODO())
|
||||||
|
defer learnCur.Close(context.TODO())
|
||||||
|
|
||||||
cur.All(context.TODO(), &learnData)
|
muffinCur.All(context.TODO(), &data)
|
||||||
ch2 <- nil
|
learnCur.All(context.TODO(), &learnData)
|
||||||
wg.Done()
|
|
||||||
}()
|
|
||||||
|
|
||||||
wg.Wait()
|
|
||||||
select {
|
|
||||||
case err := <-ch1:
|
|
||||||
if err != nil {
|
|
||||||
return "에러 발생", fmt.Errorf("muffin data error\n%s", err.Error())
|
|
||||||
}
|
|
||||||
case err := <-ch2:
|
|
||||||
if err != nil {
|
|
||||||
return "에러 발생", fmt.Errorf("learn data error\n%s", err.Error())
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if x > 2 && len(learnData) != 0 {
|
if x > 2 && len(learnData) != 0 {
|
||||||
data := learnData[rand.Intn(len(learnData))]
|
data := learnData[rand.Intn(len(learnData))]
|
||||||
|
@ -171,7 +139,7 @@ func getAIResponse(c *Chatbot, user *discordgo.User, question string) (string, e
|
||||||
Answer: resultText,
|
Answer: resultText,
|
||||||
})
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return "", err
|
return "AI에 문제가 생겼ㅇ어요.", err
|
||||||
}
|
}
|
||||||
|
|
||||||
log.Printf("%s TOKEN: %d", user.ID, result.UsageMetadata.PromptTokenCount)
|
log.Printf("%s TOKEN: %d", user.ID, result.UsageMetadata.PromptTokenCount)
|
||||||
|
|
Loading…
Reference in a new issue