El problema
Firebase Genkit proporciona un marco para crear funciones de IA en Node.js y Go, pero sus opciones de base de búsqueda integradas son limitadas. La base de búsqueda Vertex AI de Google tiene un precio empresarial y requiere la configuración de Google Cloud. Los desarrolladores que crean aplicaciones Genkit necesitan una herramienta de búsqueda simple y asequible que se integre como una definición de herramienta Genkit. Sin conexión a tierra, los flujos de Genkit producen resultados basados únicamente en los datos de entrenamiento del modelo.
La solucion de Scavio
Cree una definición de herramienta Genkit que incluya la API de Scavio. Regístrelo como una herramienta en su flujo Genkit y el modelo podrá llamarlo cuando necesite datos web actuales. La herramienta devuelve resultados de búsqueda estructurados que el canal de uso de herramientas de Genkit maneja de forma nativa. Funciona con cualquier proveedor de modelos (Gemini, Claude, OpenAI) a través del sistema de herramientas independientes del modelo de Genkit.
Antes
Antes de agregar Scavio como herramienta Genkit, los resultados del flujo se limitaban a los datos de entrenamiento del modelo. Los usuarios que preguntaron sobre precios actuales, eventos recientes o disponibilidad de productos obtuvieron respuestas obsoletas o alucinadas.
Después
Después de agregar la herramienta Scavio, el flujo de Genkit llama a la búsqueda web cuando detecta consultas urgentes. Las respuestas incluyen fuentes citadas de resultados de búsqueda en vivo. La herramienta se integra en menos de 20 líneas de código de definición de herramientas Genkit.
Para quien es
Desarrolladores que crean funciones de IA con Firebase Genkit y que necesitan una base de búsqueda web. Desarrolladores de Node.js y Go que desean una integración de herramientas de búsqueda asequible sin la sobrecarga de Vertex AI.
Beneficios clave
- Definición de la herramienta Genkit en menos de 20 líneas de código
- Funciona con cualquier modelo compatible con Genkit: Gemini, Claude, OpenAI
- La respuesta JSON estructurada se asigna al formato de salida de la herramienta Genkit
- Gratis 250 consultas/mes cubre desarrollo y pruebas
- No se requiere configuración de Google Cloud o Vertex AI para la conexión a tierra web
Ejemplo en Python
import requests
API_KEY = "your_scavio_api_key"
def scavio_search_tool(query: str) -> dict:
"""Genkit-compatible search tool function."""
res = requests.post(
"https://api.scavio.dev/api/v1/search",
headers={"x-api-key": API_KEY},
json={"platform": "google", "query": query, "ai_overview": True},
timeout=15,
)
res.raise_for_status()
data = res.json()
results = []
if data.get("ai_overview"):
results.append({"type": "ai_overview", "text": data["ai_overview"]["text"]})
for r in data.get("organic", [])[:5]:
results.append({"type": "organic", "title": r.get("title", ""), "snippet": r.get("snippet", ""), "url": r.get("link", "")})
return {"query": query, "results": results}
# Use as a tool in your Genkit flow
result = scavio_search_tool("Firebase Genkit latest version 2026")
print(f"Found {len(result["results"])} results")
for r in result["results"]:
print(f" [{r["type"]}] {r.get("title", r.get("text", "")[:60])}")Ejemplo en JavaScript
const API_KEY = "your_scavio_api_key";
// Genkit tool definition
async function scavioSearchTool(query) {
const res = await fetch("https://api.scavio.dev/api/v1/search", {
method: "POST",
headers: { "x-api-key": API_KEY, "content-type": "application/json" },
body: JSON.stringify({ platform: "google", query, ai_overview: true }),
});
if (!res.ok) throw new Error(`scavio ${res.status}`);
const data = await res.json();
const results = [];
if (data.ai_overview) results.push({ type: "ai_overview", text: data.ai_overview.text });
for (const r of (data.organic ?? []).slice(0, 5)) results.push({ type: "organic", title: r.title ?? "", snippet: r.snippet ?? "", url: r.link ?? "" });
return { query, results };
}
// Register as Genkit tool:
// ai.defineTool({ name: "webSearch", description: "Search the web", inputSchema: z.object({ query: z.string() }), outputSchema: z.any() }, async (input) => scavioSearchTool(input.query));
const result = await scavioSearchTool("Firebase Genkit latest version 2026");
result.results.forEach((r) => console.log(`[${r.type}] ${r.title ?? r.text?.slice(0, 60)}`));Plataformas utilizadas
Búsqueda web con grafo de conocimiento, PAA y resúmenes de IA