Enha: role suffix for /chat only if AutoTurn is enabled

This commit is contained in:
Grail Finder
2026-02-02 08:23:05 +03:00
parent e52e8ce2cc
commit 343e045095

17
llm.go
View File

@@ -328,10 +328,10 @@ func (op LCPChat) FormMsg(msg, role string, resume bool) (io.Reader, error) {
logger.Debug("LCPChat: RAG message added to chat body", "role", ragMsg.Role, "rag_content_len", len(ragMsg.Content), "message_count_after_rag", len(chatBody.Messages)) logger.Debug("LCPChat: RAG message added to chat body", "role", ragMsg.Role, "rag_content_len", len(ragMsg.Content), "message_count_after_rag", len(chatBody.Messages))
} }
} }
// openai /v1/chat does not support custom roles; needs to be user, assistant, system
filteredMessages, botPersona := filterMessagesForCurrentCharacter(chatBody.Messages) filteredMessages, botPersona := filterMessagesForCurrentCharacter(chatBody.Messages)
// openai /v1/chat does not support custom roles; needs to be user, assistant, system
// Add persona suffix to the last user message to indicate who the assistant should reply as // Add persona suffix to the last user message to indicate who the assistant should reply as
if !resume { if cfg.AutoTurn && !resume {
filteredMessages = addPersonaSuffixToLastUserMessage(filteredMessages, botPersona) filteredMessages = addPersonaSuffixToLastUserMessage(filteredMessages, botPersona)
} }
bodyCopy := &models.ChatBody{ bodyCopy := &models.ChatBody{
@@ -499,15 +499,12 @@ func (ds DeepSeekerChat) FormMsg(msg, role string, resume bool) (io.Reader, erro
logger.Debug("RAG message added to chat body", "message_count", len(chatBody.Messages)) logger.Debug("RAG message added to chat body", "message_count", len(chatBody.Messages))
} }
} }
// Create copy of chat body with standardized user role
filteredMessages, botPersona := filterMessagesForCurrentCharacter(chatBody.Messages) filteredMessages, botPersona := filterMessagesForCurrentCharacter(chatBody.Messages)
// Add persona suffix to the last user message to indicate who the assistant should reply as // Add persona suffix to the last user message to indicate who the assistant should reply as
if !resume && cfg.WriteNextMsgAsCompletionAgent != "" { if cfg.AutoTurn && !resume {
filteredMessages = addPersonaSuffixToLastUserMessage(filteredMessages, cfg.WriteNextMsgAsCompletionAgent)
} else if !resume {
filteredMessages = addPersonaSuffixToLastUserMessage(filteredMessages, botPersona) filteredMessages = addPersonaSuffixToLastUserMessage(filteredMessages, botPersona)
} }
bodyCopy := &models.ChatBody{ bodyCopy := &models.ChatBody{
Messages: make([]models.RoleMsg, len(filteredMessages)), Messages: make([]models.RoleMsg, len(filteredMessages)),
Model: chatBody.Model, Model: chatBody.Model,
@@ -696,14 +693,10 @@ func (or OpenRouterChat) FormMsg(msg, role string, resume bool) (io.Reader, erro
} }
// Create copy of chat body with standardized user role // Create copy of chat body with standardized user role
filteredMessages, botPersona := filterMessagesForCurrentCharacter(chatBody.Messages) filteredMessages, botPersona := filterMessagesForCurrentCharacter(chatBody.Messages)
// Add persona suffix to the last user message to indicate who the assistant should reply as // Add persona suffix to the last user message to indicate who the assistant should reply as
if !resume && cfg.WriteNextMsgAsCompletionAgent != "" { if cfg.AutoTurn && !resume {
filteredMessages = addPersonaSuffixToLastUserMessage(filteredMessages, cfg.WriteNextMsgAsCompletionAgent)
} else if !resume {
filteredMessages = addPersonaSuffixToLastUserMessage(filteredMessages, botPersona) filteredMessages = addPersonaSuffixToLastUserMessage(filteredMessages, botPersona)
} }
bodyCopy := &models.ChatBody{ bodyCopy := &models.ChatBody{
Messages: make([]models.RoleMsg, len(filteredMessages)), Messages: make([]models.RoleMsg, len(filteredMessages)),
Model: chatBody.Model, Model: chatBody.Model,