知識ベースについて正確に回答するスペイン語の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.5セント未満)。キャッシュなしでは約$0.01です。cache_controlを正しく設定する価値は十分にあります。
標準スペイン語と地域変種
スペインとLATAMのユーザーに同時にサービスを提供する場合、選択肢は3つあります:
- 標準スペイン語(デフォルトで推奨):モデルに、フォーマルな場面では「usted/ustedes」を使い、地域固有の表現を避けるよう求めます。すべての国で機能しますが、やや無機質に聞こえます
- 国の検出 + 専用プロンプト:IPまたはユーザー設定を使い、「voseo」(アルゼンチン、ウルグアイ)、「tuteo」(スペイン、メキシコ)、「ustedeo」(コロンビア、一部地域)から選択します。system promptに方言を渡します
- 市場ごとに1つのモデル:各地域に専任チームと大規模なボリュームがある場合に限ります。ほとんどの場合は過剰です
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件用意します。チャットボットはすべて拒否しなければなりません
推定月額費用(スペイン語)
- 1日100クエリ:キャッシュ使用時で月約$11
- 1日1,000クエリ:月約$110
- 1日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からチャージして、使った分だけ支払い、最初の実用的なプロトタイプを構築しましょう。