diff --git a/docs/search/index.md b/docs/search/index.md index 1e36ac283..3da11fa45 100644 --- a/docs/search/index.md +++ b/docs/search/index.md @@ -2,7 +2,7 @@ | Feature | Supported | |---------|-----------| -| Supported Providers | `perplexity`, `tavily`, `parallel_ai`, `exa_ai`, `brave`, `google_pse`, `dataforseo`, `firecrawl`, `searxng`, `linkup`, `duckduckgo`, `searchapi`, `serper`, `you_com`, `apiserpent`, `agentcore`, `nimble`, `bing_grounding` | +| Supported Providers | `perplexity`, `tavily`, `parallel_ai`, `exa_ai`, `brave`, `google_pse`, `dataforseo`, `firecrawl`, `searxng`, `linkup`, `duckduckgo`, `searchapi`, `serper`, `you_com`, `apiserpent`, `agentcore`, `nimble`, `bing_grounding`, `scavio` | | Cost Tracking | ✅ | | Logging | ✅ | | Load Balancing | ❌ | @@ -337,6 +337,7 @@ The response follows Perplexity's search format with the following structure: | APISerpent | `APISERPENT_API_KEY` | `apiserpent` | | Bedrock AgentCore | `AGENTCORE_GATEWAY_URL` (required), AWS credentials or `AGENTCORE_GATEWAY_TOKEN` | `agentcore` | | Nimble | `NIMBLE_API_KEY` | `nimble` | +| Scavio | `SCAVIO_API_KEY` | `scavio` | | Grounding with Bing (Microsoft Foundry) | `BING_GROUNDING_PROJECT_ENDPOINT`, `BING_GROUNDING_MODEL` (required), `api_key` or `BING_GROUNDING_TOKEN` or azure-identity | `bing_grounding` | See the individual provider documentation for detailed setup instructions and provider-specific parameters. diff --git a/docs/search/scavio.md b/docs/search/scavio.md new file mode 100644 index 000000000..647b9fee7 --- /dev/null +++ b/docs/search/scavio.md @@ -0,0 +1,87 @@ +# Scavio Search + +**Get API Key:** [https://dashboard.scavio.dev/sign-up](https://dashboard.scavio.dev/sign-up) + +Scavio returns Google web search results for any query. It covers the whole web, so it works as a replacement for a `google_pse` engine set to "Search the entire web", which Google discontinues on January 1, 2027. + +## LiteLLM Python SDK + +```python showLineNumbers title="Scavio Search" +import os +from litellm import search + +os.environ["SCAVIO_API_KEY"] = "..." + +response = search( + query="latest AI developments", + search_provider="scavio", + max_results=5 +) +``` + +## LiteLLM AI Gateway + +### 1. Setup config.yaml + +```yaml showLineNumbers title="config.yaml" +model_list: + - model_name: gpt-5.6 + litellm_params: + model: gpt-5.6 + api_key: os.environ/OPENAI_API_KEY + +search_tools: + - search_tool_name: scavio-search + litellm_params: + search_provider: scavio + api_key: os.environ/SCAVIO_API_KEY +``` + +### 2. Start the proxy + +```bash +litellm --config /path/to/config.yaml + +# RUNNING on http://0.0.0.0:4000 +``` + +### 3. Test the search endpoint + +```bash showLineNumbers title="Test Request" +curl http://0.0.0.0:4000/v1/search/scavio-search \ + -H "Authorization: Bearer sk-1234" \ + -H "Content-Type: application/json" \ + -d '{ + "query": "latest AI developments", + "max_results": 5 + }' +``` + +## How the unified parameters map + +`country` becomes Google's `gl` (lower-cased). `search_domain_filter` is folded into the query as `site:` operators, and a `-` prefix turns an entry into a `-site:` exclusion. Scavio returns one page of Google results per call, about ten organic results, so `max_results` caps the returned list rather than fetching more. `max_tokens_per_page` has no Scavio equivalent and is dropped. + +## Provider-specific Parameters + +```python showLineNumbers title="Scavio Search with Provider-specific Parameters" +import os +from litellm import search + +os.environ["SCAVIO_API_KEY"] = "..." + +response = search( + query="best coffee shops", + search_provider="scavio", + max_results=5, + # Scavio-specific parameters + hl="fr", # interface language + location="Paris,Ile-de-France,France", # canonical location name + device="mobile", # 'desktop' or 'mobile' + time_period="last_week", # 'last_hour', 'last_day', 'last_week', 'last_month', 'last_year' + start=10 # result offset: 10 is page 2 +) +``` + +`resolve_ai_overview` defaults to `false` here, since only organic results are returned and resolving an AI Overview adds a second request. See the [Scavio Google Search API reference](https://scavio.dev/docs/search-api) for the full parameter set, including `google_domain`, `uule`, `lr`, `cr`, `safe`, `nfpr` and `filter`. + +To point at a different endpoint, set `api_base` in the tool's `litellm_params`. The default is `https://api.scavio.dev`. diff --git a/sidebars.js b/sidebars.js index e3b703a6a..4e67c663c 100644 --- a/sidebars.js +++ b/sidebars.js @@ -1112,6 +1112,7 @@ const sidebars = { "search/agentcore", "search/nimble", "search/bing_grounding", + "search/scavio", ] }, "skills",