Hướng dẫn RAGFlow: Cách cài đặt công cụ RAG mã nguồn mở, cách nạp tài liệu và cách ngăn AI bịa đặt

Ném toàn bộ tủ PDF của công ty cho AI, rồi nó bắt đầu nghiêm túc nói nhảm — đây có lẽ là tình huống mà bất kỳ ai muốn xây dựng cơ sở tri thức doanh nghiệp đều từng gặp phải. RAGFlow giải quyết vấn đề này bằng cách kết hợp "hiểu tài liệu sâu" với các trích dẫn có thể truy xuất nguồn gốc. Bài viết này sẽ hướng dẫn từ cài đặt Docker, xây dựng cơ sở tri thức, thiết lập mô hình, cho đến cách làm cho câu trả lời đi kèm nguồn gốc.

Lời mở đầu: Khi AI đọc nhầm PDF thành một đống hỗn độn

Tôi từng chứng kiến một trường hợp thực tế: một công ty muốn xây dựng cơ sở tri thức nội bộ và ném hơn ba trăm tệp PDF cẩm nang sản phẩm vào một hệ thống RAG. Kết quả là khi AI trả lời, nó lại nối các con số trong bảng với đoạn văn bản khác, hoặc trích dẫn luôn tuyên bố bản quyền ở chân trang làm nội dung chính. Khi hỏi nó "Công suất của model A là bao nhiêu?", nó lại tự tin trả lời một con số vốn thuộc về model B. Kỹ sư phụ trách chỉ biết cười trừ và nói rằng vấn đề không phải do mô hình ngốc, mà là "tài liệu vốn không được đọc một cách đàng hoàng".

Đó chính là điểm khó thực sự của RAG — không phải là kết nối mô hình, mà là cắt xén chính xác những tài liệu có bố cục phức tạp, chứa bảng biểu hoặc bản quét thành các phân đoạn mà mô hình có thể tiêu hóa được. RAGFlow tập trung giải quyết chính xác vấn đề này. Bài viết này sẽ hướng dẫn bạn cách cài đặt thực tế, nạp tài liệu và giúp hệ thống tự động đính kèm nguồn trích dẫn.

RAGFlow là gì?

RAGFlow là công cụ RAG mã nguồn mở (Retrieval-Augmented Generation - Tạo sinh tăng cường truy xuất) do InfiniFlow phát triển, với mã nguồn được công khai trên GitHub. Nếu bạn vẫn chưa chắc chắn RAG là gì, hãy đọc bài viết RAG là gì? của chúng tôi để dễ hiểu hơn — nói một cách đơn giản, đây là cách để AI tra cứu tài liệu trong kho dữ liệu của bạn trước khi trả lời, sau đó dựa trên những gì tìm được để đưa ra câu trả lời thay vì tự bịa ra theo trí nhớ.

Điểm khác biệt lớn nhất giữa RAGFlow và các công cụ RAG khác chính là tính năng "Hiểu tài liệu sâu" (DeepDoc). Các công cụ đọc PDF thông thường chỉ đơn thuần rút trích văn bản ra, khiến bố cục bị đảo lộn ngay khi gặp cấu trúc phức tạp. RAGFlow sẽ hiểu cấu trúc bố cục — đâu là tiêu đề, đâu là bảng, đâu là đoạn văn, thậm chí cả các bản quét (PDF dạng hình ảnh) cũng có thể được xử lý thông qua OCR. Nó hỗ trợ nhiều định dạng khác nhau như Word, bản thuyết trình (PPT), Excel, văn bản thuần túy, hình ảnh, bản quét, dữ liệu có cấu trúc và trang web.

Một điểm quan trọng khác là trích dẫn có thể truy xuất. Khi trả lời, nó sẽ đánh dấu cơ sở của câu trả lời, cho phép bạn thấy "câu nói này xuất phát từ đoạn nào của tài liệu nào", từ đó giảm đáng kể khả năng bạn bị AI "lừa". Nó cũng tích hợp khả năng điều phối Agent của các nền tảng như Dify, hỗ trợ đưa RAG, công cụ và MCP vào một quy trình làm việc trực quan (visual workflow).

Có thể dùng để làm gì?

  • Cơ sở tri thức nội bộ doanh nghiệp: Nạp cẩm nang sản phẩm, quy trình chuẩn (SOP), mẫu hợp đồng vào hệ thống, nhân viên có thể dùng ngôn ngữ tự nhiên để hỏi và nhận câu trả lời kèm nguồn trích dẫn.
  • Hỗ trợ hỏi đáp chăm sóc khách hàng: Kết nối với các câu hỏi thường gặp (FAQ) và tài liệu kỹ thuật để làm bộ não cho chatbot.
  • Nghiên cứu và phân tích: Các tài liệu có bố cục phức tạp và đòi hỏi trích dẫn chính xác như án phí, báo cáo tài chính, luận văn chính là thế mạnh của DeepDoc.
  • Bộ não thứ hai cá nhân: Ném các ghi chú và sách điện tử mà bạn tích lũy qua nhiều năm vào hệ thống để biến nó thành một cơ sở tri thức có thể trò chuyện được.

Nếu bạn muốn hiểu rõ cách thiết lập toàn bộ hệ thống RAG, bạn có thể đọc kết hợp với Hướng dẫn thực thi RAG.

Cách sử dụng: Trải nghiệm lần đầu

RAGFlow được triển khai bằng Docker, quy trình không quá khó nhưng đòi hỏi cấu hình máy tính ở mức nhất định. Hãy xem qua các thông số kỹ thuật trước.

1. Xác nhận yêu cầu hệ thống

Khuyến nghị từ nhà phát triển: CPU tối thiểu 4 nhân, RAM tối thiểu 16GB, ổ cứng tối thiểu 50GB, Docker phiên bản 24 trở lên, Docker Compose v2.26 trở lên. Yêu cầu về RAM là điểm cực kỳ quan trọng — hệ thống phải chạy công cụ truy xuất vector, nếu không đủ RAM sẽ liên tục bị treo, đừng mong dùng một cỗ máy nhỏ 4GB để cố chạy.

2. Kéo dự án và khởi động

Sau khi clone từ GitHub, hãy đi đến thư mục docker và khởi động:

bash
git clone https://github.com/infiniflow/ragflow.git
cd ragflow/docker
docker compose up -d

Lần chạy đầu tiên sẽ tải khá nhiều image, hãy pha một cốc cà phê và chờ đợi. Sau khi chạy xong, hãy dùng lệnh docker ps để xác nhận các container đã khởi động thành công.

3. Mở trang quản trị và thiết lập mô hình

Sau khi dịch vụ khởi động, hãy mở trình duyệt và truy cập http://IP_máy_chủ_của_bạn (mặc định là cổng 80). Đăng ký một tài khoản để đăng nhập, sau đó vào phần cài đặt để điền khóa API của mô hình — bước này không thể bỏ qua. RAGFlow không tích hợp sẵn mô hình, bạn cần cho nó biết sử dụng LLM nào (để trả lời) và mô hình embedding nào (để chuyển văn bản thành vector). Bạn có thể điền OpenAI, các mô hình đám mây khác hoặc kết nối với Ollama chạy cục bộ.

4. Xây dựng cơ sở tri thức và nạp tài liệu

Tạo một Knowledge Base (Cơ sở tri thức) và tải lên các tệp PDF, Word của bạn. Điểm mấu chốt ở đây: sau khi tải lên, bạn phải chọn một mẫu cắt khối (chunk method). RAGFlow cung cấp nhiều mẫu tương ứng với các dạng tài liệu khác nhau — tài liệu thông thường, luận văn, sách, pháp luật, bài thuyết trình, bảng biểu, cặp hỏi đáp,... Chọn đúng mẫu sẽ giúp chất lượng cắt khối khác biệt rất lớn. Sau khi chọn xong, nhấn phân tích (parse), hệ thống sẽ chạy DeepDoc để chia nhỏ tài liệu thành các phân đoạn.

5. Kiểm tra kết quả cắt khối

Đây là tính năng đáng dùng nhất của RAGFlow: sau khi phân tích, nó sẽ trực quan hóa kết quả cắt khối cho bạn xem. Bạn có thể thấy hình dạng của từng khối và vị trí tương ứng trong văn bản gốc. Nếu phát hiện bị cắt hỏng — chẳng hạn như bảng bị ngắt đoạn — bạn có thể điều chỉnh thủ công. Đừng thấy phiền phức, bước này quyết định trực tiếp đến độ chính xác của câu trả lời sau đó.

6. Tạo trợ lý trò chuyện và kiểm tra hỏi đáp

Sau khi việc cắt khối không còn vấn đề gì, hãy tạo một Chat, gắn cơ sở tri thức này vào và bạn có thể bắt đầu đặt câu hỏi. Khi trả lời, hệ thống sẽ đính kèm nguồn trích dẫn, bấm vào sẽ nhảy đến đoạn văn bản gốc.

Mẹo nâng cao

Phân tách cơ sở tri thức theo dạng tài liệu: Đừng ném hợp đồng pháp lý và tài liệu giới thiệu sản phẩm vào cùng một cơ sở tri thức rồi dùng chung một mẫu. Bố cục quá khác biệt và logic cắt khối không giống nhau. Tạo các kho lưu trữ riêng biệt và chọn các mẫu tương ứng sẽ cải thiện đáng kể độ chính xác.

Tận dụng truy xuất hỗn hợp (Hybrid Retrieval): RAGFlow thực hiện đồng thời truy xuất vector và truy xuất từ khóa BM25, kết hợp thêm việc sắp xếp lại (re-rank). Truy xuất thuần vector thường không nắm bắt chính xác các truy vấn như " danh từ chính xác, mã linh kiện, số điều khoản", và truy xuất từ khóa sẽ bổ sung hoàn hảo cho điểm yếu này. Tính năng này được bật sẵn theo mặc định, nhưng bạn có thể tinh chỉnh trọng số.

Kết nối Ollama để chạy mô hình cục bộ: Nếu bạn quan tâm đến quyền riêng tư dữ liệu và không muốn đưa tài liệu công ty lên đám mây, bạn có thể trỏ cả LLM và mô hình embedding về Ollama cục bộ để chạy toàn bộ hệ thống ngoại tuyến. Đổi lại, bạn sẽ cần phần cứng mạnh mẽ hơn.

Tích hợp API vào hệ thống riêng: RAGFlow cung cấp API, bạn có thể sử dụng nó làm tầng truy xuất phía backend, còn phía frontend dùng giao diện của riêng bạn hoặc kết nối với hệ thống chăm sóc khách hàng hiện có. Nếu muốn làm quy trình làm việc phức tạp hơn, bạn cũng có thể sử dụng tính năng điều phối Agent của nó, với các khái niệm tương đồng với mảng Phát triển AI Agent.

Các lỗi thường gặp và lưu ý

  • Cấp quá ít RAM nhưng vẫn cố cài đặt: 16GB là mức tối thiểu chứ không phải mức khuyến nghị, thấp hơn mức này container sẽ liên tục bị sập và người mới thường mắc kẹt ở đây mà không tìm ra nguyên nhân.
  • Quên thiết lập mô hình embedding: Nhiều người chỉ thiết lập LLM dùng để trả lời mà quên mất mô hình embedding, kết quả là tài liệu hoàn toàn không được vector hóa chính xác và hỏi gì cũng trả lời sai bét. Bạn bắt buộc phải thiết lập cả hai.
  • Chọn bừa mẫu cắt khối hoặc không kiểm tra: Dùng mẫu mặc định để nạp một tệp PDF có cấu trúc phức tạp, sau đó phàn nàn rằng câu trả lời tệ — vấn đề 90% nằm ở khâu cắt khối. Bạn nhất thiết phải xem kết quả trực quan, nếu hỏng thì phải điều chỉnh lại.
  • Nghĩ rằng có trích dẫn là đúng 100%: Trích dẫn có thể truy xuất giúp bạn "có thể xác minh", chứ không phải là "đảm bảo đúng". Trích dẫn làm giảm rủi roa ảo giác, nhưng mô hình vẫn có thể hiểu nhầm các đoạn văn bản. Trong các tình huống quan trọng, vui lòng rà soát lại nguồn gốc thủ công. Để hiểu thêm về lý do tại sao AI lại nói nhảm, hãy xem bài Ảo giác của AI là gì.
  • Chưa suy nghĩ thấu đáo về quyền riêng tư dữ liệu: Khi sử dụng mô hình đám mây, các đoạn tài liệu của bạn sẽ được gửi đến nhà cung cấp mô hình. Đối với dữ liệu nhạy cảm, vui lòng sử dụng giải pháp mô hình cục bộ.

Đánh giá từ TheAI Academy

Có rất nhiều công cụ hỗ trợ RAG trên thị trường, nhưng phần lớn tập trung vào việc "làm thế nào để kết nối mô hình, làm thế nào để lưu trữ vector" mà lại ngầm định rằng tài liệu có thể được đọc một cách sạch sẽ. Trên thực tế, phân tích tài liệu mới chính là nơi khiến 90% dự án đổ bể. RAGFlow dồn sức vào DeepDoc và tính năng trực quan hóa việc cắt khối, điều này đồng nghĩa với việc họ thừa nhận và trực tiếp giải quyết phần công việc "bẩn" nhất này. Đối với các đội ngũ muốn xây dựng cơ sở tri thức doanh nghiệp nhưng đang phát điên vì bảng biểu và bản quét, sự đánh đổi này là hoàn toàn đúng đắn.

Làm RAG lâu ngày, bạn sẽ hiểu một câu nói: Chất lượng của câu trả lời không chiến thắng ở việc mô hình mạnh đến đâu, mà chiến thắng ở việc tài liệu có được đọc một cách đàng hoàng hay không. RAGFlow đặt cược vào điều này, và họ đã đặt cược đúng.

Cần lưu ý rằng đây là một công cụ định hướng kỹ thuật, đòi hỏi bạn phải biết sử dụng Docker và sở hữu một cỗ máy đủ tầm, chứ không phải là một dịch vụ đám mây chỉ cần bấm cài là dùng được. Nếu bạn đơn giản chỉ muốn cá nhân trải nghiệm thử RAG, ngưỡng rào cản có thể hơi cao; nhưng nếu bạn muốn tự dựng, có khả năng kiểm soát và xử lý các tài liệu phức tạp, công cụ này hoàn toàn xứng đáng để bạn dành một buổi chiều cài đặt và vọc vạch.

Nguồn tham khảo

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

RAGFlow có miễn phí không? Tự host có mất phí không?

Bản thân RAGFlow là mã nguồn mở, nếu bạn tự triển khai bằng Docker trên máy chủ của mình thì phần mềm không mất phí. Tuy nhiên có hai khoản chi phí: thứ nhất là phần cứng (khuyến nghị máy có RAM từ 16GB trở lên), thứ hai là chi phí mô hình — các API LLM đám mây và mô hình embedding mà bạn kết nối sẽ tính phí riêng. Nếu chuyển sang dùng hoàn toàn mô hình Ollama chạy cục bộ, về lý thuyết bạn có thể đạt chi phí API bằng 0, đổi lại bạn cần phần cứng mạnh hơn. Phía chính thức cũng cung cấp gói trả phí trên đám mây, những ai không muốn tự host có thể cân nhắc.

Tôi không biết lập trình nhiều thì có cài được không?

Việc cài đặt RAGFlow chủ yếu dựa vào Docker, chỉ cần làm theo các lệnh clone dự án và chạy docker compose up, hầu như không cần viết mã. Nhưng bạn cần có khái niệm cơ bản về dòng lệnh và Docker, có thể tự debug khi container không khởi động được hoặc không đủ bộ nhớ, nên đây là công cụ hướng đến kỹ sư. Người mới hoàn toàn chưa từng chạm vào cửa sổ dòng lệnh sẽ thấy rào cản hơi cao, khuyên bạn nên tìm đồng nghiệp biết về Docker để hỗ trợ triển khai lần đầu.

Tại sao nhất định phải chọn mẫu phân đoạn? Dùng mặc định không được sao?

Dùng mặc định cũng được, nhưng kết quả thường không lý tưởng. Các mẫu phân đoạn của RAGFlow được thiết kế cho các loại tài liệu khác nhau — luận văn, sách, văn bản pháp lý, bản thuyết trình, bảng biểu đều có logic tương ứng. Tài liệu có bố cục phức tạp nếu chọn nhầm mẫu sẽ làm đứt gãy bảng biểu, trộn lẫn tiêu đề và nội dung văn bản, kéo tụt độ chính xác của câu trả lời. Dành một phút để chọn đúng mẫu và xem kết quả trực quan sau khi phân tích là bước mang lại hiệu quả cao nhất, đừng tiết kiệm thời gian này.

RAGFlow khác gì với các công cụ như Dify và LangChain?

Định vị khác nhau. LangChain là khung phát triển dành cho các kỹ sư viết mã để lắp ráp quy trình RAG; Dify hướng nhiều hơn đến nền tảng phát triển ứng dụng LLM với phạm vi bao phủ rộng. Trong khi đó, RAGFlow dồn trọng tâm vào "hiểu tài liệu và chất lượng truy xuất", tính năng phân tích sâu DeepDoc và trực quan hóa phân đoạn là điểm nhấn của nó. Nếu nỗi đau của bạn là "tài liệu đọc không sạch, câu trả lời không chính xác", RAGFlow là đúng bệnh; nếu bạn cần một nền tảng điều phối ứng dụng hoàn chỉnh, có thể bạn sẽ cần kết hợp hoặc chuyển sang dùng các công cụ như Dify.

繁體中文版 →