Biểu đồ chi phí LLM chatbot RAG với DeepSeek V4 Flash theo số lượt hỏi mỗi tháng, so sánh giá flat, off-peak và peak

Build RAG chatbot giá rẻ với DeepSeek: hướng dẫn thực chiến

Hướng dẫn thực chiến build RAG chatbot giá rẻ với DeepSeek V4 Flash: giá API thật, embedding rẻ, vector store free tier, case study chi phí tháng. Đọc ngay!

Vì sao RAG và vì sao phải rẻ?

RAG (Retrieval-Augmented Generation) là cách phổ biến nhất để biến dữ liệu riêng của bạn thành chatbot trả lời chính xác: tài liệu được cắt nhỏ, chuyển thành vector, lưu vào vector store. Khi có câu hỏi, hệ thống tìm vài đoạn liên quan nhất rồi đưa cho LLM tổng hợp câu trả lời. Không cần fine-tuning, không cần GPU, không cần lộ dữ liệu cho bên thứ ba.

Bài viết này hướng dẫn build một RAG chatbot hoàn chỉnh với chi phí tối thiểu: DeepSeek V4 Flash làm LLM, embedding giá rẻ, vector store free tier, code mẫu Python ngắn và case study chi phí tháng bằng số liệu thật từ trang chính thức.

Chọn LLM: DeepSeek V4 Flash

DeepSeek V4 Flash là model chat giá rẻ nhất hiện tại của DeepSeek, dùng được qua API tương thích OpenAI: base URL https://api.deepseek.com, model string deepseek-v4-flash. Model có context 1 triệu token, output tối đa 384K token, hỗ trợ cả chế độ thinking và non-thinking.

Giá thật từ trang pricing chính thức (api-docs.deepseek.com/quick_start/pricing, tính trên 1 triệu token):

  • Giá flat hiện tại: input (cache miss) $0.14, output $0.28, cache hit $0.0028
  • Từ 16/8/2026 16:00 UTC, DeepSeek chuyển sang billing theo khung giờ: off-peak input $0.22, output $0.66, cache hit $0.007; peak input $0.44, output $1.32, cache hit $0.014

Khung giờ peak là 01:00-04:00 và 06:00-10:00 UTC. Quy đổi sang giờ Việt Nam (UTC+7), peak rơi vào 08:00-11:00 và 13:00-17:00, đúng giờ làm việc. Bot phục vụ khách hàng trong giờ hành chính sẽ phần lớn rơi vào khung peak, nên khi tính chi phí cần dùng mức peak thay vì mức flat cũ.

Biểu đồ giá DeepSeek V4 Flash: input và output mỗi 1 triệu token ở mức flat hiện tại, off-peak mới và peak mới

Điểm mấu chốt giúp RAG rẻ: prompt có phần system và context lặp lại nhiều lần, nên tỉ lệ cache hit rất cao. Giá cache hit chỉ bằng 3% giá input thường, và với mức $0.007 mỗi 1 triệu token thì phần lặp gần như miễn phí.

Embedding giá rẻ

DeepSeek hiện chưa công bố model embedding riêng trên trang pricing, nên ta ghép cặp với một dịch vụ embedding giá rẻ. Lựa chọn phổ biến nhất là text-embedding-3-small của OpenAI, giá $0.02 mỗi 1 triệu token (nguồn developers.openai.com/api/docs/pricing), output 1.536 chiều và có thể giảm xuống 768 chiều qua tham số dimensions để tiết kiệm bộ nhớ vector.

Với kho dữ liệu 1 triệu token (khoảng 1.000 trang tài liệu), chi phí embedding một lần chỉ $0.02. Nếu muốn miễn phí hoàn toàn, dùng model local như BGE-M3 chạy trên CPU, chất lượng đủ tốt cho tiếng Việt và không tốn phí API.

Chi phí embedding một lần bằng text-embedding-3-small theo quy mô kho dữ liệu, thang log

Vector store free tier

Vector store miễn phí phù hợp bắt đầu từ hai lựa chọn:

  • Cloudflare Vectorize: nằm trong gói Workers Free, miễn phí 5 triệu stored vector dimensions và 30 triệu queried vector dimensions mỗi tháng. Với 1.000 vector 768 chiều và 30.000 lượt truy vấn mỗi tháng, số chiều đã truy vấn khoảng 23,8 triệu, vẫn dưới ngưỡng free. Chỉ khi vượt ~38.000 lượt truy vấn/tháng mới bắt đầu trả phí, khoảng $0.01 mỗi 1 triệu chiều truy vấn.
  • Chroma (local): chạy ngay trên máy, lưu vào ổ đĩa, miễn phí 100%. Phù hợp giai đoạn phát triển hoặc dữ liệu nhỏ.
Cloudflare Vectorize free tier: số chiều vector đã truy vấn theo lượt truy vấn mỗi tháng, đường giới hạn miễn phí 30 triệu

Code mẫu: pipeline RAG bằng Python

Bước 1, cắt tài liệu thành chunk khoảng 500-800 token, embedding và lưu vào Chroma:

import os
import chromadb
from openai import OpenAI

embed = OpenAI(api_key=os.environ["OPENAI_API_KEY"])
client = chromadb.PersistentClient(path="./kb")
col = client.get_or_create_collection("docs")

chunks = split_documents("docs/")  # hàm cắt văn bản của bạn

r = embed.embeddings.create(
    model="text-embedding-3-small",
    input=[c.text for c in chunks],
    dimensions=768,
)

col.add(
    ids=[c.id for c in chunks],
    embeddings=[d.embedding for d in r.data],
    documents=[c.text for c in chunks],
    metadatas=[{"source": c.source} for c in chunks],
)

Bước 2, khi có câu hỏi, tìm chunk liên quan rồi gọi DeepSeek V4 Flash:

llm = OpenAI(
    api_key=os.environ["DEEPSEEK_API_KEY"],
    base_url="https://api.deepseek.com",
)

def ask(question, top_k=4):
    qv = embed.embeddings.create(
        model="text-embedding-3-small",
        input=[question], dimensions=768,
    ).data[0].embedding

    hits = col.query(query_embeddings=[qv], n_results=top_k)
    context = "\n\n".join(hits["documents"][0])

    resp = llm.chat.completions.create(
        model="deepseek-v4-flash",
        messages=[
            {"role": "system",
             "content": "Trả lời dựa trên tài liệu được cung cấp, nếu thiếu thông tin thì nói rõ."},
            {"role": "user",
             "content": f"Tài liệu:\n{context}\n\nCâu hỏi: {question}"},
        ],
        stream=False,
    )
    return resp.choices[0].message.content

Toàn bộ logic nằm gọn trong hai khối code này. Bạn chỉ cần cài pip install openai chromadb, có hai API key là chạy được.

Case study: chi phí tháng là bao nhiêu?

Giả định một chatbot hỗ trợ khách hàng của doanh nghiệp nhỏ: kho dữ liệu 1.000 trang (~1 triệu token), trung bình 1.000 lượt hỏi mỗi ngày, tức 30.000 lượt mỗi tháng. Mỗi lượt hỏi gửi khoảng 1.500 token input (system prompt + 4 chunk + câu hỏi) và nhận 350 token output, 70% input trúng cache.

Phân bổ chi phí:

  • Embedding: 1 triệu token, trả một lần, $0.02
  • Vector store: Cloudflare Vectorize, dưới ngưỡng free, $0
  • LLM DeepSeek V4 Flash mỗi tháng: input 45 triệu token + output 10,5 triệu token

Ở mức flat hiện tại: input $1.89 + $0.09 (cache hit) + output $2.94, tổng khoảng $4.92. Với giá mới, chạy giờ off-peak khoảng $10.12, chạy giờ peak khoảng $20.24. Tính cả embedding và vector store, tổng chi phí tháng chỉ từ $5 đến $21 cho một chatbot phục vụ 1.000 lượt hỏi mỗi ngày. Biểu đồ bên dưới (ảnh bìa bài viết) tóm tắt chi phí LLM theo các mức truy vấn phổ biến: 5.000, 30.000 và 100.000 lượt mỗi tháng, so sánh ba mức giá.

Mẹo tối ưu chi phí thêm

  • Tận dụng cache hit: giữ system prompt cố định, thứ tự chunk ổn định để prefix lặp lại, giá cache hit chỉ $0.007 mỗi 1 triệu token.
  • Dời việc nặng sang đêm: embedding, re-index, rebuild toàn bộ chạy trong khung off-peak để hưởng giá rẻ hơn 50% so với peak.
  • Giảm chiều embedding xuống 768 hoặc 512 nếu chất lượng vẫn đạt, giảm cả chi phí lưu trữ lẫn tốc độ truy vấn.
  • Bật non-thinking cho câu hỏi đơn giản để giảm output token, chỉ bật thinking khi cần suy luận sâu.

Kết luận

Build RAG chatbot giá rẻ với DeepSeek V4 Flash hoàn toàn khả thi: LLM khoảng $5-20/tháng cho 30.000 lượt hỏi, embedding $0.02 một lần, vector store miễn phí. Kiến trúc gọn, code ngắn, chạy được trong một buổi chiều. Nếu bạn đang cân nhắc RAG cho dự án, bắt đầu với stack này trước khi đầu tư vào hạ tầng đắt tiền hơn.

Câu hỏi thường gặp

DeepSeek V4 Flash giá bao nhiêu mỗi 1 triệu token?

Ở giá flat hiện tại: input $0.14, output $0.28. Từ 16/8/2026, giá theo khung giờ: off-peak input $0.22, output $0.66; peak input $0.44, output $1.32. Cache hit chỉ $0.007 (off-peak) hoặc $0.014 (peak).

Embedding nào rẻ nhất cho RAG tiếng Việt?

text-embedding-3-small của OpenAI giá $0.02 mỗi 1 triệu token, chất lượng tốt. Nếu muốn miễn phí, dùng model local BGE-M3 chạy trên CPU, không tốn phí API.

Vector store miễn phí nào nên dùng?

Cloudflare Vectorize nằm trong Workers Free, miễn phí 30 triệu queried vector dimensions mỗi tháng, đủ cho hàng chục nghìn lượt truy vấn. Chroma chạy local thì miễn phí 100% và không cần tài khoản.

Chi phí tháng của chatbot RAG cỡ nhỏ là bao nhiêu?

Với 1.000 trang tài liệu và 1.000 lượt hỏi mỗi ngày, chi phí LLM khoảng $5 (giá flat) đến $21 (giá peak mới) mỗi tháng, cộng $0.02 embedding một lần và $0 cho vector store free tier.

No comments yet