Lộ trình
Các công ty trên toàn thế giới ngày càng lo ngại về việc bảo vệ thông tin nhạy cảm đồng thời tận dụng sức mạnh của AI. Hướng dẫn này đưa ra một giải pháp toàn diện để xây dựng các ứng dụng AI cục bộ, an toàn bằng cách kết hợp mạnh mẽ các công cụ nguồn mở.
Chúng ta sẽ dùng Self-hosted AI Starter Kit để nhanh chóng thiết lập một môi trường AI cục bộ. Bộ công cụ này sẽ tự động chạy Ollama, Qdrant, n8n và Postgres. Ngoài ra, chúng ta sẽ học cách xây dựng một quy trình AI cho chatbot RAG (Retrieval-augmented generation) sử dụng bộ dữ liệu Harry Potter thông qua bảng điều khiển n8n.
Dù bạn là nhà phát triển, nhà khoa học dữ liệu hay chuyên gia phi kỹ thuật đang tìm cách triển khai các giải pháp AI an toàn, hướng dẫn này sẽ cung cấp nền tảng để bạn tạo dựng các quy trình AI tự lưu trữ mạnh mẽ, đồng thời duy trì toàn quyền kiểm soát dữ liệu nhạy cảm của mình.
AI cục bộ là gì?
AI cục bộ cho phép bạn vận hành các hệ thống và quy trình AI trên hạ tầng của riêng mình thay vì dịch vụ đám mây, nhờ đó tăng cường quyền riêng tư và hiệu quả chi phí.
Nếu bạn mới bước vào hệ sinh thái AI, trước hết hãy xem lộ trình kỹ năng về Kiến thức nền tảng AI của chúng tôi để bắt kịp tốc độ. Hoàn thành chuỗi khóa học này, bạn sẽ có được kiến thức thực hành về các chủ đề AI phổ biến như ChatGPT, mô hình ngôn ngữ lớn, AI sinh tạo và hơn thế nữa.

Hình ảnh của Tác giả
Dưới đây là danh sách công cụ chúng ta sẽ dùng để xây dựng và vận hành các ứng dụng AI cục bộ:
- Docker: Nền tảng đóng gói cho phép gói gọn các thành phần AI vào những môi trường tách biệt, dễ quản lý. Nó giúp chúng ta chạy toàn bộ công cụ AI chỉ với một lệnh.
- n8n: Khung tự động hóa quy trình cho phép bạn xây dựng workflow AI bằng giao diện kéo-thả. Không cần kiến thức lập trình, rất phù hợp với người không chuyên kỹ thuật.
- Postgres: Công cụ lưu trữ toàn bộ dữ liệu và nhật ký, đóng vai trò bộ nhớ đệm cho khung n8n.
- Qdrant: Cơ sở dữ liệu vector và công cụ tìm kiếm giúp nội dung do AI tạo ra có thể tìm kiếm và quản lý được.
- Ollama: Trình quản lý mô hình AI cho phép bạn chạy mọi mô hình ngôn ngữ lớn nguồn mở ngay trên máy với yêu cầu phần cứng tối thiểu.
n8n là khung chính để chúng ta xây dựng workflow AI cho RAG Chatbot. Chúng ta sẽ dùng Qdrant làm kho vector và Ollama làm nhà cung cấp mô hình AI. Kết hợp lại, các thành phần này sẽ giúp tạo hệ thống RAG.
Cài đặt Docker
Chúng ta sẽ tải và cài đặt ứng dụng Docker Desktop từ trang web chính thức của Docker. Việc cài đặt và bắt đầu sử dụng khá dễ dàng.
Tìm hiểu thêm về Docker qua hướng dẫn Docker cho Khoa học Dữ liệu hoặc tham gia khóa học Nhập môn Docker.

Nguồn: Docker: Phát triển ứng dụng Container tăng tốc
Người dùng Windows cần thêm một công cụ để chạy thành công các container Docker: Windows Subsystem for Linux (WSL). Công cụ này cho phép cài đặt một bản phân phối Linux và dùng các ứng dụng Linux trực tiếp trên Windows.
Để cài đặt WSL trên Windows, hãy gõ lệnh sau trong terminal hoặc PowerShell. Nhớ mở PowerShell bằng quyền quản trị viên.
$ wsl --install
Sau khi cài đặt WSL thành công, hãy khởi động lại hệ thống. Tiếp đó, gõ lệnh sau trong PowerShell để kiểm tra Docker có hoạt động bình thường không.
$ docker run hello-world
Docker đã kéo thành công image hello-world và khởi chạy container.

Cài đặt và chạy ứng dụng AI cục bộ với Docker Compose
Trong hướng dẫn này, chúng ta sẽ học cách dùng Docker Compose để thiết lập các dịch vụ AI cục bộ. Cách này cho phép bạn tải image Docker và triển khai container trong vài phút, mang đến phương thức đơn giản để chạy và quản lý nhiều dịch vụ AI trên hạ tầng của bạn.
Đầu tiên, chúng ta sẽ clone n8n-io/self-hosted-ai-starter-kit bằng cách gõ lệnh sau trong terminal.
$ git clone https://github.com/n8n-io/self-hosted-ai-starter-kit.git
$ cd self-hosted-ai-starter-kit
Bộ khởi động là cách dễ nhất để thiết lập máy chủ và ứng dụng cần thiết nhằm xây dựng một workflow AI. Sau đó, chúng ta sẽ tải các image Docker và chạy các container.
$ docker compose --profile cpu up
Nếu bạn có GPU NVIDIA, hãy thử gõ lệnh dưới đây để tận dụng khả năng tăng tốc khi sinh phản hồi. Đồng thời, thiết lập GPU NVIDIA cho Docker theo hướng dẫn Ollama Docker.
$ docker compose --profile gpu-nvidia up
Sẽ mất vài phút do cần tải tất cả image Docker rồi lần lượt chạy các container.

Tất cả dịch vụ Docker đã chạy. Các container Docker ở trạng thái exited được dùng để tải mô hình Llama 3.2 và nhập workflow sao lưu của n8n.

Chúng ta còn có thể kiểm tra trạng thái chạy của container Docker bằng cách gõ lệnh sau trong terminal.
$ docker compose ps
Bộ khởi động đã bao gồm script để tải mô hình Llama 3.2. Tuy nhiên, để có một ứng dụng RAG Chatbot hoàn chỉnh, chúng ta còn cần mô hình embedding. Hãy vào container Docker của Ollama, nhấp thẻ “Exec” và gõ lệnh sau để tải mô hình “nomic-embed-text”.
$ ollama pull nomic-embed-text
Như bạn thấy, chúng ta có thể tương tác với một container Docker như thể đó là một máy ảo riêng biệt.

Mở URL bảng điều khiển n8n http://localhost:5678/ trong trình duyệt để thiết lập tài khoản người dùng n8n bằng email và mật khẩu. Sau đó bấm nút trang chủ trên trang chính và truy cập workflow Demo.
Bản demo là một workflow LLM đơn giản nhận đầu vào của người dùng và sinh phản hồi.

Để chạy workflow, nhấp nút Chat và bắt đầu nhập câu hỏi của bạn. Trong vài giây, phản hồi sẽ được tạo.
Lưu ý rằng chúng ta đang dùng một mô hình ngôn ngữ nhỏ có tăng tốc GPU, nên phản hồi thường chỉ mất khoảng 2 giây.

Tạo workflow AI với bảng điều khiển n8n
Trong dự án này, chúng ta sẽ xây dựng một chatbot RAG (Retrieval-Augmented Generation) sử dụng dữ liệu từ phim Harry Potter để cung cấp phản hồi có ngữ cảnh và chính xác. Đây là dự án no-code, nghĩa là bạn chỉ cần tìm các thành phần workflow cần thiết và kết nối chúng để tạo một quy trình AI.
n8n là nền tảng no-code tương tự Langchain. Hãy theo dõi hướng dẫn RAG với Llama 3.1 8B, Ollama và Langchain để có cái nhìn tổng quan về cách tạo một workflow AI tương tự bằng Langchain.
1. Thêm trình kích hoạt chat
Nhấp nút “Add the first step” ở giữa bảng điều khiển, tìm “Chat Trigger” và thêm vào.

Hãy đảm bảo bạn đã bật “Allow File Uploads”.

2. Thêm kho vector Qdrant
Bạn có thể thêm một thành phần khác tên “Qdrant Vector Store” bằng cách nhấp nút cộng (+) trên thành phần “Chat Trigger” và tìm kiếm nó.
Đổi chế độ thao tác thành “Insert Documents”, đổi bộ sưu tập Qdrant sang “By ID” và nhập ID là “Harry_Potter”.

Khi thoát tùy chọn, bạn sẽ thấy chat trigger đã được kết nối với kho vector của chúng ta.

3. Kết nối mô hình embedding với kho vector
Nhấp nút cộng dưới kho vector Qdrant có nhãn “Embedding”. Bạn sẽ được chuyển tới menu quản lý mô hình, nơi chúng ta chọn embeddings Ollama và đổi mô hình thành “nomic-embed-text:latest”.

4. Kết nối bộ nạp tài liệu với kho vector
Nhấp nút cộng dưới kho vector Qdrant có chữ “Document”, rồi chọn “Default Data Loader” từ menu. Đổi loại dữ liệu thành “Binary”.

Sau đó, thêm bộ tách token với kích thước đoạn 500 và chồng lấp 50 vào bộ nạp tài liệu.

Đây là hình dạng workflow của chúng ta khi hoàn tất. Workflow này sẽ nhận các tệp CSV từ người dùng, chuyển đổi sang văn bản, rồi biến văn bản thành embedding và lưu vào kho vector.

5. Kiểm thử kho vector Qdrant
Nhấp nút Chat ở cuối bảng điều khiển. Khi cửa sổ chat mở, nhấp vào nút tệp như bên dưới.

Trong workflow này, chúng ta sẽ tải toàn bộ các tệp CSV từ bộ dữ liệu Harry Potter Movies. Tuy nhiên, để kiểm thử workflow, chúng ta sẽ chỉ tải một tệp CSV tên 'spell' dựa trên truy vấn người dùng.

Bạn có thể vào máy chủ Qdrant bằng URL http://localhost:6333/dashboard và kiểm tra xem tệp đã được nạp vào kho vector hay chưa.

Giờ hãy thêm các tệp còn lại vào kho vector.

6. Thêm AI agent
Chúng ta sẽ kết nối chat trigger với kho vector, liên kết nó với AI agent và đổi loại agent thành “Conversation Agent”.

7. Kết nối mô hình chat với AI agent
Nhấp nút “Chat Model” dưới AI agent và chọn mô hình Ollama Chat từ menu. Sau đó đổi tên mô hình thành “Llama3.2:latest”.

8. Kết nối công cụ kho vector với AI agent
Nhấp “Tool” dưới AI agent và chọn công cụ kho vector từ menu. Cung cấp tên công cụ và mô tả.

9. Kết nối Qdrant retriever với công cụ kho vector
Chúng ta cần thêm các thành phần cho công cụ kho vector. Trước hết, tích hợp Qdrant làm kho vector và đặt Collection ID là "Harry_Potter." Kho vector này sẽ truy cập bộ sưu tập Harry Potter trong quá trình tìm kiếm tương đồng. Đồng thời, đổi chế độ thao tác thành "Retrieved Documents."

10. Kết nối mô hình chat với công cụ kho vector
Công cụ kho vector cũng cần một mô hình LLM. Chúng ta sẽ kết nối mô hình chat Ollama và đổi mô hình thành “llama3.2:latest”.

11. Kết nối mô hình embedding với Qdrant retriever
Ở bước cuối, chúng ta sẽ cung cấp cho kho vector truy xuất một mô hình embedding. Nhờ đó, nó có thể chuyển truy vấn của người dùng thành embedding rồi chuyển embedding về văn bản để LLM xử lý.
Hãy đảm bảo bạn cung cấp đúng mô hình embedding cho kho vector của mình.

Đây là hình dạng workflow AI hoàn chỉnh.

12. Kiểm thử workflow AI
Nhấp nút chat để bắt đầu đặt câu hỏi về vũ trụ Harry Potter.
Prompt: “Nơi bí mật nhất ở Hogwarts là gì?”

Prompt: “Phép thuật mạnh nhất là gì?”

Workflow AI của chúng ta hoạt động nhanh và mượt. Cách tiếp cận no-code này khá dễ triển khai. n8n cũng cho phép người dùng chia sẻ ứng dụng để bất kỳ ai cũng có thể truy cập qua liên kết, giống như ChatGPT.
Kết luận
n8n là công cụ hoàn hảo cho các dự án LLM/AI, đặc biệt với người không chuyên kỹ thuật. Đôi khi, chúng ta thậm chí không cần tạo workflow từ đầu. Tất cả những gì cần làm là tìm các dự án tương tự trên trang web n8n, sao chép mã JSON và dán vào bảng điều khiển n8n của chúng ta. Đơn giản là vậy.

Nguồn: Khám phá 900+ workflow tự động hóa từ cộng đồng n8n
Trong hướng dẫn này, chúng ta đã biết về AI cục bộ và cách dùng bộ self-hosted AI starter kit để xây dựng và triển khai nhiều dịch vụ AI. Sau đó, chúng ta mở bảng điều khiển n8n và tạo workflow AI của riêng mình bằng Qdrant, mô hình embedding, công cụ kho vector, LLM và bộ nạp tài liệu. Việc tạo và chạy workflow với n8n khá dễ dàng. Nếu bạn mới với các công cụ AI và muốn tìm hiểu các giải pháp AI no-code, hãy xem thêm các tài nguyên khác của chúng tôi:
Là một nhà khoa học dữ liệu được chứng nhận, tôi đam mê tận dụng công nghệ tiên tiến để tạo ra các ứng dụng học máy đổi mới. Với nền tảng vững chắc về nhận dạng giọng nói, phân tích và báo cáo dữ liệu, MLOps, AI hội thoại và NLP, tôi đã rèn giũa kỹ năng phát triển các hệ thống thông minh có thể tạo ra tác động thực sự. Bên cạnh chuyên môn kỹ thuật, tôi cũng là một người truyền đạt tốt, có khả năng chắt lọc các khái niệm phức tạp thành ngôn ngữ rõ ràng, súc tích. Nhờ đó, tôi trở thành một blogger được nhiều người quan tâm trong lĩnh vực khoa học dữ liệu, chia sẻ góc nhìn và kinh nghiệm với cộng đồng các chuyên gia dữ liệu ngày càng lớn. Hiện tại, tôi tập trung vào sáng tạo và biên tập nội dung, làm việc với các mô hình ngôn ngữ lớn để phát triển nội dung mạnh mẽ và hấp dẫn, giúp doanh nghiệp và cá nhân tận dụng tối đa dữ liệu của mình.
