From f11ca7d61f20ca95d7fc73317ca1e447882a6395 Mon Sep 17 00:00:00 2001 From: unintendedfraud Date: Thu, 22 May 2025 12:43:10 +0200 Subject: [PATCH] fix los buguos --- gemini/client.go | 3 ++- handlers/message_created.go | 12 +++++++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/gemini/client.go b/gemini/client.go index 2fda2e9..a37d427 100644 --- a/gemini/client.go +++ b/gemini/client.go @@ -38,7 +38,8 @@ func (client Client) GenerateContent(content []*genai.Content) (*genai.GenerateC client.model, content, &genai.GenerateContentConfig{ - Temperature: &temp, + Temperature: &temp, + MaxOutputTokens: 800, SystemInstruction: &genai.Content{ Role: "system", Parts: []*genai.Part{ diff --git a/handlers/message_created.go b/handlers/message_created.go index e7be6af..9f4ecff 100644 --- a/handlers/message_created.go +++ b/handlers/message_created.go @@ -16,6 +16,8 @@ import ( const MAX_HISTORY = 50 +const DISCORD_MAX_CHAR = 4000 + const ( SPAM_PERIOD = 5 * time.Minute MESSAGES_PER_PERIOD = 10 @@ -118,11 +120,19 @@ func cleanMessage(p string) string { } func sendResponse(s *discordgo.Session, channelID string, response string) { - if _, err := s.ChannelMessageSend(channelID, response); err != nil { + if _, err := s.ChannelMessageSend(channelID, truncateIfNeeded(response)); err != nil { log.Printf("\nfailed to send the response [%s] to the discord channel [%s]", response, err.Error()) } } +func truncateIfNeeded(response string) string { + if len(response) > DISCORD_MAX_CHAR { + return response + } + + return fmt.Sprintf("%s %s", response[:3990], "[...]") +} + func containHal(users []*discordgo.User, userID string) bool { for _, u := range users { if u.ID == userID {