ScavioScavio
ProductoPreciosDocumentación
Iniciar sesionComenzar
  1. Inicio
  2. Tutoriales
  3. Cómo solucionar el bloqueo de Hermes SearXNG con API Fallback
Tutorial

Cómo solucionar el bloqueo de Hermes SearXNG con API Fallback

Repare el bloqueo y la limitación de velocidad del agente Hermes SearXNG. Agregue API alternativa para que la búsqueda nunca falle. Guía de reemplazo directo.

Obtener clave API gratisDocumentacion API

Las instancias de SearXNG con frecuencia son bloqueadas por los motores de búsqueda, lo que hace que los agentes de Hermes pierdan por completo la capacidad de búsqueda. Este tutorial agrega una API alternativa que se activa cuando SearXNG está bloqueado, tiene velocidad limitada o devuelve errores. El agente sigue trabajando independientemente del estado de SearXNG y el respaldo de API cuesta $0,005 por consulta.

Requisitos previos

  • Python 3.8+
  • solicita biblioteca
  • Una clave API de Scavio de scavio.dev
  • Agente Hermes con SearXNG configurado

Guia paso a paso

Paso 1: Detectar fallas de SearXNG

Cree un verificador de estado que detecte cuando SearXNG está bloqueado o falla.

Python
import os, requests, time, json
from datetime import datetime

SEARXNG_URL = os.environ.get('SEARXNG_URL', 'http://localhost:8888')
API_KEY = os.environ['SCAVIO_API_KEY']
SH = {'x-api-key': API_KEY, 'Content-Type': 'application/json'}

def check_searxng_health():
    """Check if SearXNG is responsive and returning results."""
    try:
        resp = requests.get(f'{SEARXNG_URL}/search',
            params={'q': 'test', 'format': 'json'}, timeout=5)
        if resp.status_code != 200:
            return {'healthy': False, 'reason': f'HTTP {resp.status_code}'}
        data = resp.json()
        if not data.get('results'):
            return {'healthy': False, 'reason': 'No results (likely blocked)'}
        return {'healthy': True, 'results': len(data['results'])}
    except requests.exceptions.ConnectionError:
        return {'healthy': False, 'reason': 'Connection refused (SearXNG down)'}
    except requests.exceptions.Timeout:
        return {'healthy': False, 'reason': 'Timeout (SearXNG overloaded)'}
    except Exception as e:
        return {'healthy': False, 'reason': str(e)[:50]}

def search_api_fallback(query, num_results=5):
    """Scavio API fallback when SearXNG fails."""
    resp = requests.post('https://api.scavio.dev/api/v1/search',
        headers=SH, json={'query': query, 'country_code': 'us'}, timeout=10)
    resp.raise_for_status()
    data = resp.json()
    return [{'title': r.get('title', ''), 'url': r.get('link', ''),
             'content': r.get('snippet', '')} for r in data.get('organic_results', [])[:num_results]]

health = check_searxng_health()
print(f'SearXNG status: {"healthy" if health["healthy"] else "UNHEALTHY"}')
if not health['healthy']:
    print(f'  Reason: {health["reason"]}')
    print(f'  Fallback: Scavio API ready ($0.005/query)')

Paso 2: Construya el enrutador de búsqueda inteligente

Enruta las búsquedas a SearXNG cuando esté en buen estado, API cuando no.

Python
class SmartSearchRouter:
    def __init__(self):
        self.searxng_failures = 0
        self.last_check = 0
        self.check_interval = 300  # Re-check SearXNG every 5 min
        self.api_calls = 0
    
    def search(self, query, num_results=5):
        # Try SearXNG first if it has been healthy recently
        if self.searxng_failures < 3 or time.time() - self.last_check > self.check_interval:
            try:
                resp = requests.get(f'{SEARXNG_URL}/search',
                    params={'q': query, 'format': 'json', 'engines': 'google'},
                    timeout=5)
                if resp.status_code == 200:
                    data = resp.json()
                    results = data.get('results', [])
                    if results:
                        self.searxng_failures = 0
                        return {'provider': 'searxng', 'results': [
                            {'title': r.get('title', ''), 'url': r.get('url', ''),
                             'content': r.get('content', '')}
                            for r in results[:num_results]
                        ]}
                self.searxng_failures += 1
                self.last_check = time.time()
            except Exception:
                self.searxng_failures += 1
                self.last_check = time.time()
        # Fallback to API
        results = search_api_fallback(query, num_results)
        self.api_calls += 1
        return {'provider': 'scavio_api', 'results': results}

router = SmartSearchRouter()

# Simulate searches
for q in ['python async tutorial', 'FastAPI deployment', 'database migration tools']:
    result = router.search(q)
    print(f'  [{result["provider"]:12}] {q:30} | {len(result["results"])} results')

print(f'\nAPI fallback calls: {router.api_calls}')
print(f'API cost so far: ${router.api_calls * 0.005:.3f}')

Paso 3: Reemplace la búsqueda de Hermes con el enrutador inteligente

Cambie la herramienta de búsqueda Hermes para usar el enrutador inteligente en lugar del SearXNG directo.

Python
def patch_hermes_search():
    """Replace Hermes SearXNG search with smart router."""
    router = SmartSearchRouter()
    
    def hermes_search_tool(query, num_results=5):
        """Drop-in replacement for Hermes search tool."""
        result = router.search(query, num_results)
        # Format in SearXNG response style for compatibility
        return {
            'results': result['results'],
            'number_of_results': len(result['results']),
            '_provider': result['provider'],
        }
    
    return hermes_search_tool

# Apply the patch
search = patch_hermes_search()

# Test with simulated SearXNG failure
print('Testing with SearXNG down...')
result = search('how to fix SearXNG blocking')
print(f'  Provider: {result["_provider"]}')
print(f'  Results: {result["number_of_results"]}')
for r in result['results'][:3]:
    print(f'    {r["title"][:50]}')

print(f'\n  SearXNG blocking fix:')
print(f'    Problem: SearXNG gets blocked by Google, returns 0 results')
print(f'    Solution: Smart router falls back to Scavio API')
print(f'    Cost: $0.005/query (only when SearXNG is down)')
print(f'    Latency: ~300ms API vs 2-5s SearXNG')

Ejemplo en Python

Python
import os, requests
SH = {'x-api-key': os.environ['SCAVIO_API_KEY'], 'Content-Type': 'application/json'}

def search_fallback(query):
    """Use when SearXNG is blocked."""
    data = requests.post('https://api.scavio.dev/api/v1/search',
        headers=SH, json={'query': query, 'country_code': 'us'}, timeout=10).json()
    return [{'title': r['title'], 'url': r['link'], 'content': r.get('snippet', '')}
            for r in data.get('organic_results', [])[:5]]

for r in search_fallback('SearXNG alternative'):
    print(f'{r["title"][:50]}')
print('SearXNG fallback active. $0.005/query.')

Ejemplo en JavaScript

JavaScript
const SH = { 'x-api-key': process.env.SCAVIO_API_KEY, 'Content-Type': 'application/json' };
// Fallback when SearXNG is blocked
const data = await fetch('https://api.scavio.dev/api/v1/search', {
  method: 'POST', headers: SH,
  body: JSON.stringify({ query: 'SearXNG alternative', country_code: 'us' })
}).then(r => r.json());
(data.organic_results || []).slice(0, 5).forEach(r => console.log(r.title));
console.log('SearXNG fallback ready.');

Salida esperada

JSON
SearXNG status: UNHEALTHY
  Reason: Connection refused (SearXNG down)
  Fallback: Scavio API ready ($0.005/query)

  [scavio_api  ] python async tutorial          | 5 results
  [scavio_api  ] FastAPI deployment              | 5 results
  [scavio_api  ] database migration tools        | 5 results

API fallback calls: 3
API cost so far: $0.015

Testing with SearXNG down...
  Provider: scavio_api
  Results: 5

  SearXNG blocking fix:
    Problem: SearXNG gets blocked by Google, returns 0 results
    Solution: Smart router falls back to Scavio API
    Cost: $0.005/query (only when SearXNG is down)
    Latency: ~300ms API vs 2-5s SearXNG

Tutoriales relacionados

  • Cómo agregar búsqueda API a Hermes sin navegador
  • Cómo crear un canal de investigación de Hermes utilizando la API de búsqueda
  • Cómo migrar de SearXNG a API Search

Preguntas frecuentes

La mayoria de los desarrolladores completan este tutorial en 15 a 30 minutos. Necesitaras una clave API de Scavio (el plan gratuito funciona) y un entorno de Python o JavaScript.

Python 3.8+. solicita biblioteca. Una clave API de Scavio de scavio.dev. Agente Hermes con SearXNG configurado. Una clave API de Scavio te da 50 creditos gratuitos al registrarte.

Si. El plan gratuito incluye 50 creditos al registrarte, mas que suficiente para completar este tutorial y crear un prototipo funcional.

Scavio tiene un paquete nativo de LangChain (langchain-scavio), un servidor MCP y una API REST simple que funciona con cualquier cliente HTTP. Este tutorial usa the raw REST API, pero puedes adaptarlo al framework que prefieras.

Recursos relacionados

Best Of

La mejor API de búsqueda para el agente Hermes en 2026

Read more
Best Of

Las mejores API de búsqueda después de los cambios en el modo AI de Google I/O 2026

Read more
Glossary

Panorama de proveedores de API de búsqueda (2026)

Read more
Use Case

Confiabilidad de la API de búsqueda de agentes de Hermes

Read more
Glossary

Comparación gratuita de niveles de API de búsqueda

Read more
Comparison

Search APIs (Scavio, Tavily, SerpAPI) vs Headless Browser (Playwright, Puppeteer, Browserbase)

Read more

Empieza a construir

Repare el bloqueo y la limitación de velocidad del agente Hermes SearXNG. Agregue API alternativa para que la búsqueda nunca falle. Guía de reemplazo directo.

Obtener clave API gratuitaLeer la documentacion
ScavioScavio

API de busqueda en tiempo real para agentes de IA. Busca en todas las plataformas, no solo en Google.

Producto

  • Funciones
  • Precios
  • Panel
  • Afiliados

Desarrolladores

  • Documentacion
  • Referencia de API
  • Inicio rapido
  • Integracion MCP
  • Python SDK

Alternativas

  • Alternativa a Tavily
  • Alternativa a SerpAPI
  • Alternativa a Firecrawl
  • Alternativa a Exa

Herramientas

  • Formateador JSON
  • cURL a codigo
  • Contador de tokens
  • Todas las herramientas

© 2026 Scavio. Todos los derechos reservados.

Featured on TAAFT
Terminos de servicioPolitica de privacidad