Tracks
Bạn còn băn khoăn về việc gửi prompt lên máy chủ đám mây? Bảo mật là mối quan tâm lớn với nhiều người, và điều đó hoàn toàn có lý.
Bạn chọn ChatGPT hoặc Claude, nhập một prompt, và yêu cầu sẽ được gửi đến hạ tầng của người khác. Với hầu hết trường hợp sử dụng, điều đó ổn. Nhưng nếu bạn làm việc với dữ liệu nhạy cảm hoặc mã nguồn độc quyền, đó có thể là rủi ro bảo mật. Ngoài ra, các giao diện đám mây buộc bạn phải gắn với những mô hình cụ thể, giới hạn tốc độ và các gói giá.
Open WebUI là một giao diện tự lưu trữ, chạy trên trình duyệt để tương tác với LLM. Nó giống giao diện của ChatGPT, nhưng chạy trên chính máy của bạn. Nó kết nối với Ollama, các API tương thích OpenAI và các mô hình cục bộ, nên dữ liệu của bạn ở nguyên nơi bạn đặt nó.
Trong bài viết này, tôi sẽ hướng dẫn bạn cài đặt Open WebUI với Docker, kết nối nó với một mô hình cục bộ và dùng cho các tác vụ thực tế như trò chuyện và sinh mã.
Open WebUI là gì và hoạt động như thế nào
Open WebUI là một giao diện chat trên trình duyệt để tương tác với LLM - tương tự ChatGPT, nhưng chạy trên máy của bạn.
Kiến trúc đơn giản hết mức có thể. Có một frontend để bạn truy cập bằng trình duyệt, và một backend kết nối tới các nhà cung cấp mô hình như Ollama hoặc bất kỳ API tương thích OpenAI nào.
Vì vậy, Open WebUI không trực tiếp chạy mô hình - nó chỉ giao tiếp với bất kỳ backend nào bạn trỏ tới.
Hãy coi nó như cánh cửa “vạn năng” cho thiết lập AI cục bộ của bạn.
Điều này có nghĩa bạn có thể thay đổi backend mô hình mà không cần chỉnh sửa giao diện, và bạn có thể chạy giao diện trên một máy trong khi mô hình chạy trên máy khác.
Với Open WebUI, bạn có:
- Giao diện chat để gửi prompt và đọc phản hồi
- Tải tệp để đưa tài liệu vào cuộc hội thoại
- Hỗ trợ đa mô hình để chuyển đổi giữa các mô hình trong cùng một giao diện
- Lịch sử hội thoại để bạn có thể xem lại và tiếp tục các phiên trước
Nếu bạn đã dùng ChatGPT hoặc Claude, giao diện sẽ rất quen thuộc. Khác biệt nằm ở những gì chạy phía sau. Hãy cùng tìm hiểu.
Cách cài đặt Open WebUI (phương pháp Docker)
Docker là cách nhanh nhất để chạy Open WebUI, đồng thời cũng cách ly hoàn toàn môi trường chạy.
Yêu cầu tiên quyết
Bạn cần cài đặt Docker trên máy của mình. Nếu chưa có, tải từ trang Docker chính thức.
Ollama là tùy chọn ở giai đoạn này. Nếu bạn muốn kết nối Open WebUI với mô hình cục bộ ngay, hãy cài Ollama trước và kéo ít nhất một mô hình. Nếu chỉ muốn chạy giao diện và kết nối sau, có thể bỏ qua bước này lúc đầu.
Các bước cài đặt
Chạy lệnh này để kéo image Open WebUI và khởi động container:
docker run -d \
-p 3000:8080 \
-v open-webui:/app/backend/data \
--name open-webui \
--restart always \
ghcr.io/open-webui/open-webui:main

Đang tải image Open WebUI
Ý nghĩa của từng cờ:
-
dchạy container dưới nền -
p 3000:8080ánh xạ cổng 8080 trong container sang cổng 3000 trên máy của bạn -
v open-webui:/app/backend/datatạo volume Docker để lưu dữ liệu - hội thoại, cài đặt và tệp tải lên sẽ được giữ lại sau khi container khởi động lại -
-restart alwayskhởi động lại container nếu nó dừng hoặc máy bạn khởi động lại -
-name open-webuiđặt tên dễ đọc cho container để bạn tham chiếu sau này
Khởi chạy lần đầu
Khi container đã chạy, mở trình duyệt và truy cập http://localhost:3000.
Lần đầu truy cập, Open WebUI sẽ yêu cầu bạn tạo tài khoản quản trị. Nhập tên, email và mật khẩu.

Trang thiết lập Open WebUI
Sau đó, bạn vào được giao diện. Giao diện sẽ tải và bạn sẵn sàng để kết nối một mô hình.

Trang chủ Open WebUI
Cách kết nối Open WebUI với Ollama
Ollama là backend phổ biến nhất cho Open WebUI vì chạy mô hình cục bộ cực kỳ đơn giản - một lệnh để kéo mô hình, một lệnh để chạy.
Trước khi kết nối, hãy đảm bảo Ollama thực sự đang chạy. Mở terminal và kiểm tra:
ollama serve

Kiểm tra Ollama có đang chạy hay không
Nếu Ollama đã chạy như một dịch vụ nền, bạn sẽ thấy thông báo cho biết địa chỉ đã được sử dụng. Không sao - nghĩa là nó đang hoạt động.
Tiếp theo, xác nhận bạn đã kéo ít nhất một mô hình. Chạy:
ollama list

Các mô hình Ollama sẵn có
Nếu danh sách trống, hãy kéo một mô hình trước. Mistral là điểm khởi đầu tốt:
ollama pull mistral

Đang kéo mô hình Mistral
Mistral là mô hình đa dụng ổn định, chạy tốt trên phần cứng phổ thông.
Kết nối Open WebUI với Ollama
Bây giờ mở Open WebUI trong trình duyệt tại http://localhost:3000. Vào Settings - Connections và kiểm tra URL API của Ollama. Mặc định sẽ là http://host.docker.internal:11434.

Thiết lập URL API của Ollama
Thiết lập này hoạt động trên Mac và Windows với Docker Desktop. Trên Linux, thay host.docker.internal bằng địa chỉ IP của máy chủ thực:
http://<your-ip-address>:11434
Nhấn Save và làm mới trang. Nếu kết nối thành công, các mô hình trong Ollama sẽ xuất hiện ở bộ chọn mô hình trên đầu cửa sổ chat. Chọn một mô hình và bạn đã sẵn sàng bắt đầu trò chuyện.

Các mô hình sẵn có
Nếu không thấy mô hình nào, hãy kiểm tra lại Ollama có đang chạy và URL API đã đúng cho hệ điều hành của bạn chưa.
Cách dùng Open WebUI cho trò chuyện và viết mã
Khi mô hình đã được kết nối, dùng Open WebUI sẽ rất giống ChatGPT - nhưng có thêm vài điều khiển đáng chú ý.
Trò chuyện cơ bản
Trên đầu cửa sổ chat, bạn sẽ thấy menu thả xuống chọn mô hình. Nhấp để chọn mô hình muốn dùng. Nếu bạn kết nối nhiều backend, mọi mô hình sẵn có sẽ hiện ở đây - mô hình từ Ollama, mô hình qua API, tất cả trong một danh sách.
Nhập prompt vào ô ở dưới cùng rồi nhấn Enter. Phản hồi sẽ được truyền theo thời gian thực, nên bạn không cần chờ sinh xong toàn bộ mới đọc.

Ví dụ trò chuyện cơ bản
Mỗi cuộc hội thoại sẽ được lưu ở thanh bên trái. Bạn có thể đổi tên để dễ quản lý, hoặc xóa những mục không cần. Bấm vào bất kỳ cuộc hội thoại trước đó để tiếp tục từ nơi bạn dừng lại.
Nhiệm vụ lập trình
Open WebUI hoạt động tốt cho việc sinh mã và gỡ lỗi. Chỉ cần mô tả nhu cầu bằng ngôn ngữ tự nhiên và mô hình sẽ trả về khối mã để bạn sao chép.

Ví dụ viết mã
Để gỡ lỗi, hãy dán mã và thông báo lỗi vào prompt. Hãy cụ thể - bao gồm toàn bộ đầu ra lỗi, không chỉ loại lỗi. Bạn cung cấp càng nhiều ngữ cảnh, phản hồi càng hữu ích.

Ví dụ gỡ lỗi
Với các tác vụ nhiều bước, đừng cố nhồi hết vào một prompt. Hãy chia nhỏ. Yêu cầu mô hình viết một hàm, sau đó thêm xử lý lỗi, rồi viết kiểm thử. Prompt ngắn gọn, tập trung thường cho kết quả tốt hơn những prompt dài cố làm mọi thứ một lần.
Tải tệp
Open WebUI hỗ trợ tải tệp trong cửa sổ chat. Nhấn biểu tượng dấu cộng ở vùng nhập và đính kèm tài liệu - PDF, tệp văn bản hoặc tương tự.
Sau khi tải lên, nội dung tệp trở thành một phần ngữ cảnh hội thoại. Bạn có thể yêu cầu mô hình tóm tắt, trích xuất thông tin cụ thể hoặc trả lời câu hỏi dựa trên những gì có trong tài liệu.

Hội thoại dựa trên tài liệu
Một điều cần lưu ý là mô hình chỉ có thể làm việc với những gì nằm trong cửa sổ ngữ cảnh của nó - lượng văn bản tối đa có thể xử lý cùng lúc. Tệp quá lớn có thể bị cắt bớt, nên hãy chia nhỏ nếu bạn làm việc với tài liệu dài.
Các tính năng Open WebUI đáng chú ý
Open WebUI có nhiều cài đặt, nên tôi sẽ điểm qua vài mục thực sự quan trọng với bạn.
Hỗ trợ đa mô hình
Bộ chọn mô hình ở đầu cửa sổ chat cho phép bạn chuyển mô hình ngay trong phiên mà không cần mở cuộc hội thoại mới. Điều này hữu ích khi bạn muốn thử cùng một prompt trên các mô hình khác nhau - chạy qua Llama, rồi Mistral, và so sánh kết quả cạnh nhau.

Chọn mô hình
Nếu bạn đang đánh giá mô hình cho một tác vụ cụ thể, tính năng này tiết kiệm rất nhiều thời gian.
Lịch sử chat và các phiên
Mỗi cuộc hội thoại được lưu và liệt kê ở thanh bên trái. Bạn có thể đổi tên phiên thành nội dung có ý nghĩa, để sau này không phải lướt qua cả danh sách “New Chat”.

Các phiên chat trước đó
Điều này giúp Open WebUI hữu ích cho công việc liên tục. Bạn có thể quay lại phiên lập trình, tiếp tục một prompt còn dang dở, hoặc dùng một cuộc hội thoại như tài liệu tham khảo.
Mô hình cục bộ và mô hình qua API
Open WebUI không quan tâm phía sau chạy gì. Bạn có thể kết nối mô hình cục bộ qua Ollama cho công việc riêng tư và một API tương thích OpenAI cho các tác vụ mà bạn có mô hình đóng nguồn sẽ không thể nhét vừa bộ nhớ ngay từ đầu.

Quản lý kết nối OpenAI
Dùng mô hình cục bộ nhỏ cho tác vụ nhanh và mô hình lớn qua API khi công việc yêu cầu (và cho phép).
Tùy chỉnh thiết lập mô hình
Bạn có thể tùy chỉnh rất nhiều cho từng LLM.
Trong phần cài đặt mô hình, bạn có thể tinh chỉnh system prompt, thêm cơ sở tri thức (tài liệu), và kết nối mô hình với các công cụ và kỹ năng. Bạn cũng có thể chỉnh những năng lực mô hình sẽ dùng, như thị giác, tải tệp, và chọn liệu mô hình có nên thực hiện các tác vụ như tìm kiếm web hay không:

Tinh chỉnh cài đặt mô hình
Open WebUI so với ChatGPT và các giao diện khác
Open WebUI không cố thay thế ChatGPT. Thay vào đó, nó giải quyết một vấn đề khác.
Open WebUI và ChatGPT
Khác biệt cốt lõi là dữ liệu của bạn đi đâu. Với ChatGPT, mọi prompt đều gửi tới máy chủ của OpenAI. Với Open WebUI, mọi thứ ở lại trên máy bạn - giao diện, mô hình và lịch sử hội thoại.
Đổi lại là hiệu năng. GPT-5 và các mô hình đám mây tương tự mạnh hơn hầu hết mô hình bạn có thể chạy cục bộ. Nếu ưu tiên là chất lượng đầu ra, đám mây thắng. Nếu riêng tư hoặc truy cập ngoại tuyến quan trọng hơn, cục bộ thắng.
Chi phí cũng là yếu tố. ChatGPT Plus có phí cố định hàng tháng. Open WebUI miễn phí, nhưng bạn trả bằng phần cứng - một máy đủ RAM và lý tưởng là có GPU.
Open WebUI và Ollama CLI
CLI của Ollama ổn cho các thử nghiệm nhanh, nhưng không dành cho công việc thực tế. Bạn gõ prompt, nhận phản hồi, và hết. Không có lịch sử, không tải tệp, và không thể so sánh mô hình mà không đổi terminal.
Open WebUI mang lại giao diện đúng nghĩa cho Ollama. Mô hình và backend vẫn như nhau - nhưng có quản lý hội thoại, điều khiển cài đặt, và giao diện không biến mất khi bạn đóng terminal.
Nếu bạn đã dùng Ollama, thêm Open WebUI vào hầu như không tốn gì mà trải nghiệm tốt lên rất nhiều.
Open WebUI và các công cụ khác
LM Studio là ứng dụng desktop với trình duyệt mô hình tích hợp và giao diện chat tương tự. Đây là lựa chọn tốt nếu bạn muốn GUI độc lập mà không cần Docker. Điểm hạn chế là nó gắn với máy tính để bàn - Open WebUI chạy trên trình duyệt và có thể truy cập từ thiết bị khác trong mạng của bạn.
text-generation-webui phù hợp hơn với người dùng nâng cao. Nó hỗ trợ nhiều định dạng mô hình hơn và có điều khiển chi tiết hơn, nhưng thiết lập phức tạp và giao diện khó điều hướng. Open WebUI là điểm khởi đầu tốt hơn trừ khi bạn thực sự cần những gì text-generation-webui cung cấp.
Bảng so sánh
Bạn có thể tham khảo bảng này để so sánh nhanh giữa Open WebUI và các lựa chọn thay thế:

Open WebUI so với các lựa chọn thay thế
Sự cố thường gặp và cách khắc phục
Hầu hết vấn đề với Open WebUI rơi vào năm nhóm - và đa phần có cách xử lý nhanh.
Container không khởi động
Chạy docker logs open-webui ngay sau khi khởi động thất bại. Nhật ký sẽ cho biết vấn đề. Chín trên mười là xung đột cổng hoặc quyền truy cập volume.
Xung đột cổng
Nếu cổng 3000 đã được dùng trên máy, container sẽ không khởi động. Khắc phục bằng cách ánh xạ sang cổng host khác:
docker run -d -p 3001:8080 ...
Sau đó truy cập Open WebUI tại http://localhost:3001 thay vì cổng cũ.
Không thể kết nối tới Ollama
Đầu tiên, xác nhận Ollama đang chạy:
ollama serve
Sau đó kiểm tra URL API trong Settings - Connections. Trên Mac và Windows, nên là http://host.docker.internal:11434. Trên Linux, dùng địa chỉ IP của máy chủ host. URL sai là lý do phổ biến nhất khiến kết nối thất bại.
Không hiển thị mô hình
Nếu bộ chọn mô hình trống, Open WebUI đã kết nối được với Ollama nhưng không tìm thấy mô hình. Chạy ollama list để xác nhận bạn đã kéo ít nhất một mô hình. Nếu danh sách trống, hãy kéo một mô hình:
ollama pull mistral
Làm mới trang Open WebUI sau khi kéo - nó sẽ không tự cập nhật.
Hiệu năng chậm
Phản hồi chậm gần như luôn do phần cứng, không phải do Open WebUI. Mô hình quá lớn so với RAM sẵn có hoặc bạn không có GPU. Hãy chuyển sang mô hình nhỏ hơn - mô hình 7B chạy khá tốt trên hầu hết máy hiện đại có 16GB RAM. Nếu chỉ có CPU, hãy kỳ vọng phản hồi chậm hơn bất kể kích thước mô hình.
Thực hành tốt khi dùng Open WebUI
Một vài thói quen sẽ tạo khác biệt lớn trong hiệu quả sử dụng Open WebUI hằng ngày.
- Dùng mô hình nhỏ để tăng tốc: Mô hình lớn không phải lúc nào cũng tốt hơn. Mô hình 7B phản hồi trong vài giây và xử lý ổn đa số tác vụ hằng ngày. Dành mô hình lớn cho tác vụ thực sự cần, như suy luận phức tạp hoặc sinh nội dung dài
- Chú ý độ dài hội thoại: Mỗi tin nhắn trong hội thoại làm tăng ngữ cảnh mô hình phải xử lý. Hội thoại dài sẽ chậm hơn và tốn tài nguyên hơn khi phình ra. Nếu cuộc trò chuyện đã lệch xa mục đích ban đầu, hãy bắt đầu cuộc mới thay vì kéo theo ngữ cảnh cũ
- Tổ chức prompt của bạn: Nếu bạn thường dùng đi dùng lại cùng prompt, hãy lưu chúng. Open WebUI cho phép lưu preset prompt để bạn không phải gõ lại mỗi phiên. Một chút chuẩn bị trước sẽ tiết kiệm rất nhiều thời gian
- Theo dõi tài nguyên hệ thống: Mô hình cục bộ chạy trên phần cứng của bạn. Nếu máy đuối, hãy mở trình giám sát hệ thống và kiểm tra RAM, CPU. Chạy thêm tiến trình nặng cùng mô hình lớn sẽ kéo dài thời gian phản hồi. Đóng những thứ không cần thiết
- Kết hợp Open WebUI với công cụ sẵn có: Giao diện chỉ là phần đầu. Bạn có thể chuyển đầu ra vào script, đẩy tệp từ trình soạn thảo qua tính năng tải lên, hoặc dùng Open WebUI song song với terminal cho các tác vụ mã.
Khi nào nên dùng Open WebUI
Open WebUI phù hợp với một số tình huống cụ thể - không phải mọi tình huống. Dưới đây là danh sách khi bạn nên dùng:
- Phát triển cục bộ là trường hợp phổ biến nhất. Nếu bạn xây ứng dụng dựa trên LLM và muốn thử prompt mà không tốn tín dụng API, Open WebUI mang lại vòng phản hồi nhanh
- Thử nghiệm với mô hình là nơi Open WebUI tỏa sáng. Bạn có thể kéo vài mô hình khác nhau bằng Ollama và so sánh cách chúng xử lý cùng một prompt - tất cả trong cùng một giao diện, không cần viết dòng mã nào
- Quy trình nhạy cảm về quyền riêng tư cũng rất phù hợp. Nếu bạn làm việc với tài liệu nội bộ, dữ liệu khách hàng, hoặc bất cứ thứ gì bạn không muốn gửi tới máy chủ bên thứ ba, thiết lập cục bộ sẽ giữ mọi thứ trên máy của bạn. Không có dữ liệu nào rời đi trừ khi bạn chọn kết nối API bên ngoài
- Học tập và tạo bản mẫu cũng là kịch bản tuyệt vời. Nếu bạn mới với LLM và muốn hiểu cách chúng hoạt động mà không cần đăng ký trả phí, Open WebUI mang lại cách thử nghiệm chi phí thấp. Nó cũng hữu ích để dựng bản mẫu nhanh - mô hình cục bộ đủ nhanh để thử ý tưởng trước khi đầu tư vào thiết lập vận hành.
Tuy vậy, Open WebUI không phải công cụ phù hợp nếu bạn cần chất lượng đầu ra tốt nhất và không lo ngại về quyền riêng tư. API đám mây sẽ phù hợp hơn.
Kết luận
Open WebUI mang đến giao diện gọn gàng, thực dụng để làm việc với mô hình cục bộ, và bạn kiểm soát hoàn toàn môi trường.
Không có dữ liệu rời khỏi máy bạn, không giới hạn tốc độ, không cần đăng ký. Bạn chọn mô hình, bạn quản lý cài đặt, và bạn mở rộng thiết lập theo nhu cầu.
Cách bắt đầu tốt nhất là giữ mọi thứ đơn giản. Chạy container Docker, kết nối một mô hình nhỏ như Llama hoặc Mistral, và gửi vài prompt. Khi mọi thứ hoạt động, bạn có thể thêm mô hình, cấu hình system prompt, kết nối API bên ngoài và xây dựng tiếp từ đó.
Nhân tiện, bạn cũng có thể chạy Ollama bằng Docker mà không cần thiết lập cục bộ. Đọc hướng dẫn mới nhất của chúng tôi để biết cách làm.
Câu hỏi thường gặp
Open WebUI là gì?
Open WebUI là một giao diện tự lưu trữ, chạy trên trình duyệt để tương tác với các mô hình ngôn ngữ lớn. Nó hoạt động như ChatGPT, nhưng chạy hoàn toàn trên máy của bạn. Bạn kết nối nó với một backend mô hình - như Ollama hoặc API tương thích OpenAI - và toàn bộ dữ liệu của bạn sẽ ở lại cục bộ.
Tôi có cần máy cấu hình mạnh để chạy Open WebUI không?
Bản thân Open WebUI rất nhẹ - tài nguyên chủ yếu cần cho mô hình chạy phía sau. Với hầu hết mô hình cục bộ, 16GB RAM là mức cơ bản hợp lý. GPU giúp tăng tốc phản hồi, nhưng nhiều mô hình nhỏ vẫn chạy ổn trên máy chỉ có CPU.
Open WebUI có miễn phí không?
Có. Open WebUI là mã nguồn mở và miễn phí. Bạn không phải trả tiền cho chính giao diện. Chi phí duy nhất là phần cứng của bạn và, tùy chọn, bất kỳ chi phí API bên ngoài nào nếu bạn chọn kết nối với nhà cung cấp mô hình trả phí như OpenAI.
Khác biệt giữa Open WebUI và Ollama là gì?
Ollama là backend tải xuống và chạy các mô hình cục bộ trên máy của bạn. Open WebUI là frontend - giao diện bạn dùng để gửi prompt và đọc phản hồi. Ollama xử lý phần mô hình, Open WebUI xử lý trải nghiệm chat. Bạn có thể dùng Ollama mà không cần Open WebUI qua CLI của nó, nhưng trải nghiệm sẽ bị hạn chế hơn rất nhiều.
Tôi có thể kết nối Open WebUI với API của OpenAI thay vì mô hình cục bộ không?
Có. Open WebUI hỗ trợ mọi endpoint API tương thích OpenAI. Vào Settings - Connections, thêm khóa API và URL endpoint của bạn, và các mô hình trên đám mây sẽ xuất hiện trong bộ chọn mô hình cùng với mô hình cục bộ. Nhờ đó bạn có thể chuyển đổi giữa mô hình cục bộ và đám mây ngay trong cùng một giao diện.
