ScavioScavio
ProductoPreciosDocumentación
Iniciar sesionComenzar
  1. Inicio
  2. Tutoriales
  3. Cómo conectar a tierra la salida de LLM con datos SERP en vivo
Tutorial

Cómo conectar a tierra la salida de LLM con datos SERP en vivo

Evite alucinaciones de precios y fechas en LLM obteniendo datos SERP en vivo e inyectándolos como contexto de conexión antes del mensaje. Ejemplos de Python incluidos.

Obtener clave API gratisDocumentacion API

Conectar un LLM con datos SERP en vivo significa obtener resultados de búsqueda actuales para un reclamo fáctico antes de generar una respuesta y luego inyectar los hechos extraídos en el mensaje como contexto. Esto evita alucinaciones sobre precios, fechas y disponibilidad.

Requisitos previos

  • Python 3.9+
  • Clave API de Scavio
  • SDK openai o antrópico

Guia paso a paso

Paso 1: Busque en SERP el reclamo fáctico

Antes de solicitar el LLM, ejecute una búsqueda específica para recuperar datos actuales.

Python
import requests

API_KEY = "your-scavio-api-key"

def fetch_grounding_context(claim_query: str, num_results: int = 5) -> str:
    r = requests.post(
        "https://api.scavio.dev/api/v1/search",
        json={"query": claim_query, "num_results": num_results},
        headers={"x-api-key": API_KEY},
        timeout=15
    )
    r.raise_for_status()
    results = r.json().get("organic_results", [])
    lines = []
    for i, res in enumerate(results, 1):
        lines.append(f"{i}. {res.get('title')}\n   {res.get('snippet')}\n   Source: {res.get('link')}")
    return "\n\n".join(lines)

Paso 2: Inyecte contexto de conexión a tierra en el mensaje

Anteponga los fragmentos de SERP como un bloque [CONTEXTO] para que el LLM los use en lugar de los datos de entrenamiento.

Python
def build_grounded_prompt(user_question: str, grounding_context: str) -> str:
    return f"""[CONTEXT - Retrieved {__import__('datetime').date.today()}]
{grounding_context}

[INSTRUCTIONS]
Answer the question below using ONLY the context above. If the context does not contain the answer, say "I don't have current data on this."
Do not use information from your training data for prices, dates, or availability.

[QUESTION]
{user_question}"""

context = fetch_grounding_context("GPT-4o API pricing 2026")
prompt = build_grounded_prompt("What is the current price of GPT-4o per million tokens?", context)
print(prompt[:500])

Paso 3: Llame al LLM con el mensaje fundamentado

Pase el mensaje fundamentado a cualquier LLM. La respuesta del modelo se limita a los hechos inyectados.

Python
import anthropic

client = anthropic.Anthropic(api_key="your-anthropic-key")

def grounded_answer(question: str, search_query: str = None) -> str:
    query = search_query or question
    context = fetch_grounding_context(query)
    prompt = build_grounded_prompt(question, context)
    message = client.messages.create(
        model="claude-sonnet-4-6",
        max_tokens=512,
        messages=[{"role": "user", "content": prompt}]
    )
    return message.content[0].text

answer = grounded_answer(
    "What does GPT-4o cost per million input tokens?",
    "GPT-4o API pricing per million tokens 2026"
)
print(answer)

Ejemplo en Python

Python
import requests
import anthropic
from datetime import date

SCAVIO_KEY = "your-scavio-api-key"
ANTHROPIC_KEY = "your-anthropic-key"

def fetch_serp_context(query: str, n: int = 5) -> str:
    r = requests.post(
        "https://api.scavio.dev/api/v1/search",
        json={"query": query, "num_results": n},
        headers={"x-api-key": SCAVIO_KEY},
        timeout=15
    )
    r.raise_for_status()
    results = r.json().get("organic_results", [])
    return "\n\n".join(
        f"{i}. {r.get('title')}\n   {r.get('snippet')}\n   {r.get('link')}"
        for i, r in enumerate(results, 1)
    )

def grounded_answer(question: str, search_query: str | None = None) -> dict:
    query = search_query or question
    context = fetch_serp_context(query)
    prompt = f"""[CONTEXT - {date.today()}]\n{context}\n\n[INSTRUCTIONS]\nAnswer using ONLY the context above. For prices, dates, or availability, cite the source number.\n\n[QUESTION]\n{question}"""

    client = anthropic.Anthropic(api_key=ANTHROPIC_KEY)
    msg = client.messages.create(
        model="claude-sonnet-4-6",
        max_tokens=512,
        messages=[{"role": "user", "content": prompt}]
    )
    return {"answer": msg.content[0].text, "context_used": context}

if __name__ == "__main__":
    result = grounded_answer(
        "How much does Firecrawl cost per month?",
        "Firecrawl pricing 2026"
    )
    print(result["answer"])

Ejemplo en JavaScript

JavaScript
const SCAVIO_KEY = 'your-scavio-api-key';
const ANTHROPIC_KEY = 'your-anthropic-key';

async function fetchSerpContext(query, n = 5) {
  const res = await fetch('https://api.scavio.dev/api/v1/search', {
    method: 'POST',
    headers: { 'Content-Type': 'application/json', 'x-api-key': SCAVIO_KEY },
    body: JSON.stringify({ query, num_results: n })
  });
  const data = await res.json();
  return (data.organic_results ?? [])
    .map((r, i) => `${i+1}. ${r.title}\n   ${r.snippet}\n   ${r.link}`)
    .join('\n\n');
}

async function groundedAnswer(question, searchQuery) {
  const context = await fetchSerpContext(searchQuery ?? question);
  const prompt = `[CONTEXT - ${new Date().toISOString().slice(0,10)}]\n${context}\n\n[QUESTION]\n${question}`;

  const res = await fetch('https://api.anthropic.com/v1/messages', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
      'x-api-key': ANTHROPIC_KEY,
      'anthropic-version': '2023-06-01'
    },
    body: JSON.stringify({
      model: 'claude-sonnet-4-6',
      max_tokens: 512,
      messages: [{ role: 'user', content: prompt }]
    })
  });
  const msg = await res.json();
  return msg.content[0].text;
}

const answer = await groundedAnswer('How much does Firecrawl cost per month?', 'Firecrawl pricing 2026');
console.log(answer);

Salida esperada

JSON
Based on the search results (source 2), Firecrawl offers:
- Free tier: 1,000 credits
- Starter: $16/month for 5,000 credits
- Scale: $83/month for 100,000 credits (annual billing)

These prices reflect annual billing rates as of 2026.

Tutoriales relacionados

  • Cómo configurar RAG con búsqueda en lugar de vectores
  • Cómo verificar las afirmaciones de precios de la competencia con SERP
  • Cómo crear un agente de investigación de fuentes múltiples

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.

Python 3.9+. Clave API de Scavio. SDK openai o antrópico. 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

La mejor API SERP basada en colas en 2026

Read more
Best Of

Mejor API SERP en 2026

Read more
Glossary

API de SERP

Read more
Glossary

Sistema de cola API SERP

Read more
Comparison

Semrush API vs Raw SERP API

Read more
Solution

Datos de Google Ads de las API SERP

Read more

Empieza a construir

Evite alucinaciones de precios y fechas en LLM obteniendo datos SERP en vivo e inyectándolos como contexto de conexión antes del mensaje. Ejemplos de Python incluidos.

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