Fixing user request representation in the LLM request context (#40) #41

Merged
skobkin merged 2 commits from fix_quoted_messages_usernames_context into main 2024-11-03 23:25:11 +00:00
4 changed files with 11 additions and 10 deletions

View file

@ -144,7 +144,7 @@ func (b *Bot) processMention(message *telego.Message) {
requestContext := b.createLlmRequestContextFromMessage(message)
userMessageData := tgUserMessageToMessageData(message)
userMessageData := tgUserMessageToMessageData(message, true)
llmReply, err := b.llm.HandleChatMessage(
messageDataToLlmMessage(userMessageData),

View file

@ -56,7 +56,7 @@ func (b *Bot) saveChatMessageToHistory(message *telego.Message) {
b.history[chatId] = NewMessageHistory(HistoryLength)
}
msgData := tgUserMessageToMessageData(message)
msgData := tgUserMessageToMessageData(message, false)
b.history[chatId].Push(msgData)
}
@ -99,16 +99,17 @@ func (b *Bot) saveBotReplyToHistory(replyTo *telego.Message, text string) {
b.history[chatId].Push(msgData)
}
func tgUserMessageToMessageData(message *telego.Message) MessageData {
func tgUserMessageToMessageData(message *telego.Message, isUserRequest bool) MessageData {
msgData := MessageData{
Name: message.From.FirstName,
Username: message.From.Username,
Text: message.Text,
IsMe: false,
IsUserRequest: isUserRequest,
}
if message.ReplyToMessage != nil {
replyData := tgUserMessageToMessageData(message.ReplyToMessage)
replyData := tgUserMessageToMessageData(message.ReplyToMessage, false)
msgData.ReplyTo = &replyData
}

View file

@ -36,7 +36,7 @@ func (l *LlmConnector) HandleChatMessage(userMessage ChatMessage, model string,
historyLength := len(requestContext.Chat.History)
if historyLength > 0 {
systemPrompt += "\nYou have access to last " + strconv.Itoa(historyLength) + "messages in this chat."
systemPrompt += "\nYou have access to last " + strconv.Itoa(historyLength) + " messages in this chat."
}
req := openai.ChatCompletionRequest{

View file

@ -56,7 +56,7 @@ func (c RequestContext) Prompt() string {
prompt += "Chat description is \"" + c.Chat.Description + "\". "
}
prompt += "\nProfile of the user who mentioned you in the chat:" +
prompt += "\nProfile of the user who mentioned you in the chat:\n" +
"First name: \"" + c.User.FirstName + "\"\n"
if c.User.Username != "" {
prompt += "Username: @" + c.User.Username + ".\n"