aboutsummaryrefslogtreecommitdiffstats
path: root/bin/search_duckduckgo
diff options
context:
space:
mode:
authorsigoden <sigoden@gmail.com>2024-05-16 08:37:58 +0000
committersigoden <sigoden@gmail.com>2024-05-16 08:37:58 +0000
commit7a310908603e9ddf923b154447b3a953bea860e9 (patch)
tree3b3b7b5dcdea08feb4e012d1472ff2cbbf5d306e /bin/search_duckduckgo
parent4d0a8232570563e5f40da61cae3ae64e63aed7b5 (diff)
downloadllm-functions-docker-7a310908603e9ddf923b154447b3a953bea860e9.tar.gz
refactor: rename duckduckgo search
Diffstat (limited to 'bin/search_duckduckgo')
-rwxr-xr-xbin/search_duckduckgo20
1 files changed, 20 insertions, 0 deletions
diff --git a/bin/search_duckduckgo b/bin/search_duckduckgo
new file mode 100755
index 0000000..49f7028
--- /dev/null
+++ b/bin/search_duckduckgo
@@ -0,0 +1,20 @@
+#!/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" | \
+ 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"
+'
+}
+
+eval "$(argc --argc-eval "$0" "$@")"