Skip to content

Commit

Permalink
refactor: retrieve function returns json (#4)
Browse files Browse the repository at this point in the history
  • Loading branch information
sigoden authored May 18, 2024
1 parent 1a24e82 commit 07ce5cc
Show file tree
Hide file tree
Showing 4 changed files with 8 additions and 12 deletions.
1 change: 0 additions & 1 deletion Argcfile.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion bin/execute_command
Original file line number Diff line number Diff line change
@@ -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() {
Expand Down
8 changes: 2 additions & 6 deletions bin/search_duckduckgo
Original file line number Diff line number Diff line change
Expand Up @@ -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" "$@")"
9 changes: 5 additions & 4 deletions bin/search_wolframalpha
Original file line number Diff line number Diff line change
Expand Up @@ -4,20 +4,21 @@ 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=(
-sSf -G
--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" "$@")"

0 comments on commit 07ce5cc

Please sign in to comment.