ScavioScavio
ProductoPreciosDocumentación
Iniciar sesionComenzar
  1. Inicio
  2. Tutoriales
  3. Cómo migrar de Tavily a Scavio después de la adquisición de Nebius
Tutorial

Cómo migrar de Tavily a Scavio después de la adquisición de Nebius

Cambie de Tavily a Scavio después de que Nebius adquiriera Tavily en febrero de 2026. Guía de migración directa con ejemplos de código para LangChain, RAG y agentes.

Obtener clave API gratisDocumentacion API

Nebius adquirió Tavily en febrero de 2026, lo que generó dudas sobre los cambios de precios, el manejo de datos y la disponibilidad a largo plazo. Si desea diversificarse fuera de Tavily o necesita una búsqueda multiplataforma más allá de los resultados web, Scavio ofrece Google, Amazon, YouTube, Walmart, Reddit y TikTok desde un punto final. Tavily cobra $30 al mes por 10.000 solicitudes. Scavio cobra $30 al mes por 7.000 créditos a $0,005 cada uno, pero cubre seis plataformas en lugar de solo la búsqueda web. Este tutorial explica la migración.

Requisitos previos

  • Una integración de Tavily existente para migrar
  • Python 3.9+ instalado
  • Una clave API de Scavio de scavio.dev
  • solicita biblioteca instalada

Guia paso a paso

Paso 1: Asignar llamadas API de Tavily a equivalentes de Scavio

Tavily utiliza un punto final de búsqueda con parámetros de tema y profundidad de búsqueda. Scavio utiliza un punto final POST con consulta y num_results. Mapee las diferencias clave.

Python
# Tavily API call (what you currently have)
# POST https://api.tavily.com/search
# Body: {"api_key": "tvly-...", "query": "...", "search_depth": "advanced",
#        "topic": "general", "max_results": 5}
#
# Scavio API call (replacement)
# POST https://api.scavio.dev/api/v1/search
# Headers: {"x-api-key": "your-key"}
# Body: {"query": "...", "country_code": "us", "num_results": 5}

import os, requests

SCAVIO_KEY = os.environ['SCAVIO_API_KEY']

def tavily_to_scavio_search(query: str, max_results: int = 5, **kwargs) -> dict:
    """Drop-in replacement for tavily.search()."""
    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': max_results})
    resp.raise_for_status()
    data = resp.json()
    # Return Tavily-compatible response shape
    return {
        'query': query,
        'results': [{'title': r['title'], 'url': r['link'],
                     'content': r.get('snippet', ''), 'score': 0.9 - (i * 0.05)}
                    for i, r in enumerate(data.get('organic_results', []))]
    }

result = tavily_to_scavio_search('AI agent frameworks 2026')
print(f'Query: {result["query"]}')
for r in result['results']:
    print(f'  {r["title"][:60]} (score: {r["score"]:.2f})')

Paso 2: Reemplazar el cliente Tavily Python

Si utiliza el paquete tavily-python, cree una clase contenedora compatible que imite a TavilyClient. Su código existente llama a los mismos métodos pero en su lugar accede a Scavio.

Python
class ScavioSearchClient:
    """Drop-in replacement for TavilyClient."""
    def __init__(self, api_key: str = None):
        self.api_key = api_key or os.environ['SCAVIO_API_KEY']
        self.base_url = 'https://api.scavio.dev/api/v1/search'

    def search(self, query: str, max_results: int = 5, **kwargs) -> dict:
        resp = requests.post(self.base_url,
            headers={'x-api-key': self.api_key, 'Content-Type': 'application/json'},
            json={'query': query, 'country_code': 'us', 'num_results': max_results})
        resp.raise_for_status()
        organic = resp.json().get('organic_results', [])
        return {
            'query': query,
            'results': [{'title': r['title'], 'url': r['link'],
                         'content': r.get('snippet', ''), 'score': 0.9}
                        for r in organic]
        }

    def get_search_context(self, query: str, max_results: int = 5, **kwargs) -> str:
        results = self.search(query, max_results)
        return '\n\n'.join(f"{r['title']}\n{r['content']}\nSource: {r['url']}"
                            for r in results['results'])

# Replace: client = TavilyClient(api_key=TAVILY_KEY)
client = ScavioSearchClient()
context = client.get_search_context('latest Python release 2026')
print(context[:300])

Paso 3: Actualizar la integración de LangChain

Si usa TavilySearchResults en LangChain, cámbielo por una herramienta Scavio personalizada. La interfaz de la herramienta es idéntica, por lo que su cadena o código de agente sigue siendo el mismo.

Python
from langchain_core.tools import tool

@tool
def search(query: str) -> str:
    """Search the web for current information. Returns 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']}\nSnippet: {r.get('snippet', '')}\nURL: {r['link']}"
        for r in results
    )

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

# AFTER (Scavio):
tools = [search]

# Your agent code stays the same
print(f'Tool name: {tools[0].name}')
print(f'Tool description: {tools[0].description}')
result = tools[0].invoke('best AI frameworks 2026')
print(result[:200])

Paso 4: Validar la migración con consultas de prueba

Ejecute sus consultas más comunes a través de ambas API y compare la calidad de los resultados. Compruebe que los títulos, fragmentos y URL estén completos.

Python
def validate_migration(queries: list[str]):
    client = ScavioSearchClient()
    print('Tavily -> Scavio Migration Validation')
    print('=' * 45)
    all_pass = True
    for q in queries:
        result = client.search(q, max_results=5)
        items = result.get('results', [])
        has_results = len(items) > 0
        has_content = all(r.get('content') for r in items[:3])
        has_urls = all(r.get('url') for r in items)
        status = 'PASS' if (has_results and has_urls) else 'FAIL'
        if status == 'FAIL':
            all_pass = False
        print(f'\n[{status}] {q}')
        print(f'  Results: {len(items)}, Content: {has_content}, URLs: {has_urls}')
        if items:
            print(f'  Top: {items[0]["title"][:50]}')
    print(f'\nOverall: {"PASS" if all_pass else "SOME FAILURES"}')
    print(f'\nPricing comparison:')
    print(f'  Tavily: $30/mo for 10K searches (web only)')
    print(f'  Scavio: $30/mo for 7K credits (6 platforms)')

validate_migration([
    'latest AI news 2026',
    'best python web framework',
    'how to deploy on railway',
])

Ejemplo en Python

Python
import os, requests

SCAVIO_KEY = os.environ['SCAVIO_API_KEY']

class ScavioSearchClient:
    def __init__(self, api_key=None):
        self.key = api_key or SCAVIO_KEY
    def search(self, query, max_results=5):
        resp = requests.post('https://api.scavio.dev/api/v1/search',
            headers={'x-api-key': self.key, 'Content-Type': 'application/json'},
            json={'query': query, 'country_code': 'us', 'num_results': max_results})
        return {'results': [{'title': r['title'], 'url': r['link'],
                'content': r.get('snippet', '')} for r in resp.json().get('organic_results', [])]}
    def get_search_context(self, query, max_results=5):
        results = self.search(query, max_results)
        return '\n'.join(f"{r['title']}: {r['content']}" for r in results['results'])

client = ScavioSearchClient()
print(client.get_search_context('AI frameworks 2026'))

Ejemplo en JavaScript

JavaScript
const SCAVIO_KEY = process.env.SCAVIO_API_KEY;

class ScavioSearchClient {
  constructor(apiKey) { this.key = apiKey || SCAVIO_KEY; }
  async search(query, maxResults = 5) {
    const resp = await fetch('https://api.scavio.dev/api/v1/search', {
      method: 'POST',
      headers: { 'x-api-key': this.key, 'Content-Type': 'application/json' },
      body: JSON.stringify({ query, country_code: 'us', num_results: maxResults })
    });
    const data = await resp.json();
    return { results: (data.organic_results || []).map(r => ({
      title: r.title, url: r.link, content: r.snippet || ''
    }))};
  }
  async getSearchContext(query, maxResults = 5) {
    const { results } = await this.search(query, maxResults);
    return results.map(r => `${r.title}: ${r.content}`).join('\n');
  }
}

const client = new ScavioSearchClient();
client.getSearchContext('AI frameworks 2026').then(console.log);

Salida esperada

JSON
Tavily -> Scavio Migration Validation
=============================================

[PASS] latest AI news 2026
  Results: 5, Content: True, URLs: True
  Top: AI News Roundup: Top Developments in 2026

[PASS] best python web framework
  Results: 5, Content: True, URLs: True

Overall: PASS

Pricing comparison:
  Tavily: $30/mo for 10K searches (web only)
  Scavio: $30/mo for 7K credits (6 platforms)

Tutoriales relacionados

  • Cómo cambiar de Tavily a Scavio en una tubería LangChain RAG
  • Cómo agregar una API de búsqueda a OpenWebUI
  • Cómo agregar conexión a tierra de búsqueda a una canalización RAG de LangChain en 2026
  • 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.

Una integración de Tavily existente para migrar. Python 3.9+ instalado. Una clave API de Scavio de scavio.dev. solicita biblioteca instalada. 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

Mejores reemplazos de Tavily después de los recortes del límite de tarifas (2026)

Read more
Use Case

Migración de LangChain Tavily

Read more
Glossary

Adquisición de Nebius-Tavily (febrero de 2026)

Read more
Comparison

Tavily vs Scavio

Read more
Comparison

Tavily vs Scavio

Read more
Best Of

Las mejores alternativas de Tavily para la API de búsqueda en 2026

Read more

Empieza a construir

Cambie de Tavily a Scavio después de que Nebius adquiriera Tavily en febrero de 2026. Guía de migración directa con ejemplos de código para LangChain, RAG y agentes.

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