summaryrefslogtreecommitdiff
path: root/tools.go
diff options
context:
space:
mode:
authorGrail Finder <wohilas@gmail.com>2025-08-08 13:03:37 +0300
committerGrail Finder <wohilas@gmail.com>2025-08-08 13:03:37 +0300
commitd7d432b8a1dbea9e18f78d835112fa074051f587 (patch)
tree517a6e057aaf3fb5fd418690bfff1941d55c45bb /tools.go
parent589dfdda3fa89ecc984530ce3bfcc58ee2fd851d (diff)
Enha: /chat /completions tool calls to live in peace
Diffstat (limited to 'tools.go')
-rw-r--r--tools.go20
1 files changed, 10 insertions, 10 deletions
diff --git a/tools.go b/tools.go
index 3b5fbf6..dee0577 100644
--- a/tools.go
+++ b/tools.go
@@ -46,7 +46,7 @@ To make a function call return a json object within __tool_call__ tags;
__tool_call__
{
"name":"recall",
-"args": ["Adam's number"]
+"args": {"topic": "Adam's number"}
}
__tool_call__
</example_request>
@@ -84,7 +84,7 @@ also:
- some writing can be done without consideration of previous data;
- others do;
*/
-func memorise(args ...string) []byte {
+func memorise(args map[string]string) []byte {
agent := cfg.AssistantRole
if len(args) < 2 {
msg := "not enough args to call memorise tool; need topic and data to remember"
@@ -93,35 +93,35 @@ func memorise(args ...string) []byte {
}
memory := &models.Memory{
Agent: agent,
- Topic: args[0],
- Mind: args[1],
+ Topic: args["topic"],
+ Mind: args["data"],
UpdatedAt: time.Now(),
}
if _, err := store.Memorise(memory); err != nil {
logger.Error("failed to save memory", "err", err, "memoory", memory)
return []byte("failed to save info")
}
- msg := "info saved under the topic:" + args[0]
+ msg := "info saved under the topic:" + args["topic"]
return []byte(msg)
}
-func recall(args ...string) []byte {
+func recall(args map[string]string) []byte {
agent := cfg.AssistantRole
if len(args) < 1 {
logger.Warn("not enough args to call recall tool")
return nil
}
- mind, err := store.Recall(agent, args[0])
+ mind, err := store.Recall(agent, args["topic"])
if err != nil {
msg := fmt.Sprintf("failed to recall; error: %v; args: %v", err, args)
logger.Error(msg)
return []byte(msg)
}
- answer := fmt.Sprintf("under the topic: %s is stored:\n%s", args[0], mind)
+ answer := fmt.Sprintf("under the topic: %s is stored:\n%s", args["topic"], mind)
return []byte(answer)
}
-func recallTopics(args ...string) []byte {
+func recallTopics(args map[string]string) []byte {
agent := cfg.AssistantRole
topics, err := store.RecallTopics(agent)
if err != nil {
@@ -134,7 +134,7 @@ func recallTopics(args ...string) []byte {
// func fullMemoryLoad() {}
-type fnSig func(...string) []byte
+type fnSig func(map[string]string) []byte
var fnMap = map[string]fnSig{
"recall": recall,