Costruire un chatbot RAG in spagnolo che risponda con precisione sulla tua base di conoscenza — guida pratica pensata per team di prodotto in Spagna e America Latina. Copriamo la scelta del modello, la gestione delle varianti regionali dello spagnolo, i costi per richiesta e come evitare le allucinazioni.
Lo stack di base
- Embedding dei documenti con text-embedding-3-large, chiamato direttamente a OpenAI —— Kunavo non fornisce embedding, ma solo il passaggio di generazione
- Ricerca vettoriale (pgvector, Pinecone o Qdrant)
- Generazione delle risposte con Claude Sonnet 4.6 + prompt caching
- Fallback a Gemini 2.5 Flash per carichi elevati / costi minimi
Snippet di base
from openai import OpenAI
client = OpenAI(
api_key="sk-kn-...",
base_url="https://api.kunavo.com/v1",
)
def responder(pregunta: str, contexto: list[str]) -> str:
"""Responde en español usando contexto recuperado de la base de conocimiento."""
resp = client.chat.completions.create(
model="claude-sonnet-4-6",
messages=[
{
"role": "system",
"content": [
{
"type": "text",
"text": (
"Eres un asistente que responde en español neutro, "
"claro y conciso, basándote exclusivamente en el "
"contexto proporcionado. Si la respuesta no está en "
"el contexto, di 'No tengo esa información' en lugar "
"de inventar."
),
"cache_control": {"type": "ephemeral"},
},
],
},
{
"role": "user",
"content": (
f"## Contexto\n{chr(10).join(contexto)}\n\n"
f"## Pregunta\n{pregunta}"
),
},
],
max_tokens=600,
)
return resp.choices[0].message.contentCosto per richiesta: circa $0,004 (meno di mezzo centesimo di euro) con caching attivo. Senza caching, circa $0,01. La differenza giustifica la corretta configurazione di cache_control.
Spagnolo neutro vs varianti regionali
Se il tuo prodotto serve contemporaneamente utenti in Spagna e in America Latina, hai tre opzioni:
- Spagnolo neutro (consigliato come impostazione predefinita): chiedi al modello di usare "usted/ustedes" nel registro formale e di evitare i localismi. Funziona in tutti i Paesi, ma suona leggermente impersonale
- Rilevamento del Paese + prompt specifico: usa l'IP o le impostazioni dell'utente per scegliere tra "voseo" (Argentina, Uruguay), "tuteo" (Spagna, Messico), "ustedeo" (Colombia, alcune regioni). Passa il dialetto nel system prompt
- Un modello per mercato: solo se hai team dedicati e un volume elevato in ogni regione. Per la maggior parte dei casi è eccessivo
Claude Sonnet 4.6 e Gemini 2.5 Pro comprendono tutte le varianti; l'output segue lo stile del prompt. Basta una riga come "Rispondi in spagnolo rioplatense (voseo, es. 'vos podés')".
Token in spagnolo
Lo spagnolo consuma circa 1.3-1.5x più token dell'inglese per lo stesso contenuto (a causa delle desinenze più lunghe e degli articoli). Adegua di conseguenza i budget di input e output. Un contesto di 5K token in inglese diventa circa 6.5K in spagnolo.
Anti-allucinazioni — ciò che funziona davvero
- System prompt esplicito: "se la risposta non è nel contesto, di' 'Non ho queste informazioni'". Il modello lo rispetta maggiormente nello spagnolo neutro che in altre lingue; non sappiamo perché
- Citare la fonte: chiedigli di restituire l'id del documento da cui ha ricavato ogni affermazione. Se l'id è inventato, sai che ha avuto un'allucinazione
- Limitare l'output: max_tokens=300 riduce molto la tentazione di inventare contenuti riempitivi
- Test avversari: 50 domande del tuo dataset contrassegnate come "non rispondibili con il contesto attuale". Il chatbot deve rifiutarle tutte
Costo mensile stimato (spagnolo)
- 100 richieste/giorno: circa $11/mese con caching
- 1.000 richieste/giorno: circa $110/mese
- 10.000 richieste/giorno: circa $1.100/mese
Se raggiungi 10.000+ richieste e ti serve un'ulteriore riduzione, passa a Gemini 2.5 Flash per le richieste semplici (da 4 a 10 volte più economico) e riserva Sonnet 4.6 solo a quelle complesse. Il modello di tiering è descritto in cost optimization guide.
Pagamenti dalla Spagna e dall'America Latina
Stripe elabora il pagamento in base al Paese: Pix (Brasile), carte internazionali, Apple Pay, Google Pay e Link. I prezzi sono in USD e Stripe può mostrare l'importo nella tua valuta; il tasso include una commissione di conversione del 2–4% a carico dell'acquirente, evitabile pagando in USD (documentazione di Stripe Adaptive Pricing, letta il 2026-10-03). Bizum, PayPal, OXXO e Mercado Pago non sono disponibili, né lo è Pay by Bank: nel checkout di Kunavo è offerto solo agli acquirenti di Regno Unito, Irlanda e Finlandia, mentre in Francia e Germania Stripe lo offre ancora in anteprima privata (documentazione di Stripe Pay by Bank, letta il 2026-10-03). Ricarica minima $10 USD. Il saldo non scade.
Supporto e documentazione
Supporto in spagnolo tramite contact@kunavo.com entro 24 ore lavorative. Documentazione tecnica completa in /docs/quickstart; guida completa al prompt caching in prompt caching deep dive.
Pronto? Registrati gratuitamente, ricarica da $10 e paga solo ciò che utilizzi per costruire un primo prototipo funzionante.