From d5fdf017238733e89bf9bedae33132bd253ef12f Mon Sep 17 00:00:00 2001 From: Alex Barron Date: Thu, 6 Nov 2025 11:26:28 +0000 Subject: [PATCH] Add SerpApi web search --- .vscode/settings.json | 1 + docker/.env.example | 4 + .../SearchProviderOptions/index.jsx | 74 +++++ .../WebSearchSelection/icons/serpapi.png | Bin 0 -> 118523 bytes .../Admin/Agents/WebSearchSelection/index.jsx | 10 + server/.env.example | 4 + server/models/systemSettings.js | 3 + .../agents/aibitat/plugins/web-browsing.js | 252 ++++++++++++++++++ server/utils/helpers/updateENV.js | 8 + 9 files changed, 356 insertions(+) create mode 100644 frontend/src/pages/Admin/Agents/WebSearchSelection/icons/serpapi.png diff --git a/.vscode/settings.json b/.vscode/settings.json index e6b76c9e9de..c4e7a4b9c53 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -46,6 +46,7 @@ "royalblue", "SearchApi", "searxng", + "SerpApi", "Serper", "Serply", "streamable", diff --git a/docker/.env.example b/docker/.env.example index 27fa1c013c6..1785aaf0335 100644 --- a/docker/.env.example +++ b/docker/.env.example @@ -331,6 +331,10 @@ GID='1000' # AGENT_SEARCHAPI_API_KEY= # AGENT_SEARCHAPI_ENGINE=google +#------ SerpApi ----------- https://serpapi.com/ +# AGENT_SERPAPI_API_KEY= +# AGENT_SERPAPI_ENGINE=google + #------ Serper.dev ----------- https://serper.dev/ # AGENT_SERPER_DEV_KEY= diff --git a/frontend/src/pages/Admin/Agents/WebSearchSelection/SearchProviderOptions/index.jsx b/frontend/src/pages/Admin/Agents/WebSearchSelection/SearchProviderOptions/index.jsx index cce0dd11b1d..f26e3ede9a2 100644 --- a/frontend/src/pages/Admin/Agents/WebSearchSelection/SearchProviderOptions/index.jsx +++ b/frontend/src/pages/Admin/Agents/WebSearchSelection/SearchProviderOptions/index.jsx @@ -50,6 +50,80 @@ export function GoogleSearchOptions({ settings }) { ); } +const SerpApiEngines = [ + { name: "Google Search", value: "google" }, + { name: "Google Images", value: "google_images_light" }, + { name: "Google Jobs", value: "google_jobs" }, + { name: "Google Maps", value: "google_maps" }, + { name: "Google News", value: "google_news_light" }, + { name: "Google Patents", value: "google_patents" }, + { name: "Google Scholar", value: "google_scholar" }, + { name: "Google Shopping", value: "google_shopping_light" }, + { name: "Amazon", value: "amazon" }, + { name: "Baidu", value: "baidu" }, +]; +export function SerpApiOptions({ settings }) { + return ( + <> +

+ Get a free API key{" "} + + from SerpApi. + +

+
+
+ + +
+
+ + + {/* */} +
+
+ + ); +} + const SearchApiEngines = [ { name: "Google Search", value: "google" }, { name: "Google Maps", value: "google_maps" }, diff --git a/frontend/src/pages/Admin/Agents/WebSearchSelection/icons/serpapi.png b/frontend/src/pages/Admin/Agents/WebSearchSelection/icons/serpapi.png new file mode 100644 index 0000000000000000000000000000000000000000..6adc8f5123640ad53e1d8bb1fde412b946732b4c GIT binary patch literal 118523 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
`g1NN}cD_O70^fs@o>a%7ZQr9@ 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 literal 0 HcmV?d00001 diff --git a/frontend/src/pages/Admin/Agents/WebSearchSelection/index.jsx b/frontend/src/pages/Admin/Agents/WebSearchSelection/index.jsx index f52d793ac8f..8a7f8ec70ac 100644 --- a/frontend/src/pages/Admin/Agents/WebSearchSelection/index.jsx +++ b/frontend/src/pages/Admin/Agents/WebSearchSelection/index.jsx @@ -2,6 +2,7 @@ import React, { useEffect, useRef, useState } from "react"; import Admin from "@/models/admin"; import AnythingLLMIcon from "@/media/logo/anything-llm-icon.png"; import GoogleSearchIcon from "./icons/google.png"; +import SerpApiIcon from "./icons/serpapi.png"; import SearchApiIcon from "./icons/searchapi.png"; import SerperDotDevIcon from "./icons/serper.png"; import BingSearchIcon from "./icons/bing.png"; @@ -19,6 +20,7 @@ import { import SearchProviderItem from "./SearchProviderItem"; import WebSearchImage from "@/media/agents/scrape-websites.png"; import { + SerpApiOptions, SearchApiOptions, SerperDotDevOptions, GoogleSearchOptions, @@ -54,6 +56,14 @@ const SEARCH_PROVIDERS = [ description: "Web search powered by a custom Google Search Engine. Free for 100 queries per day.", }, + { + name: "SerpApi", + value: "serpapi", + logo: SerpApiIcon, + options: (settings) => , + description: + "Scrape Google and several other search engines with SerpApi. 250 free searches every month, and then paid.", + }, { name: "SearchApi", value: "searchapi", diff --git a/server/.env.example b/server/.env.example index 3dc0bd596c4..dc9c8239551 100644 --- a/server/.env.example +++ b/server/.env.example @@ -325,6 +325,10 @@ TTS_PROVIDER="native" # AGENT_GSE_KEY= # AGENT_GSE_CTX= +#------ SerpApi ----------- https://serpapi.com/ +# AGENT_SERPAPI_API_KEY= +# AGENT_SERPAPI_ENGINE=google + #------ SearchApi.io ----------- https://www.searchapi.io/ # AGENT_SEARCHAPI_API_KEY= # AGENT_SEARCHAPI_ENGINE=google diff --git a/server/models/systemSettings.js b/server/models/systemSettings.js index 3a7a4b21554..0db31e66fad 100644 --- a/server/models/systemSettings.js +++ b/server/models/systemSettings.js @@ -106,6 +106,7 @@ const SystemSettings = { if ( ![ "google-search-engine", + "serpapi", "searchapi", "serper-dot-dev", "bing-search", @@ -276,6 +277,8 @@ const SystemSettings = { // -------------------------------------------------------- AgentGoogleSearchEngineId: process.env.AGENT_GSE_CTX || null, AgentGoogleSearchEngineKey: !!process.env.AGENT_GSE_KEY || null, + AgentSerpApiKey: !!process.env.AGENT_SERPAPI_API_KEY || null, + AgentSerpApiEngine: process.env.AGENT_SERPAPI_ENGINE || "google", AgentSearchApiKey: !!process.env.AGENT_SEARCHAPI_API_KEY || null, AgentSearchApiEngine: process.env.AGENT_SEARCHAPI_ENGINE || "google", AgentSerperApiKey: !!process.env.AGENT_SERPER_DEV_KEY || null, diff --git a/server/utils/agents/aibitat/plugins/web-browsing.js b/server/utils/agents/aibitat/plugins/web-browsing.js index 2825b106815..6d8dae3b6b0 100644 --- a/server/utils/agents/aibitat/plugins/web-browsing.js +++ b/server/utils/agents/aibitat/plugins/web-browsing.js @@ -69,6 +69,9 @@ const webBrowsing = { case "google-search-engine": engine = "_googleSearchEngine"; break; + case "serpapi": + engine = "_serpApi"; + break; case "searchapi": engine = "_searchApi"; break; @@ -170,6 +173,255 @@ const webBrowsing = { return result; }, + /** + * Use SerpApi + * SerpApi supports dozens of search engines across the major platforms including Google, DuckDuckGo, Bing, eBay, Amazon, Baidu, Yandex, and more. + * https://serpapi.com/ + */ + _serpApi: async function (query) { + if (!process.env.AGENT_SERPAPI_API_KEY) { + this.super.introspect( + `${this.caller}: I can't use SerpApi searching because the user has not defined the required API key.\nVisit: https://serpapi.com/ to create the API key for free.` + ); + return `Search is disabled and no content was found. This functionality is disabled because the user has not set it up yet.`; + } + + this.super.introspect( + `${this.caller}: Using SerpApi to search for "${ + query.length > 100 ? `${query.slice(0, 100)}...` : query + }"` + ); + + const engine = process.env.AGENT_SERPAPI_ENGINE; + const queryParamKey = engine === "amazon" ? "k" : "q"; + + const params = new URLSearchParams({ + engine: engine, + [queryParamKey]: query, + api_key: process.env.AGENT_SERPAPI_API_KEY, + }); + + const url = `https://serpapi.com/search.json?${params.toString()}`; + const { response, error } = await fetch(url, { + method: "GET", + headers: {}, + }) + .then((res) => { + if (res.ok) return res.json(); + throw new Error( + `${res.status} - ${res.statusText}. params: ${JSON.stringify({ auth: this.middleTruncate(process.env.AGENT_SERPAPI_API_KEY, 5), q: query })}` + ); + }) + .then((data) => { + return { response: data, error: null }; + }) + .catch((e) => { + this.super.handlerProps.log(`SerpApi Error: ${e.message}`); + return { response: null, error: e.message }; + }); + if (error) + return `There was an error searching for content. ${error}`; + + const data = []; + + switch (engine) { + case "google": + if (response.hasOwnProperty("knowledge_graph")) + data.push(response.knowledge_graph); + if (response.hasOwnProperty("answer_box")) + data.push(response.answer_box); + response.organic_results?.forEach((searchResult) => { + const { title, link, snippet } = searchResult; + data.push({ + title, + link, + snippet, + }); + }); + response.local_results?.forEach((searchResult) => { + const { + title, + rating, + reviews, + description, + address, + website, + extensions, + } = searchResult; + data.push({ + title, + rating, + reviews, + description, + address, + website, + extensions, + }); + }); + case "google_maps": + response.local_results?.slice(0, 10).forEach((searchResult) => { + const { + title, + rating, + reviews, + description, + address, + website, + extensions, + } = searchResult; + data.push({ + title, + rating, + reviews, + description, + address, + website, + extensions, + }); + }); + case "google_images_light": + response.images_results + ?.slice(0, 10) + .forEach((searchResult) => { + const { title, source, link, thumbnail } = searchResult; + data.push({ + title, + source, + link, + thumbnail, + }); + }); + case "google_shopping_light": + response.shopping_results + ?.slice(0, 10) + .forEach((searchResult) => { + const { + title, + source, + price, + rating, + reviews, + snippet, + thumbnail, + product_link, + } = searchResult; + data.push({ + title, + source, + price, + rating, + reviews, + snippet, + thumbnail, + product_link, + }); + }); + case "google_news_light": + response.news_results?.slice(0, 10).forEach((searchResult) => { + const { title, link, source, thumbnail, snippet, date } = + searchResult; + data.push({ + title, + link, + source, + thumbnail, + snippet, + date, + }); + }); + case "google_jobs": + response.jobs_results?.forEach((searchResult) => { + const { + title, + company_name, + location, + description, + apply_options, + extensions, + } = searchResult; + data.push({ + title, + company_name, + location, + description, + apply_options, + extensions, + }); + }); + case "google_patents": + response.organic_results?.forEach((searchResult) => { + const { + title, + patent_link, + snippet, + inventor, + assignee, + publication_number, + } = searchResult; + data.push({ + title, + patent_link, + snippet, + inventor, + assignee, + publication_number, + }); + }); + case "google_scholar": + response.organic_results?.forEach((searchResult) => { + const { title, link, snippet, publication_info } = + searchResult; + data.push({ + title, + link, + snippet, + publication_info, + }); + }); + case "baidu": + if (response.hasOwnProperty("answer_box")) + data.push(response.answer_box); + response.organic_results?.forEach((searchResult) => { + const { title, link, snippet } = searchResult; + data.push({ + title, + link, + snippet, + }); + }); + case "amazon": + response.organic_results + ?.slice(0, 10) + .forEach((searchResult) => { + const { + title, + rating, + reviews, + price, + link_clean, + thumbnail, + } = searchResult; + data.push({ + title, + rating, + reviews, + price, + link_clean, + thumbnail, + }); + }); + } + + if (data.length === 0) + return `No information was found online for the search query.`; + + const result = JSON.stringify(data); + this.super.introspect( + `${this.caller}: I found ${data.length} results - reviewing the results now. (~${this.countTokens(result)} tokens)` + ); + return result; + }, + /** * Use SearchApi * SearchApi supports multiple search engines like Google Search, Bing Search, Baidu Search, Google News, YouTube, and many more. diff --git a/server/utils/helpers/updateENV.js b/server/utils/helpers/updateENV.js index c8109efb193..0895879b0f3 100644 --- a/server/utils/helpers/updateENV.js +++ b/server/utils/helpers/updateENV.js @@ -549,6 +549,14 @@ const KEY_MAPPING = { envKey: "AGENT_GSE_KEY", checks: [], }, + AgentSerpApiKey: { + envKey: "AGENT_SERPAPI_API_KEY", + checks: [], + }, + AgentSerpApiEngine: { + envKey: "AGENT_SERPAPI_ENGINE", + checks: [], + }, AgentSearchApiKey: { envKey: "AGENT_SEARCHAPI_API_KEY", checks: [],