Triển khai Chatbot truy vấn tài liệu nội bộ với Dify và mô hình BGE-M3

Triển khai một chatbot thực sự hữu ích không đơn giản như vài dòng lệnh gọi API. Đằng sau một hệ thống chatbot hiệu quả là hàng loạt công đoạn phức tạp: xử lý và chia nhỏ tài liệu kiến thức (knowledge chunking), nhúng vector (embedding), xây dựng pipeline tìm kiếm (retrieval & reranking), cấu hình mô hình ngôn ngữ (LLM), thiết lập môi trường chạy server, và cuối cùng là nhúng lên website với trải nghiệm người dùng thân thiện.

Đây là một quá trình vừa mang tính kỹ thuật sâu, vừa đòi hỏi hiểu biết về triển khai hệ thống, khiến việc xây dựng chatbot trở thành trở ngại đối với nhiều tổ chức, đặc biệt là những đơn vị không có đội ngũ AI chuyên sâu. Dify ra đời để giải quyết bài toán đó. Dify là một nền tảng mã nguồn mở cho phép bất kỳ ai – từ kỹ sư phần mềm đến người làm giáo dục – đều có thể xây dựng, huấn luyện, triển khai và tích hợp chatbot truy vấn tài liệu một cách trực quan, linh hoạt và hoàn toàn tự động

Bài viết này sẽ hướng dẫn cách triển khai chatbot trên Dify sử dụng mô hình nhúng văn bản BAAI/bge-m3, mô hình rerank, và tích hợp với các LLM như Gemini 2.0. Đây là một quy trình có thể áp dụng cho nhiều mục đích khác nhau: tư vấn tuyển sinh, hỗ trợ khách hàng, tra cứu tài liệu nội bộ, v.v.

Mô hình và công cụ sử dụng

Thành phần Công nghệ Ghi chú
Text Embedding BAAI/bge-m3 Triển khai bằng Docker
Text Reranking BAAI/bge-reranker-base Triển khai bằng Docker
LLM Gemini 2.0 Flash-Lite / OpenAI GPT Dùng API
Knowledge Base Tài liệu PDF nội bộ Cấu hình chunk + retrieval
     

 

Tại sao lại chọn Dify?

Trước đây, để tạo một chatbot theo tài liệu, lập trình viên phải:

  • Chia nhỏ tài liệu (chunking)

  • Tính toán vector embedding

  • Xây dựng hệ thống tìm kiếm ngữ nghĩa

  • Triển khai mô hình ngôn ngữ (LLM) kết hợp trả lời

  • Thiết lập giao diện người dùng (frontend integration)

Dify giúp tự động hóa hầu hết các bước trên. Đây là một nền tảng mã nguồn mở, cho phép:

  • Quản lý knowledge base trực tiếp từ giao diện

  • Tích hợp các mô hình AI thông qua API

  • Xây dựng chatbot chỉ trong vài cú nhấp chuột

  • Dễ dàng triển khai lên website

Với Dify, ngay cả người không chuyên sâu về AI cũng có thể tự xây dựng chatbot hoạt động theo tài liệu có sẵn như PDF, DOCX hay plain text.

 

Chuẩn bị mô hình Embedding và Reranking

Text Embedding với BAAI/bge-m3

Để chatbot hiểu và tìm được câu trả lời phù hợp, tài liệu cần được chuyển thành vector embedding. Triển khai bằng Docker:

docker run -d \
  --name bge-text-embedding \
  -p 8080:80 \
  --pull always \
  ghcr.io/huggingface/text-embeddings-inference:1.7 \
  --model-id BAAI/bge-m3 \
  --api-key xxxxxxx

Reranker với BAAI/bge-reranker-base

 

Mô hình reranking giúp sắp xếp lại kết quả tìm kiếm để tăng độ chính xác. Sau khi truy vấn trả về nhiều đoạn, reranker sẽ đánh giá và chọn đoạn phù hợp nhất. Cách triển khai:

 

Setup Model Provider trên Dify

Sau khi chạy thành công, vào Dify, chọn mục Model Provider, chọn loại “text-embeddings-inference” và thêm hai model nói trên.

Tùy chọn: Dùng mô hình Embedding của OpenAI

Nếu không muốn tự host, bạn có thể sử dụng các mô hình embedding do OpenAI cung cấp:

  • text-embedding-3-small

  • text-embedding-3-large

  • text-embedding-ada-002

Chỉ cần vào Dify → Settings → Model Provider → chọn loại "Text Embedding" và nhập API key OpenAI.

Kết nối LLM – Mô hình ngôn ngữ lớn

Chatbot không chỉ dừng lại ở tìm kiếm đoạn phù hợp – mà còn cần tạo câu trả lời trôi chảy, tự nhiên. Đây là nhiệm vụ của mô hình ngôn ngữ. Bạn có thể sử dụng Gemini 2.0 Flash-Lite vì:

  • 30 requests/phút

  • 1 triệu tokens/phút

  • 1.500 requests/ngày

Key được lấy từ Google AI Studio. Sau khi có key, bạn vào Dify → Settings → Model Provider → chọn “LLM” → điền các thông tin cần thiết.

Tùy chọn khác: bạn cũng có thể dùng GPT-4, Claude, Mistral... tùy nhu cầu và chi phí.

 

Xây dựng Knowledge Base trên Dify

Truy cập tab Knowledge và nhấn Create Knowledge.

  • Nguồn dữ liệu: chọn Import from file và upload file PDF

  • Chunk Settings:

    • Index Method: High Quality

    • Embedding Model: chọn bge-m3

    • Retrieval: Hybrid Search + chọn reranker bge-rerank-base nếu có

Sau khi upload, hệ thống sẽ tự động xử lý và phân đoạn tài liệu thành vector.

📌 Lưu ý: có thể cập nhật thêm file vào knowledge hiện tại mà không cần tạo lại.

Tạo chatbot bằng giao diện Dify Studio

Chọn tab Studio → Create from Blank → chọn loại App: Chatbot

  • Tên chatbot: VD Chatbot Tuyển sinh SIU

  • Instruction ví dụ: Bạn là trợ lý tuyển sinh của Trường Đại học Tư thục Quốc tế Sài Gòn (SIU)... trả lời các câu hỏi về học phí, ngành học, học bổng...

  • Chọn LLM: Gemini 2.0

  • Chọn Knowledge đã tạo

  • Bật các tính năng cần thiết

  • Nhấn Publish Run App

Kết luận

Việc xây dựng một chatbot có thể trả lời theo tài liệu nội bộ không còn là nhiệm vụ chỉ dành cho các team AI chuyên nghiệp. Với sự hỗ trợ của Dify, mô hình embedding từ Huggingface, và các LLM hiện đại như Gemini hay GPT, bất kỳ tổ chức nào cũng có thể xây dựng được một hệ thống chatbot riêng đáng tin cậy.

👉 Bạn có thể áp dụng mô hình này cho:

  • Tư vấn tuyển sinh

  • Trợ lý nhân sự nội bộ

  • Hỗ trợ khách hàng

  • Hệ thống tra cứu văn bản nội quy, hướng dẫn