ScavioScavio
ProductoPreciosDocumentación
Iniciar sesionComenzar
  1. Inicio
  2. Tutoriales
  3. Cómo construir RAG híbrido con búsqueda local + API
Tutorial

Cómo construir RAG híbrido con búsqueda local + API

Aprenda a crear un sistema RAG que busque primero un índice de documentos local y recurra a una API de búsqueda para preguntas fuera del corpus.

Obtener clave API gratisDocumentacion API

Los sistemas RAG que solo buscan en un índice local no pueden responder preguntas fuera de su corpus. Este tutorial crea un sistema de recuperación híbrido: búsqueda de documentos locales para preguntas de dominio conocido (rápido, gratuito, privado) con respaldo automático a la API de búsqueda de Scavio para preguntas de dominio abierto (datos web actuales). El umbral de confianza determina cuándo recurrir y las etiquetas de origen permiten que el atributo LLM responda correctamente.

Requisitos previos

  • Python 3.8+ instalado
  • Un índice de búsqueda local (Meilisearch, Elasticsearch o SQLite FTS)
  • solicita biblioteca instalada
  • Una clave API de Scavio de scavio.dev

Guia paso a paso

Paso 1: Configurar la función de búsqueda local

Defina una función que busque en su índice local y devuelva resultados con puntuaciones de confianza.

Python
# Example with Meilisearch (replace with your index):
import meilisearch

local_client = meilisearch.Client('http://localhost:7700')

def local_search(query: str, top_k: int = 3) -> list:
    results = local_client.index('docs').search(query, {'limit': top_k})
    return [{
        'text': hit['content'],
        'title': hit.get('title', ''),
        'score': hit.get('_rankingScore', 0),
        'source': 'local'
    } for hit in results['hits']]

Paso 2: Configurar la función de búsqueda API

Defina una función que busque a través de Scavio cuando los resultados locales sean insuficientes.

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

def api_search(query: str, platform: str = 'google') -> list:
    resp = requests.post('https://api.scavio.dev/api/v1/search', headers=H,
        json={'platform': platform, 'query': query}, timeout=10)
    return [{
        'text': r.get('snippet', ''),
        'title': r.get('title', ''),
        'url': r.get('link', ''),
        'source': 'web'
    } for r in resp.json().get('organic', [])[:3]]

Paso 3: Construye el perro perdiguero híbrido

Ruta a local o API según el umbral de confianza.

Python
CONFIDENCE_THRESHOLD = 0.7

def hybrid_retrieve(query: str) -> dict:
    local_results = local_search(query)
    if local_results and local_results[0]['score'] >= CONFIDENCE_THRESHOLD:
        return {'source': 'local', 'results': local_results}
    web_results = api_search(query)
    if web_results:
        return {'source': 'web', 'results': web_results}
    return {'source': 'none', 'results': local_results or []}

Paso 4: Contexto de formato para el LLM

Cree una cadena de contexto rápida con etiquetas de origen para la atribución.

Python
def format_context(retrieval: dict) -> str:
    source_label = 'Internal docs' if retrieval['source'] == 'local' else 'Web search'
    lines = [f'Source: {source_label}']
    for r in retrieval['results']:
        if r.get('url'):
            lines.append(f"- {r['title']}: {r['text']} (ref: {r['url']})")
        else:
            lines.append(f"- {r['title']}: {r['text']}")
    return '\n'.join(lines)

# Use in your RAG prompt:
# context = format_context(hybrid_retrieve(user_question))
# prompt = f'{context}\n\nQuestion: {user_question}\nAnswer:'

Ejemplo en Python

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

def hybrid_rag(query, local_index, threshold=0.7):
    local = local_index.search(query, {'limit': 3})
    if local['hits'] and local['hits'][0].get('_rankingScore', 0) >= threshold:
        return {'source': 'local', 'context': [h['content'] for h in local['hits']]}
    web = requests.post('https://api.scavio.dev/api/v1/search', headers=H,
        json={'platform': 'google', 'query': query}, timeout=10).json()
    return {'source': 'web', 'context': [r['snippet'] for r in web.get('organic', [])[:3]]}

Ejemplo en JavaScript

JavaScript
async function hybridRag(query, localIndex, threshold = 0.7) {
  const local = await localIndex.search(query, {limit: 3});
  if (local.hits?.length && local.hits[0]._rankingScore >= threshold) {
    return {source: 'local', context: local.hits.map(h => h.content)};
  }
  const web = 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})
  }).then(r => r.json());
  return {source: 'web', context: (web.organic || []).slice(0, 3).map(r => r.snippet)};
}

Salida esperada

JSON
A hybrid RAG retriever that searches local docs first and falls back to web search for out-of-corpus questions.

Tutoriales relacionados

  • Cómo obtener resultados de búsqueda de Google en Python

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+ instalado. Un índice de búsqueda local (Meilisearch, Elasticsearch o SQLite FTS). solicita biblioteca instalada. Una clave API de Scavio de scavio.dev. 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

Las mejores API de búsqueda para tuberías LangChain RAG en mayo de 2026

Read more
Best Of

La mejor API SERP para SEO local en 2026

Read more
Solution

RAG local con respaldo de API de búsqueda

Read more
Use Case

Aplicación híbrida RAG local + API de búsqueda

Read more
Comparison

Local Search Index vs Search API (Scavio)

Read more
Use Case

Recuperación de búsqueda web local LLM 2026

Read more

Empieza a construir

Aprenda a crear un sistema RAG que busque primero un índice de documentos local y recurra a una API de búsqueda para preguntas fuera del corpus.

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