Una publicación de r/crewai describió un caché SQLite asíncrono que devuelve JSON en 50 ms para consultas repetidas. Este tutorial conecta el mismo patrón a la salida JSON escrita de Scavio.
Requisitos previos
- Python 3.10+
- Clave API de Scavio
Guia paso a paso
Paso 1: Inicializar la tabla de caché
Clave = consulta + superficie; valor = JSON; TTL mediante marca de tiempo.
import sqlite3, time
conn = sqlite3.connect('cache.db')
conn.execute('CREATE TABLE IF NOT EXISTS cache(key TEXT PRIMARY KEY, payload TEXT, ts REAL)')Paso 2: Búsqueda de caché con TTL
TTL predeterminado: 1 hora para SERP, 6 horas para páginas estáticas.
def get(key, ttl=3600):
row = conn.execute('SELECT payload, ts FROM cache WHERE key=?', (key,)).fetchone()
if row and time.time() - row[1] < ttl:
import json
return json.loads(row[0])
return NonePaso 3: Escritura de caché en caso de error
Patrón de inserción.
def set_(key, payload):
import json
conn.execute('INSERT OR REPLACE INTO cache VALUES (?, ?, ?)', (key, json.dumps(payload), time.time()))
conn.commit()Paso 4: Llamada de búsqueda Wrap Scavio
La clave de caché incluye punto final + consulta.
import requests, os
API_KEY = os.environ['SCAVIO_API_KEY']
def search_cached(query, ttl=3600):
key = f'search::{query}'
cached = get(key, ttl)
if cached: return cached
data = requests.post('https://api.scavio.dev/api/v1/search',
headers={'x-api-key': API_KEY}, json={'query': query}).json()
set_(key, data)
return dataPaso 5: Medir la tasa de aciertos
Realice un seguimiento de las visitas para saber si el caché está dando sus frutos.
stats = {'hits': 0, 'misses': 0}
# increment in get() when row exists, increment misses otherwise.Ejemplo en Python
# Use search_cached('your query') as the drop-in replacement for direct Scavio calls.
result = search_cached('mcp server best practices 2026')
print(len(result.get('organic_results', [])))Ejemplo en JavaScript
// JS equivalent uses better-sqlite3 with the same key/value/ttl shape.Salida esperada
Cache hit returns in single-digit ms. Cache miss costs one Scavio query. For agents that repeat queries, hit rate of 40-70% is common.