Enha: /completion tool advice inject only if not present
This commit is contained in:
21
llm.go
21
llm.go
@@ -13,6 +13,16 @@ var imageAttachmentPath string // Global variable to track image attachment for
|
|||||||
var lastImg string // for ctrl+j
|
var lastImg string // for ctrl+j
|
||||||
var RAGMsg = "Retrieved context for user's query:\n"
|
var RAGMsg = "Retrieved context for user's query:\n"
|
||||||
|
|
||||||
|
// containsToolSysMsg checks if the toolSysMsg already exists in the chat body
|
||||||
|
func containsToolSysMsg() bool {
|
||||||
|
for _, msg := range chatBody.Messages {
|
||||||
|
if msg.Role == cfg.ToolRole && msg.Content == toolSysMsg {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
// SetImageAttachment sets an image to be attached to the next message sent to the LLM
|
// SetImageAttachment sets an image to be attached to the next message sent to the LLM
|
||||||
func SetImageAttachment(imagePath string) {
|
func SetImageAttachment(imagePath string) {
|
||||||
imageAttachmentPath = imagePath
|
imageAttachmentPath = imagePath
|
||||||
@@ -122,7 +132,7 @@ func (lcp LCPCompletion) 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))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if cfg.ToolUse && !resume && role == cfg.UserRole {
|
if cfg.ToolUse && !resume && role == cfg.UserRole && !containsToolSysMsg() {
|
||||||
// add to chat body
|
// add to chat body
|
||||||
chatBody.Messages = append(chatBody.Messages, models.RoleMsg{Role: cfg.ToolRole, Content: toolSysMsg})
|
chatBody.Messages = append(chatBody.Messages, models.RoleMsg{Role: cfg.ToolRole, Content: toolSysMsg})
|
||||||
}
|
}
|
||||||
@@ -358,7 +368,7 @@ func (ds DeepSeekerCompletion) FormMsg(msg, role string, resume bool) (io.Reader
|
|||||||
logger.Debug("DeepSeekerCompletion: RAG message added to chat body", "message_count", len(chatBody.Messages))
|
logger.Debug("DeepSeekerCompletion: RAG message added to chat body", "message_count", len(chatBody.Messages))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if cfg.ToolUse && !resume && role == cfg.UserRole {
|
if cfg.ToolUse && !resume && role == cfg.UserRole && !containsToolSysMsg() {
|
||||||
// add to chat body
|
// add to chat body
|
||||||
chatBody.Messages = append(chatBody.Messages, models.RoleMsg{Role: cfg.ToolRole, Content: toolSysMsg})
|
chatBody.Messages = append(chatBody.Messages, models.RoleMsg{Role: cfg.ToolRole, Content: toolSysMsg})
|
||||||
}
|
}
|
||||||
@@ -420,11 +430,6 @@ func (ds DeepSeekerChat) GetToken() string {
|
|||||||
|
|
||||||
func (ds DeepSeekerChat) FormMsg(msg, role string, resume bool) (io.Reader, error) {
|
func (ds DeepSeekerChat) FormMsg(msg, role string, resume bool) (io.Reader, error) {
|
||||||
logger.Debug("formmsg deepseekerchat", "link", cfg.CurrentAPI)
|
logger.Debug("formmsg deepseekerchat", "link", cfg.CurrentAPI)
|
||||||
if cfg.ToolUse && !resume && role == cfg.UserRole {
|
|
||||||
// prompt += "\n" + cfg.ToolRole + ":\n" + toolSysMsg
|
|
||||||
// add to chat body
|
|
||||||
chatBody.Messages = append(chatBody.Messages, models.RoleMsg{Role: cfg.ToolRole, Content: toolSysMsg})
|
|
||||||
}
|
|
||||||
if msg != "" { // otherwise let the bot continue
|
if msg != "" { // otherwise let the bot continue
|
||||||
newMsg := models.RoleMsg{Role: role, Content: msg}
|
newMsg := models.RoleMsg{Role: role, Content: msg}
|
||||||
chatBody.Messages = append(chatBody.Messages, newMsg)
|
chatBody.Messages = append(chatBody.Messages, newMsg)
|
||||||
@@ -516,7 +521,7 @@ func (or OpenRouterCompletion) FormMsg(msg, role string, resume bool) (io.Reader
|
|||||||
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))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if cfg.ToolUse && !resume && role == cfg.UserRole {
|
if cfg.ToolUse && !resume && role == cfg.UserRole && !containsToolSysMsg() {
|
||||||
// add to chat body
|
// add to chat body
|
||||||
chatBody.Messages = append(chatBody.Messages, models.RoleMsg{Role: cfg.ToolRole, Content: toolSysMsg})
|
chatBody.Messages = append(chatBody.Messages, models.RoleMsg{Role: cfg.ToolRole, Content: toolSysMsg})
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user