fix: consistently track user message in connector

Signed-off-by: mudler <mudler@localai.io>
This commit is contained in:
mudler
2025-03-26 17:11:09 +01:00
parent 9d6b81d9c2
commit dd6739cbbf
3 changed files with 24 additions and 6 deletions

View File

@@ -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

View File

@@ -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),
)

View File

@@ -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),