ScavioScavio
产品定价文档
登录开始使用
  1. 首页
  2. 教程
  3. 如何添加 Tavily 或 Scavio 作为 Gemini 工作流程的备份搜索
教程

如何添加 Tavily 或 Scavio 作为 Gemini 工作流程的备份搜索

当 Gemini 内置搜索失败或返回空时,添加 Tavily 或 Scavio 作为备份搜索。修复 2026 年双子座接地问题。

获取免费API密钥API文档

自 2026 年初以来,Gemini 出现了多个搜索接地问题:4 月 8 日 2.0 Flash google_search 的空响应错误、3 月 3 日的图像接地回归以及注册外部工具时 Flash 无法可靠地触发搜索。 Gemini 3 Pro有所改进,但也未能幸免。本教程使用外部 API 添加备份搜索层。

前置条件

  • 双子座 API 访问
  • Scavio API 密钥
  • 可选:Tavily API 密钥
  • Python 3.8+

操作指南

步骤 1: 检测 Gemini 搜索失败模式

识别特定的故障模式。

Python
def detect_gemini_failure(response):
    # Mode 1: No candidates at all
    if not response.candidates:
        return 'no_candidates'
    candidate = response.candidates[0]
    # Mode 2: No grounding metadata (search did not trigger)
    grounding = getattr(candidate, 'grounding_metadata', None)
    if not grounding:
        return 'no_grounding'
    # Mode 3: Empty grounding chunks (April 2026 bug)
    if not grounding.grounding_chunks:
        return 'empty_chunks'
    # Mode 4: Grounding present but no search queries logged
    if not grounding.search_entry_point:
        return 'no_search_queries'
    return None  # Search worked

步骤 2: 构建备份搜索功能

当 Gemini 出现故障时,致电 Scavio。 Tavily($0.008/学分)也可以作为备份。

Python
import requests, os
H = {'x-api-key': os.environ['SCAVIO_API_KEY']}

def backup_search(query, provider='scavio'):
    if provider == 'scavio':
        # $0.005 per search
        data = requests.post('https://api.scavio.dev/api/v1/search',
            headers=H,
            json={'platform': 'google', 'query': query}).json()
        return data.get('organic_results', [])
    elif provider == 'tavily':
        # $0.008 per credit (Nebius-owned since Feb 2026)
        data = requests.post('https://api.tavily.com/search',
            json={'api_key': os.environ.get('TAVILY_API_KEY', ''),
                  'query': query}).json()
        return data.get('results', [])

步骤 3: 将备份集成到 Gemini 工作流程中

通过自动备份来完成您的 Gemini 通话。

Python
import google.generativeai as genai

genai.configure(api_key=os.environ['GEMINI_API_KEY'])
model = genai.GenerativeModel('gemini-2.0-flash',
    tools=[genai.Tool(google_search=genai.GoogleSearch())])

def gemini_with_backup(query):
    response = model.generate_content(query)
    failure = detect_gemini_failure(response)
    if failure:
        print(f'Gemini search failed: {failure}. Using backup.')
        backup_results = backup_search(query)
        # Re-query Gemini with search results injected
        augmented = f'Based on these search results, answer: {query}\n\nResults: {backup_results}'
        return model.generate_content(augmented)
    return response

步骤 4: 记录失败率以供分析

跟踪最常发生的故障模式。

Python
import json, datetime
failure_log = []

def log_failure(query, failure_mode, backup_provider):
    entry = {'ts': datetime.datetime.now().isoformat(), 'query': query,
             'failure_mode': failure_mode, 'backup': backup_provider}
    with open('gemini_failures.jsonl', 'a') as f:
        f.write(json.dumps(entry) + '\n')

Python 示例

Python
import os, requests
import google.generativeai as genai

genai.configure(api_key=os.environ['GEMINI_API_KEY'])
model = genai.GenerativeModel('gemini-2.0-flash',
    tools=[genai.Tool(google_search=genai.GoogleSearch())])
H = {'x-api-key': os.environ['SCAVIO_API_KEY']}

def search(query):
    resp = model.generate_content(query)
    g = getattr(resp.candidates[0], 'grounding_metadata', None) if resp.candidates else None
    if not g or not g.grounding_chunks:
        return requests.post('https://api.scavio.dev/api/v1/search',
            headers=H, json={'platform': 'google', 'query': query}).json()
    return resp

JavaScript 示例

JavaScript
// When Gemini fails, fallback to Scavio:
const backup = await fetch('https://api.scavio.dev/api/v1/search', {
  method: 'POST',
  headers: {'x-api-key': process.env.SCAVIO_API_KEY, 'Content-Type': 'application/json'},
  body: JSON.stringify({platform: 'google', query: userQuery})
}).then(r => r.json());

预期输出

JSON
Gemini workflow with automatic backup search. Detects 4 failure modes (no candidates, no grounding, empty chunks, no search queries). Falls back to Scavio ($0.005) or Tavily ($0.008).

相关教程

  • 当 Gemini 拒绝搜索时如何添加搜索回退
  • 如何构建具有回退功能的多提供商搜索路由器

常见问题

大多数开发者在15到30分钟内完成本教程。您需要一个Scavio API密钥(免费套餐即可)和可用的Python或JavaScript环境。

双子座 API 访问. Scavio API 密钥. 可选:Tavily API 密钥. Python 3.8+. Scavio API密钥注册即送50个免费积分。

可以。免费套餐注册即送50个积分,完全足够完成本教程并构建一个可运行的原型解决方案。

Scavio提供原生LangChain包(langchain-scavio)、MCP服务器以及适用于任何HTTP客户端的REST API。本教程使用 the raw REST API, 但您可以根据需要适配您选择的框架。

相关资源

Best Of

Google I/O 2026 AI模式变化后最佳搜索API

Read more
Glossary

搜索 API 供应商格局(2026)

Read more
Best Of

2026 年 Gemini 搜索基础备用最佳搜索 API

Read more
Comparison

Brave Search API vs Scavio

Read more
Solution

Gemini搜索失败代理降级方案

Read more
Solution

从 Brave Search API 迁移到 Scavio 获得更好覆盖

Read more

开始构建

当 Gemini 内置搜索失败或返回空时,添加 Tavily 或 Scavio 作为备份搜索。修复 2026 年双子座接地问题。

获取免费API密钥阅读文档
ScavioScavio

面向AI智能体的实时搜索API。搜索所有平台,不仅仅是Google。

产品

  • 功能
  • 定价
  • 控制台
  • 联盟计划

开发者

  • 文档
  • API参考
  • 快速开始
  • MCP集成
  • Python SDK

替代方案

  • Tavily替代方案
  • SerpAPI替代方案
  • Firecrawl替代方案
  • Exa替代方案

工具

  • JSON格式化
  • cURL转代码
  • Token计数器
  • 全部工具

© 2026 Scavio. 保留所有权利。

Featured on TAAFT
服务条款隐私政策