ScavioScavio
ProductoPreciosDocumentación
Iniciar sesionComenzar
  1. Inicio
  2. Tutoriales
  3. Cómo cambiar de Tavily a Scavio en una tubería LangChain RAG
Tutorial

Cómo cambiar de Tavily a Scavio en una tubería LangChain RAG

Migre su canalización LangChain RAG de Tavily a la búsqueda de Scavio. Guía de reemplazo inmediata con código de trabajo para generación aumentada de recuperación.

Obtener clave API gratisDocumentacion API

Las canalizaciones de LangChain RAG suelen utilizar TavilySearchResults como recuperador de búsqueda web. Después de la adquisición de Nebius, cambiar a un proveedor independiente reduce el riesgo del proveedor. Scavio cae en la misma ranura de la tubería: defina una herramienta personalizada con la misma interfaz y su cadena continuará funcionando. Este tutorial muestra los cambios de código exactos para LangChain RetrievalQA, create_retrieval_chain y los patrones RAG basados ​​en agentes.

Requisitos previos

  • Python 3.9+ instalado
  • Paquetes langchain y langchain-core instalados
  • Una clave API de Scavio de scavio.dev
  • Una clave API de LLM (OpenAI o Anthropic)

Guia paso a paso

Paso 1: Crear el recuperador de búsqueda Scavio

Cree un recuperador compatible con LangChain que llame a la API de Scavio. Devuelve objetos de documento con contenido de página y metadatos, que coinciden con lo que proporciona TavilySearchResults.

Python
import os, requests
from langchain_core.documents import Document
from langchain_core.retrievers import BaseRetriever
from typing import List

SCAVIO_KEY = os.environ['SCAVIO_API_KEY']

class ScavioRetriever(BaseRetriever):
    api_key: str = ''
    num_results: int = 5

    def __init__(self, **kwargs):
        super().__init__(**kwargs)
        self.api_key = self.api_key or SCAVIO_KEY

    def _get_relevant_documents(self, query: str) -> List[Document]:
        resp = requests.post('https://api.scavio.dev/api/v1/search',
            headers={'x-api-key': self.api_key, 'Content-Type': 'application/json'},
            json={'query': query, 'country_code': 'us', 'num_results': self.num_results})
        resp.raise_for_status()
        docs = []
        for r in resp.json().get('organic_results', []):
            docs.append(Document(
                page_content=f"{r['title']}\n{r.get('snippet', '')}",
                metadata={'source': r['link'], 'title': r['title']}
            ))
        return docs

retriever = ScavioRetriever(num_results=5)
docs = retriever.invoke('LangChain RAG tutorial 2026')
for d in docs:
    print(f'{d.metadata["title"][:50]}\n  {d.metadata["source"]}')

Paso 2: Reemplace TavilySearchResults en su cadena

Cambie TavilySearchResults por una herramienta Scavio en RAG basado en agentes. El contenedor de herramientas mantiene la misma interfaz para que la configuración de su agente permanezca sin cambios.

Python
from langchain_core.tools import tool

@tool
def web_search(query: str) -> str:
    """Search the web for current information. Returns relevant results with titles, snippets, and URLs."""
    resp = requests.post('https://api.scavio.dev/api/v1/search',
        headers={'x-api-key': SCAVIO_KEY, 'Content-Type': 'application/json'},
        json={'query': query, 'country_code': 'us', 'num_results': 5})
    results = resp.json().get('organic_results', [])
    return '\n\n'.join(
        f'Title: {r["title"]}\nContent: {r.get("snippet", "")}\nSource: {r["link"]}'
        for r in results
    )

# BEFORE:
# from langchain_community.tools.tavily_search import TavilySearchResults
# tools = [TavilySearchResults(max_results=5)]

# AFTER:
tools = [web_search]

result = web_search.invoke('LangChain vs LlamaIndex 2026')
print(result[:300])

Paso 3: Actualizar una cadena RetrievalQA

Si usa RetrievalQA con Tavily como recuperador, intercambie ScavioRetriever. La interfaz de la cadena sigue siendo idéntica.

Python
from langchain.chains import RetrievalQA
from langchain_openai import ChatOpenAI

# BEFORE:
# from langchain_community.retrievers import TavilySearchAPIRetriever
# retriever = TavilySearchAPIRetriever(k=5)

# AFTER:
retriever = ScavioRetriever(num_results=5)

# The rest of your chain stays exactly the same
llm = ChatOpenAI(model='gpt-4o-mini', temperature=0)
qa_chain = RetrievalQA.from_chain_type(
    llm=llm,
    chain_type='stuff',
    retriever=retriever,
    return_source_documents=True
)

# Run a query
result = qa_chain.invoke({'query': 'What are the best RAG frameworks in 2026?'})
print(f'Answer: {result["result"][:200]}')
print(f'\nSources:')
for doc in result['source_documents'][:3]:
    print(f'  - {doc.metadata["source"]}')

Paso 4: Agregue recuperación multiplataforma para un RAG más rico

Vaya más allá de lo que ofrece Tavily agregando fuentes de Reddit y YouTube a su canal RAG. Esto brinda a la comunidad LLM opiniones y referencias en video junto con resultados web.

Python
class MultiPlatformRetriever(BaseRetriever):
    api_key: str = ''
    platforms: list = ['google', 'reddit']
    results_per_platform: int = 3

    def __init__(self, **kwargs):
        super().__init__(**kwargs)
        self.api_key = self.api_key or SCAVIO_KEY

    def _get_relevant_documents(self, query: str) -> List[Document]:
        docs = []
        site_map = {'reddit': 'reddit.com', 'youtube': 'youtube.com'}
        for platform in self.platforms:
            q = f'site:{site_map[platform]} {query}' if platform in site_map else query
            resp = requests.post('https://api.scavio.dev/api/v1/search',
                headers={'x-api-key': self.api_key, 'Content-Type': 'application/json'},
                json={'query': q, 'country_code': 'us', 'num_results': self.results_per_platform})
            for r in resp.json().get('organic_results', []):
                docs.append(Document(
                    page_content=f'[{platform.upper()}] {r["title"]}\n{r.get("snippet", "")}',
                    metadata={'source': r['link'], 'title': r['title'], 'platform': platform}
                ))
        return docs

retriever = MultiPlatformRetriever(platforms=['google', 'reddit', 'youtube'])
docs = retriever.invoke('best python web framework 2026')
for d in docs:
    print(f'[{d.metadata["platform"]}] {d.metadata["title"][:50]}')
print(f'\nCost: {len(set(d.metadata["platform"] for d in docs))} API calls = ${len(set(d.metadata["platform"] for d in docs)) * 0.005:.3f}')

Ejemplo en Python

Python
import os, requests
from langchain_core.documents import Document
from langchain_core.retrievers import BaseRetriever
from typing import List

SCAVIO_KEY = os.environ['SCAVIO_API_KEY']

class ScavioRetriever(BaseRetriever):
    api_key: str = ''
    num_results: int = 5
    def __init__(self, **kw):
        super().__init__(**kw)
        self.api_key = self.api_key or SCAVIO_KEY
    def _get_relevant_documents(self, query: str) -> List[Document]:
        resp = requests.post('https://api.scavio.dev/api/v1/search',
            headers={'x-api-key': self.api_key, 'Content-Type': 'application/json'},
            json={'query': query, 'country_code': 'us', 'num_results': self.num_results})
        return [Document(page_content=f"{r['title']}\n{r.get('snippet','')}",
                metadata={'source': r['link']}) for r in resp.json().get('organic_results', [])]

retriever = ScavioRetriever(num_results=5)
docs = retriever.invoke('RAG frameworks 2026')
for d in docs:
    print(f"{d.page_content[:60]}\n  {d.metadata['source']}")

Ejemplo en JavaScript

JavaScript
const SCAVIO_KEY = process.env.SCAVIO_API_KEY;

async function searchForRAG(query, num = 5) {
  const resp = await fetch('https://api.scavio.dev/api/v1/search', {
    method: 'POST',
    headers: { 'x-api-key': SCAVIO_KEY, 'Content-Type': 'application/json' },
    body: JSON.stringify({ query, country_code: 'us', num_results: num })
  });
  const data = await resp.json();
  return (data.organic_results || []).map(r => ({
    pageContent: `${r.title}\n${r.snippet || ''}`,
    metadata: { source: r.link, title: r.title }
  }));
}

searchForRAG('RAG frameworks 2026').then(docs => {
  docs.forEach(d => console.log(`${d.pageContent.slice(0, 60)}\n  ${d.metadata.source}`));
});

Salida esperada

JSON
LangChain RAG Tutorial: Complete Guide 2026
  https://example.com/langchain-rag-tutorial
Building Production RAG with LangChain
  https://docs.langchain.com/rag-guide

[google] Best RAG Frameworks Comparison 2026
[reddit] r/LangChain - RAG framework recommendations 2026
[youtube] RAG Tutorial: LangChain vs LlamaIndex

Cost: 3 API calls = $0.015

Tutoriales relacionados

  • Cómo migrar de Tavily a Scavio después de la adquisición de Nebius
  • Cómo agregar conexión a tierra de búsqueda a una canalización RAG de LangChain en 2026
  • Cómo agregar búsqueda en tiempo real a LangChain con langchain-scavio
  • Cómo comparar las API de búsqueda para la calidad RAG

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.9+ instalado. Paquetes langchain y langchain-core instalados. Una clave API de Scavio de scavio.dev. Una clave API de LLM (OpenAI o Anthropic). 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 LangChain, pero puedes adaptarlo al framework que prefieras.

Recursos relacionados

Use Case

Migración de LangChain Tavily

Read more
Use Case

Migración de Tavily a Scavio para flujos de trabajo de agentes

Read more
Comparison

Tavily vs Scavio

Read more
Comparison

Tavily vs Scavio

Read more
Solution

Pila de migración de Tavily a Scavio

Read more
Workflow

Tavily to Scavio Migration Workflow

Read more

Empieza a construir

Migre su canalización LangChain RAG de Tavily a la búsqueda de Scavio. Guía de reemplazo inmediata con código de trabajo para generación aumentada de recuperación.

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