dont reinit openai client every time
This commit is contained in:
@@ -2,7 +2,6 @@ package handlers
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"hal/env"
|
|
||||||
"hal/openai"
|
"hal/openai"
|
||||||
"log"
|
"log"
|
||||||
"regexp"
|
"regexp"
|
||||||
@@ -14,7 +13,17 @@ const MAX_HISTORY = 50
|
|||||||
|
|
||||||
var messagesHistory = []*openai.ChatMessage{}
|
var messagesHistory = []*openai.ChatMessage{}
|
||||||
|
|
||||||
func OnMessageCreated(s *discordgo.Session, m *discordgo.MessageCreate) {
|
type Handler struct {
|
||||||
|
client *openai.Client
|
||||||
|
}
|
||||||
|
|
||||||
|
func Init(token string) Handler {
|
||||||
|
return Handler{
|
||||||
|
client: openai.NewClient(token),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (h Handler) OnMessageCreated(s *discordgo.Session, m *discordgo.MessageCreate) {
|
||||||
isHal := m.Author.ID == s.State.User.ID
|
isHal := m.Author.ID == s.State.User.ID
|
||||||
|
|
||||||
addMessageToHistory(m.Message, isHal)
|
addMessageToHistory(m.Message, isHal)
|
||||||
@@ -24,9 +33,7 @@ func OnMessageCreated(s *discordgo.Session, m *discordgo.MessageCreate) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if containUser(m.Mentions, s.State.User.ID) {
|
if containUser(m.Mentions, s.State.User.ID) {
|
||||||
aiclient := openai.NewClient(env.GetEnvVariables().OpenaiHalToken)
|
res, err := h.client.Chat(messagesHistory)
|
||||||
|
|
||||||
res, err := aiclient.Chat(messagesHistory)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
sendResponse(
|
sendResponse(
|
||||||
s,
|
s,
|
||||||
|
|||||||
@@ -17,13 +17,15 @@ func main() {
|
|||||||
|
|
||||||
var err error
|
var err error
|
||||||
|
|
||||||
|
handler := handlers.Init(env.OpenaiHalToken)
|
||||||
|
|
||||||
discordToken := fmt.Sprintf("Bot %s", env.Token)
|
discordToken := fmt.Sprintf("Bot %s", env.Token)
|
||||||
dgclient, err := discordbot.New(discordToken)
|
dgclient, err := discordbot.New(discordToken)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(fmt.Errorf("failed to create discord client: %s", err.Error()))
|
panic(fmt.Errorf("failed to create discord client: %s", err.Error()))
|
||||||
}
|
}
|
||||||
|
|
||||||
dgclient.AddHandler(handlers.OnMessageCreated)
|
dgclient.AddHandler(handler.OnMessageCreated)
|
||||||
|
|
||||||
err = dgclient.Open()
|
err = dgclient.Open()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
Reference in New Issue
Block a user