ScavioScavio
ProductoPreciosDocumentación
Iniciar sesionComenzar
  1. Inicio
  2. Tutoriales
  3. Cómo fundamentar un LLM local con búsqueda estructurada
Tutorial

Cómo fundamentar un LLM local con búsqueda estructurada

Proporcione acceso web a Ollama o LM Studio a través de una API de búsqueda estructurada. Reduzca las alucinaciones con una conexión a tierra de datos SERP eficiente en tokens.

Obtener clave API gratisDocumentacion API

Conecte un LLM local (Ollama, LM Studio, vLLM) con búsqueda web enrutando consultas a través de una API SERP estructurada en lugar de una búsqueda web sin formato. JSON estructurado utiliza entre 600 y 800 tokens frente a 4000-8000 para HTML sin formato, lo que se adapta mejor a ventanas de contexto de modelo local limitadas.

Requisitos previos

  • Ollama o LM Studio ejecutándose localmente
  • Clave API de Scavio
  • Python 3.8+
  • Un modelo con soporte de llamada a funciones (por ejemplo, llama3, mistral)

Guia paso a paso

Paso 1: Crear una función de búsqueda

Cree una herramienta de búsqueda que arroje resultados estructurados.

Python
import requests, os

def web_search(query, platform='google'):
    resp = requests.post('https://api.scavio.dev/api/v1/search',
        headers={'x-api-key': os.environ['SCAVIO_API_KEY'],
                 'Content-Type': 'application/json'},
        json={'query': query, 'country_code': 'us', 'platform': platform})
    data = resp.json()
    return [{'title': r.get('title', ''), 'snippet': r.get('snippet', ''),
             'url': r.get('link', '')}
            for r in data.get('organic_results', [])[:5]]

Paso 2: Integrarse con Ollama

Utilice la función de búsqueda como herramienta en las conversaciones de Ollama.

Python
import ollama

def grounded_query(question):
    search_results = web_search(question)
    context = '\n'.join([f"- {r['title']}: {r['snippet']}" for r in search_results])
    response = ollama.chat(model='llama3', messages=[{
        'role': 'user',
        'content': f'Based on these search results:\n{context}\n\nAnswer: {question}'
    }])
    return response['message']['content']

answer = grounded_query('What is the latest Next.js version?')
print(answer)

Ejemplo en Python

Python
import requests, os, ollama

def web_search(query):
    r = requests.post('https://api.scavio.dev/api/v1/search',
        headers={'x-api-key': os.environ['SCAVIO_API_KEY'],
                 'Content-Type': 'application/json'},
        json={'query': query, 'country_code': 'us'}).json()
    return [{'title': r.get('title', ''), 'snippet': r.get('snippet', '')}
            for r in r.get('organic_results', [])[:5]]

def grounded_chat(question, model='llama3'):
    results = web_search(question)
    context = '\n'.join([f'- {r["title"]}: {r["snippet"]}' for r in results])
    response = ollama.chat(model=model, messages=[{
        'role': 'system',
        'content': 'Answer based on the provided search results. Cite sources.'
    }, {
        'role': 'user',
        'content': f'Search results:\n{context}\n\nQuestion: {question}'
    }])
    return response['message']['content']

print(grounded_chat('What is the current Stripe API version?'))

Ejemplo en JavaScript

JavaScript
const H = {'x-api-key': process.env.SCAVIO_API_KEY, 'Content-Type': 'application/json'};
async function webSearch(query) {
  const r = await fetch('https://api.scavio.dev/api/v1/search', {
    method: 'POST', headers: H,
    body: JSON.stringify({query, country_code: 'us'})
  }).then(r => r.json());
  return (r.organic_results || []).slice(0, 5).map(r => ({
    title: r.title, snippet: r.snippet || ''
  }));
}

async function groundedChat(question) {
  const results = await webSearch(question);
  const context = results.map(r => `- ${r.title}: ${r.snippet}`).join('\n');
  // Pass context + question to your local LLM via its API
  console.log(`Grounding context (${context.length} chars) for: ${question}`);
  return context;
}
groundedChat('What is the current Next.js version?');

Salida esperada

JSON
Local LLM responses grounded in current web data. The model cites search results instead of relying on potentially outdated training data.

Tutoriales relacionados

  • Cómo agregar búsqueda MCP a Claude Code
  • Cómo crear un resumen de contenido basado en SERP con API

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.

Ollama o LM Studio ejecutándose localmente. Clave API de Scavio. Python 3.8+. Un modelo con soporte de llamada a funciones (por ejemplo, llama3, mistral). 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

Las mejores herramientas de base de conocimientos personales para LLM locales en mayo de 2026

Read more
Use Case

Búsqueda web de agentes para LLM local

Read more
Best Of

La mejor API de búsqueda web para LLM locales en 2026

Read more
Solution

Búsqueda local de LLM después de Google Paywall

Read more
Use Case

Base de conocimientos personales con LLM local y búsqueda

Read more
Glossary

Patrón de base de conocimientos local de LLM

Read more

Empieza a construir

Proporcione acceso web a Ollama o LM Studio a través de una API de búsqueda estructurada. Reduzca las alucinaciones con una conexión a tierra de datos SERP eficiente en tokens.

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