Hướng dẫn: Dựng Open WebUI + Ollama làm "ChatGPT nội bộ" cho cả công ty, có phân quyền
Nhiều công ty muốn nhân viên dùng AI nhưng lo dữ liệu bị gửi ra ngoài. Giải pháp mình đã triển khai cho công ty khoảng 80 người: Ollama chạy model trên máy chủ nội bộ, Open WebUI làm giao diện chat giống các dịch vụ quen thuộc, có tài khoản và phân quyền. KIẾN TRÚC - 1 máy chủ GPU chạy Ollama (phục vụ model). - Open WebUI chạy bằng Docker, kết nối tới Ollama. - Đặt sau reverse proxy (Nginx hoặc Caddy) có HTTPS, chỉ truy cập được trong mạng công ty hoặc qua VPN. BƯỚC 1: CÀI OLLAMA VÀ TẢI MODEL - Cài Ollama trên máy chủ GPU. - Tải model: một model đa năng cỡ vừa cho chat hằng ngày, một model vision nếu cần đọc ảnh/tài liệu scan, một model embedding cho tính năng hỏi đáp tài liệu. - Mặc định Ollama chỉ nghe ở localhost. Nếu Open WebUI chạy trên máy khác, đặt biến môi trường OLLAMAHOST=0.0.0.0 và dùng tường lửa chỉ cho phép máy Open WebUI kết nối. Tuyệt đối không mở cổng Ollama ra internet, vì Ollama không có xác thực. BƯỚC 2: CHẠY OPEN WEBUI Lệnh Docker cơ bản: docker run -d -p 3000:8080 -e OLLAMABASEURL=http:// :11434 -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main Volume open-webui lưu toàn bộ tài khoản và lịch sử chat, nhớ sao lưu định kỳ. BƯỚC 3: TÀI KHOẢN VÀ PHÂN QUYỀN - Người đăng ký đầu tiên trở thành admin, hãy tạo tài khoản admin ngay sau khi chạy. - Trong phần cài đặt admin, đặt người đăng ký mới ở trạng thái chờ duyệt, hoặc tắt hẳn đăng ký và tạo tài khoản thủ công. - Nếu công ty có hệ thống đăng nhập tập trung, Open WebUI hỗ trợ OAuth/SSO và LDAP, nhân viên dùng luôn tài khoản công ty. - Dùng nhóm (groups) để giới hạn model: ví dụ chỉ nhóm kỹ thuật được dùng model lập trình nặng. BƯỚC 4: TẠO "TRỢ LÝ" CHO TỪNG PHÒNG BAN Open WebUI cho phép tạo model tuỳ chỉnh từ model gốc: đặt system prompt, gắn tài liệu tham khảo. Mình đã tạo: - Trợ lý Nhân sự: gắn bộ nội quy, chính sách nghỉ phép, phúc lợi. - Trợ lý Kỹ thuật: gắn tài liệu kiến trúc hệ thống, quy ước code. - Trợ lý Soạn thảo: system prompt theo văn phong công ty, mẫu công văn, email. BƯỚC 5: HỎI ĐÁP TÀI LIỆU - Tải tài liệu lên phần Knowledge, Open WebUI tự chia đoạn và tạo embedding. - Nên chuẩn hoá tài liệu trước (PDF có chữ, không phải ảnh scan), đặt tên file rõ ràng để trích dẫn dễ đọc. VẬN HÀNH - Theo dõi GPU: khi nhiều người dùng đồng thời, câu trả lời sẽ chậm. Với 80 người, thực tế cùng lúc chỉ khoảng 5–10 người hỏi. - Đặt OLLAMAKEEPALIVE dài để model không bị giải phóng khỏi GPU liên tục. - Cập nhật Open WebUI định kỳ (dự án phát triển rất nhanh), nhưng sao lưu volume trước khi cập nhật. - Viết một trang hướng dẫn ngắn cho nhân viên: dùng cho việc gì, không nên dùng cho việc gì, model có thể sai. KẾT QUẢ Sau 2 tháng, khoảng 60% nhân viên dùng hằng tuần, nhiều nhất là soạn email, tóm tắt tài liệu và hỏi nội quy. Phòng IT không còn phải lo nhân viên dán tài liệu nội bộ lên dịch vụ bên ngoài. Ai triển khai gặp vướng mắc ở bước nào thì hỏi bên dưới nhé.