diff options
| author | Grail Finder <wohilas@gmail.com> | 2026-02-02 08:18:49 +0300 |
|---|---|---|
| committer | Grail Finder <wohilas@gmail.com> | 2026-02-02 08:18:49 +0300 |
| commit | e52e8ce2cc44b4e8cc950fe6811810db4142921d (patch) | |
| tree | 9ff132464eeecf9d4fdc6f431e5421dc1e668fa1 | |
| parent | c1b04303ef91709e6a0f2ec93f5ae5a1dac610ce (diff) | |
Enha: consolidate assistant messages only
| -rw-r--r-- | bot.go | 4 | ||||
| -rw-r--r-- | llm.go | 31 |
2 files changed, 16 insertions, 19 deletions
@@ -195,8 +195,8 @@ func consolidateAssistantMessages(messages []models.RoleMsg) []models.RoleMsg { isBuildingAssistantMsg := false for i := 0; i < len(messages); i++ { msg := messages[i] - // what about the case with multiplpe assistant roles? - if msg.Role == cfg.AssistantRole || msg.Role == cfg.WriteNextMsgAsCompletionAgent { + // assistant role only + if msg.Role == cfg.AssistantRole { // If this is an assistant message, start or continue building if !isBuildingAssistantMsg { // Start accumulating assistant message @@ -19,18 +19,19 @@ func addPersonaSuffixToLastUserMessage(messages []models.RoleMsg, persona string if len(messages) == 0 { return messages } - - // Find the last user message to modify - for i := len(messages) - 1; i >= 0; i-- { - if messages[i].Role == cfg.UserRole || messages[i].Role == "user" { - // Create a copy of the message to avoid modifying the original - modifiedMsg := messages[i] - modifiedMsg.Content = modifiedMsg.Content + "\n" + persona + ":" - messages[i] = modifiedMsg - break - } - } - + // // Find the last user message to modify + // for i := len(messages) - 1; i >= 0; i-- { + // if messages[i].Role == cfg.UserRole || messages[i].Role == "user" { + // // Create a copy of the message to avoid modifying the original + // modifiedMsg := messages[i] + // modifiedMsg.Content = modifiedMsg.Content + "\n" + persona + ":" + // messages[i] = modifiedMsg + // break + // } + // } + modifiedMsg := messages[len(messages)-1] + modifiedMsg.Content = modifiedMsg.Content + "\n" + persona + ":\n" + messages[len(messages)-1] = modifiedMsg return messages } @@ -329,14 +330,10 @@ func (op LCPChat) FormMsg(msg, role string, resume bool) (io.Reader, error) { } // openai /v1/chat does not support custom roles; needs to be user, assistant, system filteredMessages, botPersona := filterMessagesForCurrentCharacter(chatBody.Messages) - // Add persona suffix to the last user message to indicate who the assistant should reply as - if !resume && cfg.WriteNextMsgAsCompletionAgent != "" { - filteredMessages = addPersonaSuffixToLastUserMessage(filteredMessages, cfg.WriteNextMsgAsCompletionAgent) - } else if !resume { + if !resume { filteredMessages = addPersonaSuffixToLastUserMessage(filteredMessages, botPersona) } - bodyCopy := &models.ChatBody{ Messages: make([]models.RoleMsg, len(filteredMessages)), Model: chatBody.Model, |
