Xây dựng chatbot RAG bằng tiếng Tây Ban Nha có thể trả lời chính xác về cơ sở kiến thức của bạn — hướng dẫn thực tế dành cho các nhóm sản phẩm ở Tây Ban Nha và Mỹ Latinh. Chúng tôi đề cập đến việc chọn model, xử lý các biến thể vùng miền của tiếng Tây Ban Nha, chi phí mỗi truy vấn và cách tránh hiện tượng bịa đặt.
Stack cơ bản
- Nhúng tài liệu bằng text-embedding-3-large, gọi trực tiếp đến OpenAI —— Kunavo không cung cấp embedding, chỉ cung cấp bước sinh nội dung
- Tìm kiếm vector (pgvector, Pinecone hoặc Qdrant)
- Sinh câu trả lời bằng Claude Sonnet 4.6 + prompt caching
- Fallback sang Gemini 2.5 Flash khi tải cao / cần chi phí tối thiểu
Đoạn mã cơ bản
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.contentChi phí mỗi truy vấn: khoảng $0,004 (chưa đến nửa cent euro) khi bật caching. Không có caching, khoảng $0,01. Chênh lệch này xứng đáng để cấu hình cache_control đúng cách.
Tiếng Tây Ban Nha trung tính so với các biến thể vùng miền
Nếu sản phẩm của bạn phục vụ đồng thời người dùng ở Tây Ban Nha và LATAM, bạn có ba lựa chọn:
- Tiếng Tây Ban Nha trung tính (khuyến nghị mặc định): yêu cầu model dùng "usted/ustedes" trong văn phong trang trọng và tránh các từ địa phương. Cách này hoạt động ở mọi quốc gia nhưng nghe hơi thiếu tính cá nhân
- Phát hiện quốc gia + prompt cụ thể: dùng IP hoặc cài đặt người dùng để chọn giữa "voseo" (Argentina, Uruguay), "tuteo" (Tây Ban Nha, México), "ustedeo" (Colombia, một số vùng). Truyền phương ngữ trong system prompt
- Một model cho mỗi thị trường: chỉ nên dùng khi bạn có đội ngũ chuyên trách và khối lượng lớn ở từng khu vực. Với phần lớn trường hợp, đây là overkill
Claude Sonnet 4.6 và Gemini 2.5 Pro hiểu mọi biến thể; đầu ra tuân theo phong cách của prompt. Một dòng như "Responde en español rioplatense (voseo, ej. 'vos podés')" là đủ.
Token tiếng Tây Ban Nha
Tiếng Tây Ban Nha tiêu thụ khoảng 1.3-1.5x token so với tiếng Anh cho cùng một nội dung (do các đuôi từ dài và mạo từ). Hãy điều chỉnh ngân sách input và output tương ứng. Ngữ cảnh 5K token bằng tiếng Anh trở thành khoảng ~6.5K bằng tiếng Tây Ban Nha.
Chống bịa đặt — điều thực sự hiệu quả
- System prompt rõ ràng: "nếu câu trả lời không có trong ngữ cảnh, hãy nói 'Tôi không có thông tin đó'". Model tuân thủ điều này tốt hơn bằng tiếng Tây Ban Nha trung tính so với các ngôn ngữ khác, chúng tôi không biết vì sao
- Trích dẫn nguồn: yêu cầu model trả về id của tài liệu mà nó lấy từng khẳng định. Nếu id được bịa ra, bạn biết model đã bịa đặt
- Giới hạn output: max_tokens=300 giúp giảm đáng kể xu hướng bịa thêm nội dung lấp chỗ trống
- Kiểm thử đối nghịch: 50 câu hỏi trong dataset của bạn được đánh dấu là "không thể trả lời bằng ngữ cảnh hiện tại". Chatbot phải từ chối tất cả
Chi phí hàng tháng ước tính (tiếng Tây Ban Nha)
- 100 truy vấn/ngày: ~$11/tháng với caching
- 1.000 truy vấn/ngày: ~$110/tháng
- 10.000 truy vấn/ngày: ~$1.100/tháng
Nếu đạt 10.000+ và cần cắt giảm thêm, hãy chuyển các truy vấn đơn giản sang Gemini 2.5 Flash (rẻ hơn từ 4 đến 10 lần) và chỉ dành Sonnet 4.6 cho các truy vấn phức tạp. Mô hình phân tầng được mô tả trong hướng dẫn tối ưu hóa chi phí.
Thanh toán từ Tây Ban Nha và LATAM
Stripe xử lý thanh toán theo quốc gia: Pix (Brazil), thẻ quốc tế, Apple Pay, Google Pay và Link. Giá được tính bằng USD và Stripe có thể hiển thị số tiền bằng đơn vị tiền tệ của bạn; tỷ giá của Stripe bao gồm phí chuyển đổi 2–4% do người mua chịu, và thanh toán bằng USD sẽ tránh khoản phí này (tài liệu Adaptive Pricing của Stripe, đọc ngày 2026-10-03). Bizum, PayPal, OXXO và Mercado Pago không khả dụng, Pay by Bank cũng không: trong trang thanh toán Kunavo, phương thức này chỉ được cung cấp cho người mua tại Vương quốc Anh, Ireland và Phần Lan, còn tại Pháp và Đức Stripe vẫn đang để ở chế độ xem trước riêng tư (tài liệu Pay by Bank của Stripe, đọc ngày 2026-10-03). Mức nạp tối thiểu là $10 USD. Số dư không hết hạn.
Hỗ trợ và tài liệu
Hỗ trợ bằng tiếng Tây Ban Nha qua contact@kunavo.com trong vòng chưa đầy 24 giờ làm việc. Tài liệu kỹ thuật đầy đủ tại /docs/quickstart; hướng dẫn chuyên sâu về prompt caching tại prompt caching deep dive.
Sẵn sàng chưa? Đăng ký miễn phí, nạp từ $10 và chỉ trả tiền cho những gì bạn sử dụng để xây dựng nguyên mẫu chức năng đầu tiên.