diff options
| author | sigoden <sigoden@gmail.com> | 2024-05-19 22:43:49 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-05-19 22:43:49 +0800 |
| commit | 03c4b6982293c5be31d7eda89b6dcb8c1a7a8059 (patch) | |
| tree | a2d48d189dcbe242ab69b174c734db4e70d502a2 /sh | |
| parent | be279dcd322da7f84bb6451f10456b19a979e9ad (diff) | |
| download | llm-functions-docker-03c4b6982293c5be31d7eda89b6dcb8c1a7a8059.tar.gz | |
feat: supports functions in bash/js/python/ruby (#6)
Diffstat (limited to 'sh')
| -rwxr-xr-x | sh/get_current_weather.sh | 11 | ||||
| -rwxr-xr-x | sh/may_execute_command.sh | 11 | ||||
| -rwxr-xr-x | sh/search_duckduckgo.sh | 16 | ||||
| -rwxr-xr-x | sh/search_wolframalpha.sh | 24 |
4 files changed, 62 insertions, 0 deletions
diff --git a/sh/get_current_weather.sh b/sh/get_current_weather.sh new file mode 100755 index 0000000..47102e0 --- /dev/null +++ b/sh/get_current_weather.sh @@ -0,0 +1,11 @@ +#!/usr/bin/env bash +set -e + +# @describe Get the current weather in a given location. +# @option --location! The city and optionally the state or country, e.g., "London", "San Francisco, CA". + +main() { + curl -fsSL "https://wttr.in/$(echo "$argc_location" | sed 's/ /+/g')?format=4&M" +} + +eval "$(argc --argc-eval "$0" "$@")" diff --git a/sh/may_execute_command.sh b/sh/may_execute_command.sh new file mode 100755 index 0000000..90db52b --- /dev/null +++ b/sh/may_execute_command.sh @@ -0,0 +1,11 @@ +#!/usr/bin/env bash +set -e + +# @describe Executes a shell command. +# @option --command~ Command to execute, such as `ls -la` + +main() { + eval "$argc_command" +} + +eval "$(argc --argc-eval "$0" "$@")"
\ No newline at end of file diff --git a/sh/search_duckduckgo.sh b/sh/search_duckduckgo.sh new file mode 100755 index 0000000..c5ab565 --- /dev/null +++ b/sh/search_duckduckgo.sh @@ -0,0 +1,16 @@ +#!/usr/bin/env bash +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" +} + +eval "$(argc --argc-eval "$0" "$@")" diff --git a/sh/search_wolframalpha.sh b/sh/search_wolframalpha.sh new file mode 100755 index 0000000..a2dfdc7 --- /dev/null +++ b/sh/search_wolframalpha.sh @@ -0,0 +1,24 @@ +#!/usr/bin/env bash +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_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_ID" + "https://api.wolframalpha.com/v2/query" + ) + curl "${curl_args[@]}" | \ + jq -r '.queryresult.pods[] | select(.subpods[0].plaintext != "")' +} + +eval "$(argc --argc-eval "$0" "$@")" |
