Un hilo r/n8n solicitó una API de búsqueda que devolviera fragmentos estructurados listos para colocarse en una ventana contextual de LLM, no HTML sin formato ni significado eliminado. Este tutorial conecta el punto final /search de Scavio a un asistente Python o Node en menos de 5 minutos.
Requisitos previos
- Python 3.10+ o Nodo 20+
- Clave API de Scavio (250 créditos gratis/mes)
Guia paso a paso
Paso 1: Obtenga su clave API
Regístrese en scavio.dev. El nivel gratuito devuelve 250 créditos al mes, sin tarjeta.
export SCAVIO_API_KEY=sk_...Paso 2: Realizar la llamada de búsqueda
PUBLICAR en /api/v1/search con el encabezado x-api-key.
import os, requests
API_KEY = os.environ['SCAVIO_API_KEY']
def search(query):
r = requests.post('https://api.scavio.dev/api/v1/search',
headers={'x-api-key': API_KEY},
json={'query': query})
return r.json()Paso 3: Extraiga solo los campos que el LLM necesita
Título, fragmento, enlace. Deja el resto.
def trim(results):
return [{'title': r['title'], 'snippet': r['snippet'], 'url': r['link']}
for r in results.get('organic_results', [])[:5]]Paso 4: Inyectar en el mensaje
Pase resultados recortados como parte del contexto del sistema.
context = '\n'.join(f'- {r["title"]}: {r["snippet"]} ({r["url"]})' for r in trim(search('reddit api alternatives 2026')))
prompt = f'Use this context to answer the question.\n\n{context}\n\nQuestion: which APIs replace Reddit\'s direct search?'Paso 5: Emparejar con el punto final de extracción cuando se necesita más contexto
Obtenga el resultado superior como rebaja.
def fetch(url):
r = requests.post('https://api.scavio.dev/api/v1/extract',
headers={'x-api-key': API_KEY}, json={'url': url, 'format': 'markdown'})
return r.json().get('markdown', '')Ejemplo en Python
import os, requests
API_KEY = os.environ['SCAVIO_API_KEY']
def ask_with_search(question):
s = requests.post('https://api.scavio.dev/api/v1/search',
headers={'x-api-key': API_KEY}, json={'query': question}).json()
ctx = '\n'.join(f'{r["title"]}: {r["snippet"]}' for r in s.get('organic_results', [])[:5])
return ctx
print(ask_with_search('what is mcp'))Ejemplo en JavaScript
const API_KEY = process.env.SCAVIO_API_KEY;
export async function search(q) {
const r = await fetch('https://api.scavio.dev/api/v1/search', {
method: 'POST',
headers: { 'x-api-key': API_KEY, 'Content-Type': 'application/json' },
body: JSON.stringify({ query: q })
});
return r.json();
}Salida esperada
Five clean snippets per query, ready to inject into the LLM's context. Token cost stays under 800 tokens for the search context block.