Resumen
Choosing un search API vendor sin systematic pruebas leads to regret six meses in. Este flujo de trabajo ejecuta identical consultas contra multiples search API proveedores, measures resultado calidad, latencia, y cost per consulta, y genera un comparacion informe. It prueba edge cases like non-English consultas, producto searches, y grafo de conocimiento cobertura so you pick el right vendor el first time.
Desencadenador
One-time evaluation, activado manualmente durante vendor selection.
Programación
One-time
Pasos del flujo de trabajo
Define Test Consulta Set
Crear 50+ probar consultas a traves de categorias: informational, producto, local, trending, y non-English.
Ejecutar Consultas Against Cada Vendor
Ejecutar el same consultas contra Scavio, Tavily, y Exa. Record resultados, latencia, y cost.
Puntuacion Resultado Calidad
For cada consulta, puntuacion relevance of top 5 resultados on un 1-5 scale. Rastrear cual vendors return Knowledge Graph y AI Overview datos.
Calcular Cost Per Consulta
Compute actual cost per consulta for cada vendor basado on their precios tier.
Generar Comparacion Informe
Salida un markdown tabla con calidad puntuaciones, latencia p50/p95, cost per consulta, y caracteristica cobertura per vendor.
Implementacion en Python
import requests, os, json, time
SCAVIO_KEY = os.environ["SCAVIO_API_KEY"]
SH = {"x-api-key": SCAVIO_KEY, "Content-Type": "application/json"}
TEST_QUERIES = [
{"query": "best crm for startups 2026", "category": "informational"},
{"query": "sony wh-1000xm6 price", "category": "product"},
{"query": "python asyncio tutorial", "category": "technical"},
{"query": "restaurants near times square", "category": "local"},
{"query": "latest ai agent frameworks", "category": "trending"},
]
def test_scavio(query: str) -> dict:
start = time.time()
resp = requests.post(
"https://api.scavio.dev/api/v1/search",
headers=SH,
json={"query": query, "country_code": "us"},
timeout=15,
)
latency = time.time() - start
data = resp.json()
return {
"provider": "scavio",
"latency_ms": round(latency * 1000),
"result_count": len(data.get("organic_results", [])),
"has_knowledge_graph": "knowledge_graph" in data,
"has_ai_overview": "ai_overview" in data,
"has_related_questions": "related_questions" in data,
"cost_per_query": 0.005,
}
def run_evaluation():
results = []
for tq in TEST_QUERIES:
scavio_result = test_scavio(tq["query"])
scavio_result["category"] = tq["category"]
scavio_result["query"] = tq["query"]
results.append(scavio_result)
avg_latency = sum(r["latency_ms"] for r in results) / len(results)
avg_results = sum(r["result_count"] for r in results) / len(results)
kg_rate = sum(1 for r in results if r["has_knowledge_graph"]) / len(results)
print(f"Scavio Evaluation ({len(results)} queries):")
print(f" Avg latency: {avg_latency:.0f}ms")
print(f" Avg results: {avg_results:.1f}")
print(f" Knowledge Graph rate: {kg_rate:.0%}")
print(f" Cost: {len(results) * 0.005:.3f} USD")
return results
evaluation = run_evaluation()Implementacion en JavaScript
const SH = {'x-api-key': process.env.SCAVIO_API_KEY, 'Content-Type': 'application/json'};
const TEST_QUERIES = [
{query:'best crm for startups 2026', category:'informational'},
{query:'sony wh-1000xm6 price', category:'product'},
{query:'python asyncio tutorial', category:'technical'},
{query:'restaurants near times square', category:'local'},
{query:'latest ai agent frameworks', category:'trending'},
];
async function testScavio(query) {
const start = Date.now();
const r = await fetch('https://api.scavio.dev/api/v1/search', {method:'POST', headers:SH, body:JSON.stringify({query, country_code:'us'})});
const latency = Date.now() - start;
const data = await r.json();
return {provider:'scavio', latencyMs:latency, resultCount:(data.organic_results||[]).length, hasKg:'knowledge_graph' in data, hasAio:'ai_overview' in data, hasRelated:'related_questions' in data, costPerQuery:0.005};
}
async function runEvaluation() {
const results = [];
for (const tq of TEST_QUERIES) {
const result = await testScavio(tq.query);
result.category = tq.category;
result.query = tq.query;
results.push(result);
}
const avgLatency = results.reduce((s,r)=>s+r.latencyMs,0)/results.length;
const avgResults = results.reduce((s,r)=>s+r.resultCount,0)/results.length;
const kgRate = results.filter(r=>r.hasKg).length/results.length;
console.log('Scavio Evaluation ('+results.length+' queries):');
console.log(' Avg latency: '+avgLatency.toFixed(0)+'ms');
console.log(' Avg results: '+avgResults.toFixed(1));
console.log(' KG rate: '+(kgRate*100).toFixed(0)+'%');
console.log(' Cost: $'+(results.length*0.005).toFixed(3));
return results;
}
const evaluation = await runEvaluation();Plataformas utilizadas
Búsqueda web con grafo de conocimiento, PAA y resúmenes de IA