Fixing user request representation in the LLM request context (#40) #41
|
@ -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),
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
||||
|
|
|
@ -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{
|
||||
|
|
|
@ -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"
|
||||
|
|
Loading…
Reference in a new issue