aboutsummaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorsigoden <sigoden@gmail.com>2024-07-11 21:43:31 +0800
committerGitHub <noreply@github.com>2024-07-11 21:43:31 +0800
commit5600b68e044b4cd9bc55664ce3f41e9a339fc805 (patch)
tree053bc2a7cd88d6a30e1db161a4152d7cd4c1d7af /tools
parentb56159903bb16dbabec1a8767702c3c0865ef256 (diff)
downloadllm-functions-docker-5600b68e044b4cd9bc55664ce3f41e9a339fc805.tar.gz
feat: add jina tools (#73)
Diffstat (limited to 'tools')
-rwxr-xr-xtools/fetch_url_via_curl.sh16
-rwxr-xr-xtools/fetch_url_via_jina.sh17
-rwxr-xr-xtools/get_web_page.sh16
-rwxr-xr-xtools/search_jina.sh22
4 files changed, 55 insertions, 16 deletions
diff --git a/tools/fetch_url_via_curl.sh b/tools/fetch_url_via_curl.sh
new file mode 100755
index 0000000..2f2efdc
--- /dev/null
+++ b/tools/fetch_url_via_curl.sh
@@ -0,0 +1,16 @@
+#!/usr/bin/env bash
+set -e
+
+# @describe Extract the content from a given URL.
+# @meta require-tools pandoc
+# @option --url! The URL to scrape.
+
+main() {
+ # span and div tags are dropped from the HTML https://pandoc.org/MANUAL.html#raw-htmltex and sed removes any inline SVG images in image tags from the Markdown content.
+ curl -fsSL "$argc_url" | \
+ pandoc -f html-native_divs-native_spans -t gfm-raw_html | \
+ sed -E 's/!\[.*?\]\((data:image\/svg\+xml[^)]+)\)//g' \
+ >> "$LLM_OUTPUT"
+}
+
+eval "$(argc --argc-eval "$0" "$@")"
diff --git a/tools/fetch_url_via_jina.sh b/tools/fetch_url_via_jina.sh
new file mode 100755
index 0000000..add01ee
--- /dev/null
+++ b/tools/fetch_url_via_jina.sh
@@ -0,0 +1,17 @@
+#!/usr/bin/env bash
+set -e
+
+# @describe Extract the content from a given URL.
+
+# @env JINA_API_KEY The api key
+# @option --url! The URL to scrape.
+
+main() {
+ curl_args=()
+ if [[ -n "$JINA_API_KEY" ]]; then
+ curl_args+=("-H" "Authorization: Bearer $JINA_API_KEY")
+ fi
+ curl -fsSL "${curl_args[@]}" "https://r.jina.ai/$argc_url" >> "$LLM_OUTPUT"
+}
+
+eval "$(argc --argc-eval "$0" "$@")"
diff --git a/tools/get_web_page.sh b/tools/get_web_page.sh
deleted file mode 100755
index 7a516bb..0000000
--- a/tools/get_web_page.sh
+++ /dev/null
@@ -1,16 +0,0 @@
-#!/usr/bin/env bash
-set -e
-
-# @describe Get webpage content from a given URL.
-# @meta require-tools pandoc
-# @option --url! The URL to scrape.
-
-main() {
- # span and div tags are dropped from the HTML https://pandoc.org/MANUAL.html#raw-htmltex and sed removes any inline SVG images in image tags from the Markdown content.
- curl -fsSL "$argc_url" | \
- pandoc -f html-native_divs-native_spans -t gfm-raw_html | \
- sed -E 's/!\[.*?\]\((data:image\/svg\+xml[^)]+)\)//g' \
- >> "$LLM_OUTPUT"
-}
-
-eval "$(argc --argc-eval "$0" "$@")"
diff --git a/tools/search_jina.sh b/tools/search_jina.sh
new file mode 100755
index 0000000..3e6d706
--- /dev/null
+++ b/tools/search_jina.sh
@@ -0,0 +1,22 @@
+#!/usr/bin/env bash
+set -e
+
+# @describe Perform a web search using Jina API to get up-to-date information or additional context.
+# Use this when you need current information or feel a search could provide a better answer.
+
+# @env JINA_API_KEY The api key
+# @env JINA_MAX_RESULTS=5 The max results to return.
+# @option --query! The query to search for.
+
+main() {
+ curl_args=("-H" "Accept: application/json")
+ if [[ -n "$JINA_API_KEY" ]]; then
+ curl_args+=("-H" "Authorization: Bearer $JINA_API_KEY")
+ fi
+ encoded_query="$(jq -nr --arg q "$argc_query" '$q|@uri')"
+ curl -fsSL "${curl_args[@]}" "https://s.jina.ai/$encoded_query" | \
+ jq '[.data[:'"$JINA_MAX_RESULTS"'] | .[] | {title: .title, url: .url, description: .description}]' \
+ >> "$LLM_OUTPUT"
+}
+
+eval "$(argc --argc-eval "$0" "$@")"