aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsigoden <sigoden@gmail.com>2024-05-18 10:21:57 +0800
committerGitHub <noreply@github.com>2024-05-18 10:21:57 +0800
commit07ce5ccaf634beee7ab14c86130c8cb659d96e31 (patch)
treee18863c2c58c64779031e4518bf8bcd6b3884bf3
parent1a24e820dd95e66a990c1bcbb21b045ed5355a9b (diff)
downloadllm-functions-docker-07ce5ccaf634beee7ab14c86130c8cb659d96e31.tar.gz
refactor: retrieve function returns json (#4)
-rw-r--r--Argcfile.sh1
-rwxr-xr-xbin/execute_command2
-rwxr-xr-xbin/search_duckduckgo8
-rwxr-xr-xbin/search_wolframalpha9
4 files changed, 8 insertions, 12 deletions
diff --git a/Argcfile.sh b/Argcfile.sh
index 67ff6d6..ddbc337 100644
--- a/Argcfile.sh
+++ b/Argcfile.sh
@@ -3,7 +3,6 @@ set -e
# @meta dotenv
-
# @cmd Call the function
# @arg func![`_choice_func`] The function name
# @arg args~[?`_choice_func_args`] The function args
diff --git a/bin/execute_command b/bin/execute_command
index fab84bd..64fb440 100755
--- a/bin/execute_command
+++ b/bin/execute_command
@@ -1,7 +1,7 @@
#!/usr/bin/env bash
set -e
-# @describe Executes a shell command and returns the output.
+# @describe Executes a shell command. This tool does not return data to LLM.
# @option --shell-command~ "Shell command to execute, such as `ls -la`"
main() {
diff --git a/bin/search_duckduckgo b/bin/search_duckduckgo
index 49f7028..c5ab565 100755
--- a/bin/search_duckduckgo
+++ b/bin/search_duckduckgo
@@ -4,17 +4,13 @@ set -e
# @describe Takes in a query string and returns search result from DuckDuckGo.
# Use it to answer user questions that require dates, facts, real-time information, or news.
# This ensures accurate and up-to-date answers.
-#
+
# @meta require-tools ddgr
# @env DDG_MAX_RESULTS=5 The max results to return.
# @option --query! The query to search for.
main() {
- ddgr -n $DDG_MAX_RESULTS --json "$argc_query" | \
- jq -r '. as $input |
-reduce range(0; length) as $i ([]; . + [ $input[$i] | .index = $i ]) |
-.[] | "### \(.index+1). \u001b]8;;\(.url)\u001b\\\(.title)\u001b]8;;\u001b\\\n\(.abstract)\n"
-'
+ ddgr -n $DDG_MAX_RESULTS --json "$argc_query"
}
eval "$(argc --argc-eval "$0" "$@")"
diff --git a/bin/search_wolframalpha b/bin/search_wolframalpha
index 6529ef0..a2dfdc7 100755
--- a/bin/search_wolframalpha
+++ b/bin/search_wolframalpha
@@ -4,9 +4,9 @@ set -e
# @describe Get an answer to a question using Wolfram Alpha. Input should the query in English.
# Use it to answer user questions that require computation, detailed facts, data analysis, or complex queries.
# This ensures accurate and precise answers.
-# @option --query! The query to search for.
-# @env WOLFRAM_API_KEY! The API key used to connect to WolframAlpha
+# @option --query! The query to search for.
+# @env WOLFRAM_API_ID!
main() {
local curl_args=(
@@ -14,10 +14,11 @@ main() {
--data-urlencode "output=JSON"
--data-urlencode "format=plaintext"
--data-urlencode "input=$argc_query"
- --data-urlencode "appid=$WOLFRAM_API_KEY"
+ --data-urlencode "appid=$WOLFRAM_API_ID"
"https://api.wolframalpha.com/v2/query"
)
- curl "${curl_args[@]}" | jq -r '.queryresult.pods[] | select(.subpods[0].plaintext != "") | .title, .subpods[0].plaintext'
+ curl "${curl_args[@]}" | \
+ jq -r '.queryresult.pods[] | select(.subpods[0].plaintext != "")'
}
eval "$(argc --argc-eval "$0" "$@")"