feat: add more search tools (#62)

This commit is contained in:
sigoden
2024-07-06 08:36:48 +08:00
committed by GitHub
parent e68aa0c043
commit 58d2ee0494
2 changed files with 46 additions and 0 deletions
+20
View File
@@ -0,0 +1,20 @@
#!/usr/bin/env bash
set -e
# @describe Perform a web search using Google Search 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 GOOGLE_API_KEY! The api key
# @env GOOGLE_CSE_ID! The id of google search engine
# @env GOOGLE_MAX_RESULTS=5 The max results to return.
# @option --query! The query to search for.
main() {
encoded_query="$(jq -nr --arg q "$argc_query" '$q|@uri')"
url="https://www.googleapis.com/customsearch/v1?key=$GOOGLE_API_KEY&cx=$GOOGLE_CSE_ID&q=$encoded_query"
curl -fsSL "$url" | \
jq '[.items[:'"$GOOGLE_MAX_RESULTS"'] | .[] | {title: .title, link: .link, snippet: .snippet}]'
}
eval "$(argc --argc-eval "$0" "$@")"
+26
View File
@@ -0,0 +1,26 @@
#!/usr/bin/env bash
set -e
# @describe Searche Wikipedia for a query.
# Uses it to get detailed information about a public figure, interpretation of a complex scientific concept or in-depth connectivity of a significant historical event,.
# @option --query! The query to search for.
main() {
encoded_query="$(jq -nr --arg q "$argc_query" '$q|@uri')"
search_url="https://en.wikipedia.org/w/api.php?action=query&list=search&srsearch=$encoded_query&format=json"
title="$(curl -fsSL "$search_url" | jq -r '.query.search[0].title' 2>/dev/null)"
if [[ -z "$title" ]]; then
echo "Error: No results found for '$argc_query'"
exit 1
fi
title="$(echo "$title" | tr ' ' '_')"
page_url="https://en.wikipedia.org/api/rest_v1/page/summary/$title"
summary="$(curl -fsSL "$page_url" | jq -r '.extract')"
echo '{
"link": "https://en.wikipedia.org/wiki/'"$title"'",
"summary": "'"$summary"'"
}'
}
eval "$(argc --argc-eval "$0" "$@")"