diff --git a/bot/bot.go b/bot/bot.go index a0282ca..4e80f90 100644 --- a/bot/bot.go +++ b/bot/bot.go @@ -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), diff --git a/bot/message_history.go b/bot/message_history.go index e58ee2d..c04887c 100644 --- a/bot/message_history.go +++ b/bot/message_history.go @@ -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, + 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 } diff --git a/llm/llm.go b/llm/llm.go index 0cb68a8..def83fe 100644 --- a/llm/llm.go +++ b/llm/llm.go @@ -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{ diff --git a/llm/request_context.go b/llm/request_context.go index a582b76..da07fbc 100644 --- a/llm/request_context.go +++ b/llm/request_context.go @@ -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"