返回部落格
技術指南·2026年5月25日·閱讀約 7 分鐘

使用 Claude 建立西班牙文 RAG 聊天機器人——LATAM 與西班牙實用指南

完整的西班牙文 RAG 技術堆疊:text-embedding-3-large(直接呼叫 OpenAI——Kunavo 不提供 embeddings)+ pgvector + Claude Sonnet 4.6 + prompt caching。合計兩家供應商,每次查詢約 $0.007。涵蓋區域變體(voseo、tuteo、ustedeo)、西班牙文 token(數量為英文的 1.3–1.5 倍)、反幻覺,以及每日 100 至 10,000 次查詢的實際月成本。

建立一個能精準回答知識庫內容的西班牙文 RAG 聊天機器人——為西班牙與拉丁美洲產品團隊撰寫的實用指南。我們會介紹模型選擇、如何處理西班牙文的區域變體、每次查詢的成本,以及如何避免幻覺。

基礎技術堆疊

  1. 使用 text-embedding-3-large 進行文件嵌入,直接呼叫 OpenAI——Kunavo 不提供 embeddings,只提供生成步驟
  2. 向量搜尋(pgvector、Pinecone 或 Qdrant)
  3. 使用 Claude Sonnet 4.6+提示詞快取生成回應
  4. 高負載/最低成本時退回 Gemini 2.5 Flash

基本程式碼片段

responder.py
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 所節省的成本,值得投入設定時間。

中性西班牙文與區域變體

如果產品同時服務西班牙與拉丁美洲使用者,有 3 個選擇:

  • 中性西班牙文(預設推薦):要求模型在正式語境使用「usted/ustedes」,並避免地方用語。適用於所有國家,但語氣會稍微不帶個人色彩
  • 國家偵測+特定提示詞:使用 IP 或使用者設定,在「voseo」(阿根廷、烏拉圭)、「tuteo」(西班牙、墨西哥)和「ustedeo」(哥倫比亞、部分地區)之間選擇。在 system prompt 中傳入方言
  • 每個市場使用一個模型:只有在每個地區都有專責團隊且具備高流量時才適用。對大多數情況而言是小題大作

Claude Sonnet 4.6 和 Gemini 2.5 Pro 都能理解所有變體;輸出會遵循提示詞的風格。一行如「以拉普拉塔西班牙文(voseo,例如 'vos podés')回答」就足夠。

西班牙文 token

相同內容下,西班牙文消耗的 token 約為英文的 1.3~1.5 倍(因為詞尾較長且有冠詞)。請相應調整 input 與 output 預算。英文的 5K token 上下文在西班牙文中會變成約 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。分層模式詳見 成本最佳化指南。

來自西班牙與拉丁美洲的付款

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 美元起儲值,只為實際使用的部分付費,建立第一個可運作的原型。