- Tin công nghệ
- March 15, 2026
OpenRAG: Nền tảng RAG mã nguồn mở cho AI doanh nghiệp
OpenRAG là một nền tảng RAG (Retrieval-Augmented Generation) mã nguồn mở hướng đến việc “biến dữ liệu thành ngữ cảnh” cho AI doanh nghiệp. Dự án do nhóm Langflow (cùng với sự ủng hộ của IBM) duy trì và phát triển, được cấp phép Apache 2.0. Mục tiêu của OpenRAG là hợp nhất ba công nghệ hàng đầu (Langflow, OpenSearch, Docling) thành một hệ thống hoàn chỉnh, sẵn sàng triển khai. Với một lần cài đặt, người dùng có thể có ngay hệ thống tìm kiếm tài liệu thông minh, hỗ trợ hỏi đáp dựa trên LLM và tra cứu ngữ nghĩa mà không phải tự cấu hình từng phần riêng lẻ.

Tổng quan dự án
OpenRAG ra đời dưới sự dẫn dắt của IBM nhằm “mở khóa” khả năng RAG cho cộng đồng phát triển. Dự án cung cấp một nền tảng mã nguồn mở, do nhóm Langflow quản lý với giấy phép Apache-2.0. Ngôn ngữ chính của hệ thống là Python (với phiên bản yêu cầu ≥3.13) và phần giao diện được xây dựng trên Next.js. Theo trang GitHub chính thức, OpenRAG đã đạt ~3000 sao, ~268 fork và có ~39 cộng tác viên, cho thấy cộng đồng đang phát triển nhanh.
OpenRAG tích hợp ba thành phần lõi: Langflow (xây dựng và triển khai các workflow RAG qua giao diện trực quan), OpenSearch (cơ sở dữ liệu tìm kiếm ngữ nghĩa và vector), và Docling (xử lý, tách văn bản từ nhiều định dạng tài liệu). Cụ thể, Langflow trong OpenRAG xử lý luồng công việc có tác nhân (ví dụ xử lý và truy xuất tài liệu, tái xếp hạng kết quả, điều phối nhiều agent) với giao diện kéo-thả cho phép tùy chỉnh dễ dàng. OpenSearch cung cấp khả năng tìm kiếm vector quy mô lớn với bảo mật cấp doanh nghiệp và đa người dùng. Docling đảm nhận bước xử lý tài liệu đầu vào (như PDF phức tạp, hình ảnh văn bản, v.v.) để phân đoạn và chuẩn hóa trước khi lưu vào kho dữ liệu.
Kiến trúc và thành phần
OpenRAG được triển khai dưới dạng một kiến trúc nhẹ, đóng gói đa dịch vụ (container-based). Mô hình tổng quan gồm: (1) Máy chủ OpenRAG Backend – dịch vụ điều phối trung tâm quản lý mọi thành phần khác; (2) Langflow Container – chạy Langflow để chỉnh sửa và triển khai các flow; (3) Docling Serve – dịch vụ xử lý tài liệu cục bộ do backend điều khiển; (4) OpenSearch – lưu trữ chỉ mục văn bản và embeddings; (5) Front-end OpenRAG – giao diện web cho người dùng; (6) Cổng nối ngoài – tích hợp các dịch vụ lưu trữ đám mây (Google Drive, OneDrive, SharePoint, AWS S3…) để nạp tài liệu vào hệ thống. Quá trình tiêu chuẩn như sau: người dùng tải tài liệu lên qua giao diện hoặc API; Docling tách và chuẩn hóa văn bản; OpenRAG backend phối hợp với Langflow để nhúng vector và chỉ mục nội dung lên OpenSearch; khi truy vấn, Langflow thực hiện tìm kiếm ngữ nghĩa, sắp xếp kết quả và dùng LLM tạo câu trả lời có dẫn nguồn.
graph LR
subgraph Người dùng
U[Người dùng (trình duyệt/API)]
end
subgraph OpenRAG_Platform
A[Backend OpenRAG]
B[Langflow (Xử lý Flow)]
C[Docling (Xử lý Tài liệu)]
D[OpenSearch (Lưu trữ)]
F[Frontend (Giao diện Web)]
E[Kho Đám mây/DS, v.v.]
end
U --> F
F --> A
A --> B
A --> C
A --> E
B --> D
C --> D
Đồ thị trên mô tả kiến trúc cơ bản của OpenRAG: dịch vụ Backend điều phối các thành phần Langflow và Docling, trong khi Langflow và Docling kết nối với OpenSearch để lưu và truy xuất nội dung. Các kết nối ngoài (Drive, OneDrive…) được quản lý qua Backend, và người dùng tương tác qua Frontend.
Cài đặt và triển khai
OpenRAG cung cấp nhiều tùy chọn triển khai, phù hợp cho cả môi trường cục bộ lẫn doanh nghiệp quy mô lớn. Phiên bản cơ bản yêu cầu Python ≥3.13 và Docker/Podman (8 GB RAM, ≥50 GB lưu trữ). Có hai cách chính:
- Terminal-managed (uv/uvx): Sử dụng công cụ uv (tương tự pip) để cài OpenRAG. Lệnh
uv run openraghoặcuvx openragsẽ tạo môi trường cách ly và khởi chạy các container. Quá trình khởi động sẽ hướng dẫn cấu hình ban đầu (tệp.env) và tự động tạo file Docker Compose. Giao diện dòng lệnh (hoặc giao diện TUI với tùy chọn--tui) cung cấp menu tương tác để khởi/dừng dịch vụ, chuyển giữa chế độ CPU/GPU, đặt lại factory, v.v.. - Self-managed (Docker/Podman/Kubernetes): Người dùng tự chuẩn bị file
.env(cấu hình API key, CSDL, v.v.) rồi chạydocker-compose up(hoặc Podman) để khởi các container OpenRAG. Một Helm chart cũng được cung cấp cho triển khai trên Kubernetes (đa đám mây hoặc on-prem). Lưu ý trên Windows, OpenRAG phải chạy trong WSL (không hỗ trợ ảo hóa lồng nhau).
Sau khi cài đặt, người dùng cần hoàn tất quá trình onboarding đầu tiên để thiết lập mật khẩu và các biến môi trường bắt buộc. Sau đó hệ thống đã sẵn sàng: ta có thể tải tài liệu và bắt đầu tra cứu qua giao diện web hoặc API.
API, SDK và CLI
OpenRAG hỗ trợ đầy đủ API REST (FastAPI) cùng các thư viện khách (SDK) để tích hợp vào ứng dụng.
- CLI/Terminal: Dưới dạng ứng dụng Python, OpenRAG có lệnh điều khiển
openrag(chạy quauv run) để khởi chạy hoặc quản lý quy trình. Ngoài ra, giao diện Terminal/TUI đã nêu giúp thao tác dễ dàng. - SDK Python: Gói
openrag-sdkcho phép gọi API một cách trực quan. Ví dụ, sau khi càipip install openrag-sdkvà thiết lậpOPENRAG_URL, mã Python đơn giản như sau sẽ thực hiện truy vấn:
import asyncio
from openrag_sdk import OpenRAGClient
async def main():
async with OpenRAGClient() as client:
response = await client.chat.create(message="What is RAG?")
print(response.response)
print(f"Chat ID: {response.chat_id}")
asyncio.run(main())
Mã trên khởi tạo một OpenRAGClient và gửi câu hỏi đến hệ thống, sau đó in kết quả. SDK hỗ trợ cả chế độ streaming để nhận đáp án dần và tích hợp các sự kiện nguồn trích dẫn. Thông số OPENRAG_API_KEY và OPENRAG_URL có thể cấu hình qua biến môi trường hoặc đối số khởi tạo.
- SDK TypeScript/JavaScript: Tương tự, thư viện
openrag-sdk(npm) cho phép gọi API từ ứng dụng Node.js/Browser. Ví dụ:
import { OpenRAGClient } from "openrag-sdk";
const client = new OpenRAGClient(); // tự lấy OPENRAG_URL/KEY từ env
const response = await client.chat.create({ message: "What is RAG?" });
console.log(response.response);
console.log(`Chat ID: ${response.chatId}`);
Ví dụ trên cho thấy cách tạo client và gửi truy vấn.
- Model Context Protocol (MCP): OpenRAG cung cấp server MCP (gói
openrag-mcp) giúp kết nối với các AI assistants hỗ trợ MCP (như Cursor, Claude Desktop). Chỉ cầnpip install openrag-mcpvà thiết lậpOPENRAG_URL/OPENRAG_API_KEYđể cho phép trợ lý ngôn ngữ truy vấn kiến thức từ OpenRAG như một nguồn ngữ cảnh.
Tóm lại, ngoài giao diện web, OpenRAG có cả CLI và các SDK hỗ trợ triển khai trong ứng dụng, giúp dễ dàng thực hiện các thao tác truy vấn, quản lý biết lập (ví dụ list, xóa cuộc hội thoại, v.v.) thông qua code.
Tích hợp và khả năng tương thích
OpenRAG thiết kế mở, có thể kết nối với nhiều hệ thống và công cụ:
- CSDL vector và mô hình ngôn ngữ: Mặc định OpenRAG sử dụng OpenSearch làm kho dữ liệu ngữ nghĩa (lưu văn bản gốc và vectơ nhúng). OpenSearch cung cấp tìm kiếm hỗn hợp (từ khóa + vector) và tính năng bảo mật/doanh nghiệp. Do Langflow hỗ trợ đa dạng providers, người dùng có thể tích hợp hầu hết LLM lớn (OpenAI, Anthropic, GPT4all, Bloom, Mistral, v.v.) và dịch vụ embedding khác nhau. Trên nền IBM watsonx.data, OpenRAG có thể dùng các mô hình frontier từ OpenAI/Anthropic hoặc hàng nghìn mô hình do IBM cung cấp.
- Tích hợp đám mây: Hệ thống có sẵn các connector OAuth để nạp tài liệu từ Google Drive, OneDrive, SharePoint, AWS S3… vào OpenSearch. Điều này cho phép OpenRAG dễ dàng truy cập dữ liệu của doanh nghiệp trên mây.
- Định dạng tài liệu: Nhờ Docling, OpenRAG hỗ trợ >20 định dạng tệp khác nhau (PDF, ảnh văn bản, PPT, Excel, email, v.v.). Nội dung được tách và phân đoạn thông minh, giữ cấu trúc như bảng, đề mục để tối đa hóa chất lượng nhúng.
- Khả năng mở rộng & điều phối: OpenRAG có thể triển khai trên Kubernetes (qua Helm chart), tận dụng cơ chế auto-scaling và giám sát sẵn có. Langflow cung cấp luồng RAG agent với tính năng điều phối phức tạp (đa agent, kế hoạch truy vấn…) để xử lý truy vấn lớn hoặc tình huống đa bước.
Nhìn chung, OpenRAG có thể tích hợp vào hệ sinh thái AI hiện hữu: từ việc thay đổi mô hình (thay nhanh LLM) đến chọn CSDL vector thay thế nếu muốn (bằng cách tùy chỉnh flow). Tuy nhiên, theo thiết kế mặc định, OpenRAG chủ yếu “trói” vào OpenSearch làm backend. Các công cụ và component khác đều có thể tùy biến qua giao diện Langflow nhúng.
Bảo mật và quyền riêng tư
OpenRAG thừa hưởng tính năng bảo mật của OpenSearch: mã nguồn mở, được trang bị bảo mật doanh nghiệp (tích hợp TLS, quản lý quyền truy cập, kiểm soát đa người dùng…). Triển khai trên IBM watsonx.data còn bổ sung các cơ chế bảo mật và giám sát bổ sung (governance, xác thực, kiểm toán) để đảm bảo tuân thủ chính sách doanh nghiệp. Mọi dữ liệu vẫn do khách hàng tự quản lý (từ việc lưu trữ trong OpenSearch hay trong hạ tầng của họ), giúp tránh khóa cửa với nhà cung cấp dịch vụ nào. Mặt khác, quyền riêng tư chủ yếu do doanh nghiệp kiểm soát: OpenRAG không thu thập dữ liệu người dùng, tất cả dữ liệu phân tích diễn ra cục bộ (on-prem hoặc trên VPC đám mây).
Hiệu năng và khả năng mở rộng
OpenRAG được thiết kế cho quy mô doanh nghiệp. Mọi tác vụ xử lý nặng (embedding, tìm kiếm vector) được giao cho OpenSearch – một nền tảng đã được chứng minh khả năng xử lý hàng tỷ tài liệu ở quy mô Google-like. Nhờ Docker/Kubernetes, các dịch vụ OpenRAG có thể chạy trên cụm máy lớn, tận dụng đa nhân và GPU nếu cần (hỗ trợ chuyển đổi CPU/GPU qua cờ khởi động). Các thành phần như Langflow và Docling có thể mở rộng theo cụm, đảm bảo khả năng chịu tải cao. IBM khẳng định phiên bản trên watsonx.data hướng đến “throughput cao và nhiệm vụ dài hạn”, nghĩa là ứng dụng OpenRAG có thể mở rộng ngang và dọc tùy hạ tầng. Tính năng như cache, batch và đệm phía client (ví dụ SDK có hỗ trợ stream) cũng giúp giảm độ trễ. Tuy nhiên, giới hạn cụ thể (tốc độ đối đa hoặc độ trễ thực tế) tùy thuộc phần cứng và lượng tài liệu.
Cộng đồng và hệ sinh thái
OpenRAG là dự án trẻ nhưng phát triển nhanh chóng. Trên GitHub hiện tại có ~3.0k sao, ~268 fork và 39 cộng tác viên chính. Đã có 52 phiên bản phát hành (phiên bản ổn định mới nhất 0.3.1, tháng 3/2026) và hơn 100 issue đang mở. Trang tài liệu chính thức liên kết GitHub và Discord/Discussions để cộng tác viên hỏi đáp. IBM cũng đang tích cực quảng bá OpenRAG (ví dụ trên watsonx.data). Nhìn chung cộng đồng đa phần hoạt động tiếng Anh, nhưng cũng có một số tài liệu giới thiệu (như blog của TecAdRise hay bài viết của IBM) để người VN tham khảo.
So sánh với các dự án tương tự
| Tính năng / Dự án | OpenRAG | LangChain | LlamaIndex | Haystack |
|---|---|---|---|---|
| Loại | Nền tảng tích hợp RAG (Full-stack) | Framework xây dựng agent/ứng dụng LLM | Thư viện xây dựng chỉ mục RAG (Python) | Framework RAG/QA sản xuất (Python) |
| Giấy phép | Apache-2.0 | MIT (vừa chuyển từ Apache v1) | MIT (do Jerry Liu phát triển) | Apache-2.0 |
| Triển khai | Chạy Docker/Podman, có Helm chart K8s | Thư viện (pip), embedded code | Thư viện (pip) | Docker Compose; Helm; REST API |
| Giao diện | Web UI (Next.js) và CLI/TUI tương tác | Không UI; khai báo bằng code (Python, TS) | Không UI; cấu hình bằng code | Có UI tùy chọn (haystack-ui) và CLI |
| Orchestrator | Có (Langflow agent flows) | Có (agent chains, LangGraph) | Không (tập trung indexing, retrieval) | Có (pipelines, sơ đồ luồng NLP) |
| CSDL vector | Mặc định dùng OpenSearch | Tương thích nhiều (Pinecone, FAISS, v.v.) | Tương thích nhiều (Pinecone, FAISS, v.v.) | Hỗ trợ Elasticsearch, FAISS, Milvus, Pinecone, Qdrant, v.v. |
| LLM tích hợp | Bất kỳ LLM (OpenAI, Anthropic, HF, WatsonX…) | Bất kỳ (OpenAI, Azure, OpenAI, Hugging Face…) | Bất kỳ (sử dụng thông qua providers) | Bất kỳ (OpenAI, Cohere, HF, v.v.) |
| Xử lý tài liệu | Docling (nhiều định dạng: PDF, PPT, Excel, ảnh văn bản…) | Không trực tiếp (dùng thư viện bên ngoài) | Cung cấp index, không parse file | Hỗ trợ parsing (PDF, HTML, Markdown, v.v.) |
| Bảo mật | OpenSearch enterprise (TLS, RBAC, multi-tenant); có tích hợp governance nếu dùng SaaS IBM | Do người dùng tự bảo mật ứng dụng | Tự quản lý (dựa trên kênh bảo mật của vector store) | Hỗ trợ thiết lập bảo mật của vector store & NLP pipeline |
| Cộng đồng | Đang lớn nhanh (IBM, Langflow hỗ trợ) | Rất lớn (130k sao); công ty LangChain liên tục phát triển | Lớn (14k sao); cộng đồng nghiên cứu nhiều | Trung bình (~21k sao); công ty Deepset chuyên nghiệp |
Bảng trên tóm tắt sự khác biệt chính: OpenRAG là giải pháp đóng gói, có giao diện web và quản lý linh hoạt, trong khi LangChain và LlamaIndex chủ yếu là thư viện để lập trình tuỳ chỉnh. Haystack cũng là hệ thống RAG hoàn chỉnh nhưng thiếu UI thân thiện và chủ yếu tập trung vào QA sản xuất với Elasticsearch/Milvus. OpenRAG nổi bật ở tính «enterprise-ready» (OpenSearch) và giao diện drag-drop (Langflow).
Trường hợp sử dụng và đối tượng mục tiêu
OpenRAG phù hợp cho các tình huống:
- Tìm kiếm tài liệu doanh nghiệp: xây dựng chatbot nội bộ cho công ty, hỏi đáp văn bản chính sách, tài liệu kỹ thuật, email… Ví dụ, trợ lý hỗ trợ khách hàng có thể truy xuất hồ sơ, tài liệu hướng dẫn và gọi API quản lý đơn hàng.
- Tra cứu pháp lý/tuân thủ: hệ thống tra cứu các quy định, hợp đồng, và tự động đối chiếu kiến thức với luật định hiện hành. Khả năng xử lý định dạng phức tạp (PDF chứa bảng, công thức) rất hữu ích.
- Kinh doanh/CRM: trợ lý bán hàng trích xuất thông tin từ CRM, báo cáo, lịch sử gọi điện để tổng hợp thông tin khách hàng, đề xuất chiến lược. Trợ lý nghiên cứu thị trường rút trích thông tin từ báo cáo kinh doanh.
- Nghiên cứu tri thức: các nhóm nghiên cứu/đa ngành có thể dùng OpenRAG để tập trung tri thức từ nhiều nguồn (bài báo khoa học, báo cáo) và phối hợp LLM trả lời câu hỏi chuyên sâu.
Nhìn chung, OpenRAG hướng đến kỹ sư, nhà khoa học dữ liệu, và nhóm AI trong tổ chức lớn cần triển khai RAG nhanh chóng mà không muốn tự xây từ đầu. Các tổ chức lo lắng về lock-in khi dùng giải pháp đóng hộp thường đánh giá OpenRAG cao vì khả năng tự điều chỉnh và kiểm soát hoàn toàn dữ liệu.
Hạn chế và câu hỏi mở
- Gắn với OpenSearch: Phiên bản mặc định của OpenRAG sử dụng OpenSearch làm kho dữ liệu ngữ nghĩa. Điều này mang lại độ tin cậy doanh nghiệp, nhưng cũng có nghĩa là nếu tổ chức đã dùng hệ thống vector DB khác (Pinecone, Milvus, Qdrant, v.v.) thì phải tùy chỉnh flow hoặc chấp nhận thêm thành phần. Hiện chưa rõ liệu phiên bản chuẩn có hỗ trợ tuỳ chọn thay thế (không thấy trong tài liệu chính thức).
- Khả năng tùy biến nâng cao: Mặc dù Langflow cho phép tạo luồng tuỳ biến, việc chỉnh sửa luồng sâu (ví dụ thay đổi bộ nhúng, thêm các bước xử lý đặc biệt) có thể đòi hỏi hiểu biết chuyên sâu. Tài liệu nói chung tập trung vào kịch bản mặc định, nên các trường hợp phức tạp hơn (như tích hợp LLM nội bộ, mã hoá dữ liệu nhạy cảm) có thể cần tự nghiên cứu thêm.
- Đa ngôn ngữ: Giao diện và tài liệu chính hiện chỉ có tiếng Anh; nếu triển khai trong tổ chức Việt Nam, sẽ cần tự biên dịch quy trình hướng dẫn hoặc chuyển ngữ giao diện. Khả năng Docling tách tiếng Việt tốt ra sao chưa được minh chứng.
- Hiệu năng trong thực tế: Mặc dù nền tảng công bố khả năng quy mô lớn, thông số hiệu năng (độ trễ trung bình khi truy vấn, tốc độ nạp tài liệu mới) chưa được công bố rõ. Cần thử nghiệm cụ thể với khối lượng dữ liệu và câu hỏi thực tế của doanh nghiệp để đánh giá.
- Các yếu tố phụ thuộc: Triển khai yêu cầu Docker hoặc Kubernetes, nên có thể khó khăn với hạ tầng đã cố định (ví dụ Windows Server truyền thống). Trên WSL hiện có một số khuyến cáo (không dùng VM bên trong WSL).
Khuyến nghị đánh giá (POC)
Để đánh giá OpenRAG, chúng tôi đề xuất làm thử nghiệm mẫu theo các bước chính:
- Thiết lập môi trường: Cài đặt OpenRAG tại chỗ (dev/local) bằng
uvx openrag(hoặc Docker Compose). Đảm bảo hoàn thành onboarding và xác minh rằng UI và API đã chạy ổn định. - Nạp dữ liệu thử: Chuẩn bị bộ dữ liệu đại diện (PDF, Excel, hình ảnh văn bản) và thử dùng giao diện web để thêm tài liệu. Kiểm tra kết quả phân đoạn từ Docling (độ chính xác tách văn bản, duy trì cấu trúc) cũng như chỉ mục OpenSearch (thể hiện đầy đủ thông tin). Nếu có dữ liệu trên đám mây (Google Drive, SharePoint), kiểm tra chức năng connector.
- Truy vấn và chất lượng trả lời: Sử dụng cả giao diện chat và SDK để đặt câu hỏi với các tài liệu đã nạp. Đánh giá độ chính xác, đầy đủ của câu trả lời (có dẫn nguồn tài liệu rõ ràng), thời gian phản hồi (độ trễ). So sánh với tiêu chí (ví dụ: >=80% câu hỏi đơn giản đúng/sát…).
- Độ ổn định và hiệu năng: Tạo kịch bản giả lập tải (nhiều truy vấn đồng thời) để đo throughput của hệ thống. Ghi nhận độ trễ trung bình khi tăng lượng người dùng hoặc lượng tài liệu trong chỉ mục. Đánh giá xem phần cứng hiện tại (CPU/RAM) có đáp ứng yêu cầu công ty không.
- Đánh giá tích hợp: Kiểm tra khả năng tích hợp mô hình LLM cụ thể (ví dụ OpenAI vs Anthropic vs LLM nội bộ), embedding, hoặc áp dụng chính sách bảo mật của doanh nghiệp (chứng thực, mã hoá). Thử nghiệm MCP với một tool nào đó (như Cursor) nếu cần.
- Trực quan và UX: Đánh giá giao diện web (giao diện, đa ngôn ngữ, trải nghiệm người dùng) và tài liệu hướng dẫn. Xem xét liệu đào tạo nội bộ hay biên dịch tài liệu có cần thiết.
Các chỉ số (metrics) cần theo dõi: độ chính xác trả lời (như precision/recall trên bộ câu hỏi mẫu), độ trễ (ms) cho mỗi loại truy vấn, tốc độ nạp tài liệu (số tệp/phút), chi phí tài nguyên (CPU/GPU/đĩa) trong khối lượng công việc định. Cùng lúc, cần xem xét tính dễ vận hành (mức độ phức tạp khi nâng cấp, cấu hình). Kết quả đánh giá sẽ giúp quyết định liệu OpenRAG có đáp ứng yêu cầu nghiệp vụ và kỹ thuật của tổ chức hay không.
Tài liệu tham khảo: Thông tin chính thức được trích dẫn từ trang dự án OpenRAG và các nguồn IBM/tech blog liên quan, đảm bảo độ chính xác của báo cáo.




