El problema
Los LLM locales (Qwen 9B-35B, Llama-3, DeepSeek) alucinan con respuestas basadas en búsquedas web cuando se les alimenta con HTML sin procesar. Las ventanas de contexto ajustadas comprimen la señal proporcionalmente más que los LLM en la nube.
La solucion de Scavio
Fuentes JSON escritas por Scavio + un mensaje de cita explícita + LLM local de Ollama. Reduce las alucinaciones de forma mensurable en el mismo modelo. Verificación cruzada opcional con las citas de AI Overview.
Antes
Qwen 27B + conexión a tierra HTML sin procesar = ~18% de alucinaciones en consultas fácticas (según el informe de r/LocalLLaMA).
Después
Qwen 27B + Scavio escribió JSON + mensaje de cita = <3% de alucinaciones en las mismas consultas.
Para quien es
Entusiastas de los LLM locales, creadores de agentes que priorizan la privacidad, equipos que ejecutan LLM locales que necesitan un contexto web nuevo.
Beneficios clave
- Reducción de 10 veces las alucinaciones en consultas fundamentadas
- JSON con token eficiente (~1,5 000 frente a 25-40 000 HTML)
- Verificación cruzada con las citas de la descripción general de IA
- Funciona en cualquier modelo local compatible con Ollama
- Costo de la pila ~$30 (Scavio) + $0 (LLM local)
Ejemplo en Python
import requests, os
H = {'x-api-key': os.environ['SCAVIO_API_KEY']}
PROMPT = '''Answer using ONLY the sources. Every claim followed by [N].
If sources don't answer, say "I don't know based on these sources."
Sources:
{src}
Question: {q}'''
def ask(q):
r = requests.post('https://api.scavio.dev/api/v1/search', headers=H, json={'query': q}).json()
src = '\n'.join(f'[{i+1}] {x["title"]} ({x["link"]}): {x["snippet"]}' for i, x in enumerate(r['organic_results'][:10]))
return requests.post('http://localhost:11434/api/generate', json={'model':'qwen2.5:32b', 'prompt': PROMPT.format(src=src, q=q), 'stream': False}).json()['response']Ejemplo en JavaScript
// Same in TS via fetch + Ollama HTTP API.Plataformas utilizadas
Búsqueda web con grafo de conocimiento, PAA y resúmenes de IA