返回博客
Guía técnica·2026年5月25日·7 min read

Construir un chatbot RAG en español con Claude — guía práctica para LATAM y España

Stack completo para RAG en español: text-embedding-3-large + pgvector + Claude Sonnet 4.6 + prompt caching. ~$0.007 por consulta. Variantes regionales (voseo, tuteo, ustedeo), tokens en español (1.3-1.5x más que inglés), anti-alucinaciones y costes mensuales reales para 100 a 10.000 consultas diarias.

Construir un chatbot RAG en español que responda con precisión sobre tu base de conocimiento — guía práctica pensada para equipos de producto en España y Latinoamérica. Cubrimos la elección del modelo, cómo manejar variantes regionales del español, costes por consulta y cómo evitar las alucinaciones.

El stack base

  1. Embebido de documentos con text-embedding-3-large
  2. Búsqueda vectorial (pgvector, Pinecone o Qdrant)
  3. Generación de respuesta con Claude Sonnet 4.6 + prompt caching
  4. Fallback a Gemini 3 Flash para alta carga / costes mínimos

Snippet básico

responder.py
from openai import OpenAI

client = OpenAI(
    api_key="sk-kunavo-...",
    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.content

Coste por consulta: aproximadamente $0.007 (unos 6,5 €) con caching activo. Sin caching, alrededor de $0.02. La diferencia compensa configurar correctamente el cache_control.

Español neutro vs variantes regionales

Si tu producto sirve a usuarios de España y LATAM al mismo tiempo, tienes tres opciones:

  • Español neutro (recomendado por defecto): pide al modelo que use "usted/ustedes" en formal y evite localismos. Funciona en todos los países pero suena ligeramente impersonal
  • Detección de país + prompt específico: usa la IP o la configuración del usuario para elegir entre "voseo" (Argentina, Uruguay), "tuteo" (España, México), "ustedeo" (Colombia, ciertas regiones). Pasa el dialecto en el system prompt
  • Un modelo por mercado: solo si tienes equipos dedicados y volumen alto en cada región. Para la mayoría es overkill

Claude Sonnet 4.6 y Gemini 3 Pro entienden todas las variantes; la salida sigue el estilo del prompt. Una línea como "Responde en español rioplatense (voseo, ej. 'vos podés')" basta.

Tokens en español

El español consume aproximadamente 1.3-1.5x más tokens que el inglés para el mismo contenido (por las terminaciones largas y los artículos). Ajusta tus presupuestos de input y output en consecuencia. Un contexto de 5K tokens en inglés se convierte en ~6.5K en español.

Anti-alucinaciones — lo que de verdad funciona

  • System prompt explícito: "si la respuesta no está en el contexto, di 'No tengo esa información'". El modelo lo respeta más en español neutro que en otros idiomas, no sabemos por qué
  • Citar la fuente: pídele que devuelva el id del documento del que sacó cada afirmación. Si el id es inventado, sabes que alucinó
  • Limitar el output: max_tokens=300 reduce mucho la tentación de inventar relleno
  • Tests adversarios: 50 preguntas de tu dataset marcadas como "no contestables con el contexto actual". Tu chatbot debe rechazar todas

Coste mensual estimado (español)

  • 100 consultas/día: ~$21/mes con caching
  • 1.000 consultas/día: ~$210/mes
  • 10.000 consultas/día: ~$2.100/mes

Si llegas a 10.000+ y necesitas más recorte, baja a Gemini 3 Flash para las consultas sencillas (~3x más barato) y reserva Sonnet 4.6 solo para las complejas. Patrón de tiering descrito en cost optimization playbook.

Pagos desde España y LATAM

Stripe procesa el pago según el país: Bizum (España vía Link), SEPA, OXXO (México), Pix y Boleto (Brasil), tarjetas internacionales, Apple Pay y Google Pay. Recarga mínima $5 USD. El saldo no caduca.

Soporte y documentación

Soporte en español por contact@kunavo.com en menos de 24 horas laborables. Documentación técnica completa en /docs/quickstart; guía completa de prompt caching en prompt caching deep dive.

¿Listo? Regístrate gratis con $2 de crédito para construir un primer prototipo funcional.