diff options
| author | Grail Finder <wohilas@gmail.com> | 2025-11-24 18:30:46 +0300 |
|---|---|---|
| committer | Grail Finder <wohilas@gmail.com> | 2025-11-24 18:30:46 +0300 |
| commit | adfa6bd78389e01e2b5a6a6d71a718a2c9f10298 (patch) | |
| tree | f15476a4b43bce83d78b96da92d109ce5f6518de | |
| parent | 73c048e666a75d3f2c01e89f15f329136f59e2d5 (diff) | |
Feat: tool model for or
| -rw-r--r-- | llm.go | 13 | ||||
| -rw-r--r-- | models/openrouter.go | 1 |
2 files changed, 4 insertions, 10 deletions
@@ -76,7 +76,6 @@ type OpenRouterChat struct { Model string } - func (lcp LlamaCPPeer) GetToken() string { return "" } @@ -484,16 +483,9 @@ func (or OpenRouterChat) GetToken() string { func (or OpenRouterChat) FormMsg(msg, role string, resume bool) (io.Reader, error) { logger.Debug("formmsg open router completion", "link", cfg.CurrentAPI) - // Capture the image attachment path at the beginning to avoid race conditions // with API rotation that might clear the global variable localImageAttachmentPath := imageAttachmentPath - - if cfg.ToolUse && !resume { - // 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 var newMsg models.RoleMsg // Check if we have an image to add to this message @@ -536,7 +528,6 @@ func (or OpenRouterChat) FormMsg(msg, role string, resume bool) (io.Reader, erro Model: chatBody.Model, Stream: chatBody.Stream, } - for i, msg := range chatBody.Messages { bodyCopy.Messages[i] = msg // Standardize role if it's a user role @@ -544,8 +535,10 @@ func (or OpenRouterChat) FormMsg(msg, role string, resume bool) (io.Reader, erro bodyCopy.Messages[i].Role = "user" } } - orBody := models.NewOpenRouterChatReq(*bodyCopy, defaultLCPProps) + if cfg.ToolUse && !resume && role != cfg.ToolRole { + orBody.Tools = baseTools // set tools to use + } data, err := json.Marshal(orBody) if err != nil { logger.Error("failed to form a msg", "error", err) diff --git a/models/openrouter.go b/models/openrouter.go index 933598e..ac37a85 100644 --- a/models/openrouter.go +++ b/models/openrouter.go @@ -31,6 +31,7 @@ type OpenRouterChatReq struct { Temperature float32 `json:"temperature"` MinP float32 `json:"min_p"` NPredict int32 `json:"max_tokens"` + Tools []Tool `json:"tools"` } func NewOpenRouterChatReq(cb ChatBody, props map[string]float32) OpenRouterChatReq { |
