스페인어로 지식 베이스에 대해 정확하게 답변하는 RAG 챗봇 구축 — 스페인과 라틴아메리카의 제품 팀을 위해 작성한 실용 가이드입니다. 모델 선택, 스페인어의 지역별 변형 처리 방법, 쿼리당 비용, 환각 방지 방법을 다룹니다.
기본 스택
- text-embedding-3-large를 사용한 문서 임베딩, OpenAI 직접 호출 —— Kunavo는 임베딩을 제공하지 않고 생성 단계만 제공합니다
- 벡터 검색(pgvector, Pinecone 또는 Qdrant)
- Claude Sonnet 4.6 + 프롬프트 캐싱을 사용한 응답 생성
- 높은 부하 / 최소 비용을 위한 Gemini 2.5 Flash 폴백
기본 스니펫
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.content쿼리당 비용: 캐싱이 활성화된 경우 약 $0.004(유로 센트의 절반 미만)입니다. 캐싱이 없으면 약 $0.01입니다. 차이를 고려하면 cache_control을 올바르게 구성할 가치가 있습니다.
중립 스페인어와 지역별 변형
제품이 스페인과 LATAM 사용자를 동시에 대상으로 한다면 세 가지 선택지가 있습니다:
- 중립 스페인어(기본 권장): 모델에 공식적인 표현으로 "usted/ustedes"를 사용하고 지역 특유의 표현을 피하도록 요청합니다. 모든 국가에서 작동하지만 약간 비인간적으로 들릴 수 있습니다
- 국가 감지 + 지역별 프롬프트: IP 또는 사용자 설정을 사용하여 "voseo"(아르헨티나, 우루과이), "tuteo"(스페인, 멕시코), "ustedeo"(콜롬비아 및 일부 지역) 중에서 선택합니다. system prompt에 방언을 전달하세요
- 시장별 모델 하나: 각 지역에 전담 팀과 높은 사용량이 있는 경우에만 사용하세요. 대부분의 경우 과도합니다
Claude Sonnet 4.6과 Gemini 2.5 Pro는 모든 변형을 이해하며, 출력은 프롬프트의 스타일을 따릅니다. "리오플라텐세 스페인어(voseo, 예: 'vos podés')로 답변해"라는 한 줄이면 충분합니다.
스페인어 토큰
동일한 내용에 대해 스페인어는 영어보다 약 1.3~1.5배 더 많은 토큰을 사용합니다(긴 어미와 관사 때문). 그에 맞춰 입력 및 출력 예산을 조정하세요. 영어로 5K 토큰인 컨텍스트는 스페인어로 약 6.5K가 됩니다.
환각 방지 — 실제로 효과가 있는 방법
- 명시적인 system prompt: "답변이 컨텍스트에 없으면 '해당 정보를 알지 못합니다'라고 말해"라고 지정하세요. 모델은 다른 언어보다 중립 스페인어에서 이를 더 잘 따르지만, 이유는 알 수 없습니다
- 출처 인용: 각 주장에 대해 해당 내용을 가져온 문서 ID를 반환하도록 요청하세요. ID가 만들어진 것이라면 환각임을 알 수 있습니다
- 출력 제한: max_tokens=300으로 설정하면 근거 없는 내용을 덧붙이려는 경향이 크게 줄어듭니다
- 적대적 테스트: 현재 컨텍스트로는 답할 수 없다고 표시한 데이터셋 질문 50개를 준비하세요. 챗봇은 모두 거부해야 합니다
예상 월간 비용(스페인어)
- 하루 100회 쿼리: 캐싱 사용 시 월 약 $11
- 하루 1,000회 쿼리: 월 약 $110
- 하루 10,000회 쿼리: 월 약 $1,100
10,000회 이상에 도달하여 추가 절감이 필요하다면 간단한 쿼리는 Gemini 2.5 Flash로 낮추고(4~10배 저렴), 복잡한 쿼리에만 Sonnet 4.6을 사용하세요. 티어링 패턴은 비용 최적화 가이드에 설명되어 있습니다.
스페인 및 LATAM에서의 결제
Stripe는 국가에 따라 결제를 처리합니다: Pix(브라질), 국제 카드, Apple Pay, Google Pay 및 Link. 가격은 USD로 표시되며 Stripe는 금액을 사용자의 통화로 표시할 수 있습니다. 환율에는 구매자가 부담하는 2–4%의 환전 수수료가 포함되며, USD로 결제하면 이를 피할 수 있습니다(Stripe Adaptive Pricing 문서, 2026-10-03 확인). Bizum, PayPal, OXXO 및 Mercado Pago는 지원되지 않으며 Pay by Bank도 제공되지 않습니다. Kunavo 결제 화면에서는 영국, 아일랜드 및 핀란드 구매자에게만 제공되고, 프랑스와 독일에서는 Stripe가 아직 비공개 미리보기 상태입니다(Stripe Pay by Bank 문서, 2026-10-03 확인). 최소 충전 금액은 $10 USD입니다. 잔액은 만료되지 않습니다.
지원 및 문서
contact@kunavo.com을 통한 스페인어 지원은 영업일 기준 24시간 이내에 제공됩니다. 전체 기술 문서는 /docs/quickstart에 있으며, 프롬프트 캐싱 전체 가이드는 prompt caching deep dive에서 확인할 수 있습니다.
준비되셨나요? 무료로 가입하고 $10부터 충전한 뒤, 사용한 만큼만 결제하여 작동하는 첫 프로토타입을 구축하세요.