From dd6739cbbf2ff0a19880c1a74a6a5574509a396c Mon Sep 17 00:00:00 2001 From: mudler Date: Wed, 26 Mar 2025 17:11:09 +0100 Subject: [PATCH] fix: consistently track user message in connector Signed-off-by: mudler --- services/connectors/discord.go | 16 ++++++++++------ services/connectors/irc.go | 6 ++++++ services/connectors/telegram.go | 8 ++++++++ 3 files changed, 24 insertions(+), 6 deletions(-) diff --git a/services/connectors/discord.go b/services/connectors/discord.go index 4ed17e5..15b5e08 100644 --- a/services/connectors/discord.go +++ b/services/connectors/discord.go @@ -122,6 +122,11 @@ func (d *Discord) handleChannelMessage(a *agent.Agent, s *discordgo.Session, m * conv := d.conversationTracker.GetConversation(m.ChannelID) + d.conversationTracker.AddMessage(m.ChannelID, openai.ChatCompletionMessage{ + Role: "user", + Content: m.Content, + }) + jobResult := a.Ask( types.WithConversationHistory(conv), ) @@ -131,16 +136,15 @@ func (d *Discord) handleChannelMessage(a *agent.Agent, s *discordgo.Session, m * return } + d.conversationTracker.AddMessage(m.ChannelID, openai.ChatCompletionMessage{ + Role: "assistant", + Content: jobResult.Response, + }) + _, err := s.ChannelMessageSend(m.ChannelID, jobResult.Response) if err != nil { xlog.Info("error sending message,", err) } - - d.conversationTracker.AddMessage(m.ChannelID, openai.ChatCompletionMessage{ - Role: "user", - Content: m.Content, - }) - } // This function will be called (due to AddHandler above) every time a new diff --git a/services/connectors/irc.go b/services/connectors/irc.go index 026aea0..58bc54e 100644 --- a/services/connectors/irc.go +++ b/services/connectors/irc.go @@ -122,6 +122,12 @@ func (i *IRC) Start(a *agent.Agent) { }, ) + // Update the conversation history + i.conversationTracker.AddMessage(channel, openai.ChatCompletionMessage{ + Content: cleanedMessage, + Role: "user", + }) + res := a.Ask( types.WithConversationHistory(conv), ) diff --git a/services/connectors/telegram.go b/services/connectors/telegram.go index bfa620b..65e378b 100644 --- a/services/connectors/telegram.go +++ b/services/connectors/telegram.go @@ -67,6 +67,14 @@ func (t *Telegram) handleUpdate(ctx context.Context, b *bot.Bot, a *agent.Agent, Role: "user", }) + t.conversationTracker.AddMessage( + update.Message.From.ID, + openai.ChatCompletionMessage{ + Content: update.Message.Text, + Role: "user", + }, + ) + xlog.Info("New message", "username", username, "conversation", currentConv) res := a.Ask( types.WithConversationHistory(currentConv),