Hỏi đáp tài liệu nội bộ bằng AnythingLLM
Hướng dẫn từng bước dựng trợ lý hỏi đáp quy trình, chính sách, tài liệu sản phẩm của công ty bằng AnythingLLM (giấy phép MIT), dùng Ollama làm model trả lời. Khi model và embedder đều chạy trên máy, tài liệu nội bộ không rời máy. Dữ kiện theo tài liệu chính thức AnythingLLM v1.18.0, kiểm tra ngày 20–21/10/2026.
Câu hỏi lặp lại mỗi ngày, tài liệu thì không muốn đưa ra ngoài
Nhân viên mới hỏi quy trình đổi trả, kế toán hỏi lại quy định tạm ứng, sale tìm mãi không thấy bảng thông số. Câu trả lời đều nằm trong tệp PDF, Word của công ty, nhưng đưa toàn bộ tài liệu nội bộ lên dịch vụ đám mây thì ban giám đốc chưa yên tâm. (Tình huống minh hoạ.)
Bài này dựng một trợ lý hỏi đáp tài liệu chạy hoàn toàn trên máy bằng AnythingLLM và Ollama, từng bước từ cài đặt tới kiểm tra. Muốn so sánh với Open WebUI Knowledge và các việc khác như tóm tắt, làm slide, xem AI Local làm slide, tài liệu, Excel.
Hỏi đáp tài liệu nội bộ bằng AnythingLLM là gì?
Hỏi đáp tài liệu nội bộ bằng AnythingLLM là nạp tài liệu công ty vào một workspace của AnythingLLM, để ứng dụng chia tài liệu thành đoạn, tìm đúng đoạn liên quan tới câu hỏi rồi đưa cho model trên Ollama trả lời kèm nguồn, mọi bước chạy trên máy của bạn.
Cách làm này gọi là RAG (truy xuất rồi trả lời), gồm ba thành phần:
| Thành phần | Vai trò | Gợi ý trong bài |
|---|---|---|
| LLM (model trả lời) | Đọc đoạn tài liệu tìm được và viết câu trả lời | Model chat trên Ollama |
| Embedder | Biến đoạn văn và câu hỏi thành vector để so khớp ý nghĩa | multilingual-e5-small có sẵn, hoặc model embedding đa ngôn ngữ qua Ollama |
| Vector DB | Lưu vector để tìm nhanh | LanceDB mặc định, chạy trên máy, không cần cấu hình |
Nguồn: RAG trong AnythingLLM · LanceDB
Chọn bản Desktop hay Docker
| Desktop | Docker | |
|---|---|---|
| Dành cho | Một người, trên máy cá nhân | Cả nhóm, trên một máy chung |
| Truy cập | Ứng dụng trên máy, không có giao diện web | Trình duyệt, cổng 3001 |
| Tài khoản, phân quyền | Không | Có (Multi-User Mode) |
| Widget nhúng website | Không | Có |
Bản mới nhất lúc kiểm tra là v1.18.0 (13/10/2026). Từ bản này, engine model tích hợp sẵn của Desktop đổi từ Ollama sang Lemond (bản nhúng của Lemonade, chạy trên llama.cpp). Người đang dùng bản cũ sẽ thấy lời nhắc "Engine upgrade": nâng cấp sẽ xoá engine cũ cùng các model đã tải bằng nó, giữ nguyên workspace, lịch sử chat, tài liệu. Bài này dùng Ollama cài riêng làm nhà cung cấp model, để một bộ model dùng chung cho nhiều công cụ.
Cấu hình khuyến nghị theo docs: RAM 16GB, CPU 8 nhân; Windows nên có GPU 8–12GB VRAM trở lên.
Nguồn: Desktop · Changelog v1.18.0 · Yêu cầu hệ thống
Chuẩn bị trước khi cài
- Ollama đã cài và đang chạy (ứng dụng hoặc
ollama serve; lệnhollama runkhông tự khởi động máy chủ). Xem cài trên Windows, cài trên Mac, cài trên Linux. - Một model chat vừa máy, ví dụ
ollama pull qwen3.5:9b(Apache-2.0, khoảng 6,6–7,6GB) hoặcqwen3.5:4bcho máy yếu. Tự thử tiếng Việt bằng câu hỏi thật của công ty. - Quyết định embedder trước khi nạp tài liệu (xem bước 3).
- Gom tài liệu: bản mới nhất, bỏ bản trùng, bỏ thông tin cá nhân không cần. AnythingLLM đọc được pdf, docx, txt, md, csv, xlsx, pptx, html và nhiều loại khác.
- Bản Docker: CPU cần tập lệnh AVX2, nếu không sẽ gặp lỗi
Illegal instruction.
Nguồn: AnythingLLM – Ollama · Kết nối Ollama · Ollama – qwen3.5 · Loại tệp hỗ trợ
Bước 1: Cài AnythingLLM Desktop
- macOS: Mac chip Apple tải
AnythingLLMDesktop-AppleSilicon.dmg, Mac Intel tảiAnythingLLMDesktop.dmg, kéo vào Applications; hoặcbrew install --cask anythingllm. - Windows 10 trở lên (Home, Pro; x64 và ARM64): chạy trình cài, chọn cài cho Current User, không chọn "all users". Đóng cửa sổ thì ứng dụng thu xuống khay; thoát hẳn bằng "Quit AnythingLLM" ở khay.
- Linux: chạy script cài dưới đây bằng tài khoản thường (không dùng root), đồng ý tạo rule apparmor khi được hỏi, rồi mở
./AnythingLLMDesktop.AppImage.
curl -fsSL https://cdn.anythingllm.com/latest/installer.sh -o installer.sh
chmod +x installer.sh
./installer.shNguồn: Cài trên macOS · Cài trên Windows · Cài trên Linux
Bước 2: Chọn Ollama làm model trả lời
- Mở Settings → AI Providers → LLM, chọn Ollama.
- Ô Ollama Base URL:
http://127.0.0.1:11434(Ollama trên cùng máy, cài đặt mặc định). - Ô Ollama Model chỉ hiện danh sách khi URL đúng; chọn model chat đã tải, ví dụ
qwen3.5:9b. - Bấm Show advanced settings nếu cần: Ollama Keep Alive (mặc định 5 phút giữ model trong bộ nhớ), Model context window (để trống thì tự nhận; nhận thất bại sẽ lấy 4096; AnythingLLM tự giới hạn ở 16.384). Ô Authentication Token chỉ dùng khi Ollama nằm sau máy chủ có xác thực.
AnythingLLM có ba cấp chọn model: System LLM cho cả hệ thống, Workspace LLM ghi đè riêng từng workspace, Agent LLM cho chế độ agent. Với tài liệu dài, nhớ tăng context phía Ollama, xem mục đặt độ dài context.
Nguồn: Cấp LLM · Ô cấu hình Ollama (mã nguồn) · Nhãn giao diện · Ollama – context
Bước 3: Chọn embedder hợp tiếng Việt
Embedder mặc định "AnythingLLM Embedder" dùng model all-MiniLM-L6-v2, chạy bằng CPU, tự tải khoảng 25MB, nhưng docs ghi model này được huấn luyện chủ yếu trên tiếng Anh. Với tài liệu tiếng Việt, vào Settings → AI Providers → Embedder và chọn một trong hai hướng:
| Lựa chọn | Cách chọn | Ghi chú |
|---|---|---|
| multilingual-e5-small (có sẵn) | Giữ "AnythingLLM Embedder", đổi model sang multilingual-e5-small | Hơn 100 ngôn ngữ, có tiếng Việt; giấy phép MIT; khoảng 487MB, nặng hơn bản mặc định (khoảng 25MB) |
| Embedding qua Ollama | Chọn nhà cung cấp Ollama, tải trước ví dụ ollama pull bge-m3 | bge-m3 (MIT, khoảng 1,2GB) hoặc qwen3-embedding (Apache-2.0) đều ghi hỗ trợ 100+ ngôn ngữ. Danh sách hiện cả model chat lẫn model embedding, phải chọn đúng model embedding |
Cách chia đoạn nằm ở Settings → AI Providers → Text Splitter & Chunking: Chunk Size mặc định 1000 ký tự, Overlap 20; thay đổi chỉ áp dụng cho tài liệu embed sau đó. Người mới nên giữ mặc định.
Nguồn: Embedder tích hợp · Danh sách model native · multilingual-e5-small · Embedder qua Ollama · bge-m3 · qwen3-embedding · Chia đoạn
Bước 4: Tạo workspace, nạp tài liệu, bật chế độ Query
- Tạo một workspace theo chủ đề, ví dụ "Quy trình nội bộ" (ví dụ minh hoạ). Mỗi phòng ban nên có workspace riêng.
- Tải tài liệu lên. Bước này chỉ chuyển tệp thành chữ.
- Chọn tài liệu, bấm Move to Workspace rồi Save and Embed: lúc này tài liệu mới được chia đoạn, embed và lưu vào LanceDB. Kéo tệp thẳng vào khung chat thì khác: tệp chỉ dùng cho cuộc chat đó.
- Tài liệu ngắn mà quan trọng (như bảng giá) có thể ghim để đưa toàn văn vào mỗi câu hỏi.
- Bấm bánh răng của workspace → Chat Settings → Chat mode chọn Query: chỉ trả lời khi tìm thấy trong tài liệu. (Chế độ Chat trộn thêm kiến thức chung của model; Agent là mặc định cho workspace mới.)
- Dán chỉ dẫn dưới đây vào ô System Prompt, sửa ô Query mode refusal response thành câu tiếng Việt của bạn.
Bạn là trợ lý nội bộ của <tên công ty>, chỉ trả lời dựa trên tài liệu trong workspace này.
- Trả lời bằng tiếng Việt, ngắn gọn, đúng thuật ngữ của công ty.
- Nếu tài liệu không có thông tin, nói rõ "Tài liệu chưa có nội dung này" và gợi ý hỏi <bộ phận phụ trách>.
- Không tự đoán giá, chính sách, con số; luôn nêu tên tài liệu đã dùng.
- Không ghi lại hay yêu cầu mật khẩu, khoá, thông tin thanh toán.Cùng trang có Max Context Snippets (mặc định 4, docs khuyên 4–6) và Document similarity threshold (No restriction, Low, Medium, High).
Nguồn: Chat với tài liệu · Chế độ chat · Nhãn giao diện
Kiểm tra đã chạy đúng
- Hỏi 5 câu mà bạn biết chắc đáp án nằm trong tài liệu: câu trả lời đúng và có mục Sources chỉ ra tài liệu kèm % match.
- Hỏi 2 câu tài liệu không có: ở chế độ Query, trợ lý phải trả lời bằng câu từ chối bạn đã đặt, không bịa.
- Chạy
ollama pstrong lúc hỏi: thấy model đang được nạp, cột PROCESSOR cho biết dùng GPU hay CPU. - Ghi kết quả để so lại khi đổi model; xem Bộ đề tự chấm model AI tiếng Việt.
Dùng cho cả nhóm: bản Docker
Trên máy chung (Linux hoặc Mac), chạy lệnh nguyên văn theo docs. Trang docs có thêm bản PowerShell cho Windows.
export STORAGE_LOCATION=$HOME/anythingllm && \
mkdir -p $STORAGE_LOCATION && \
touch "$STORAGE_LOCATION/.env" && \
docker run -d -p 3001:3001 \
--cap-add SYS_ADMIN \
--name anythingllm \
-v ${STORAGE_LOCATION}:/app/server/storage \
-v ${STORAGE_LOCATION}/.env:/app/server/.env \
-e STORAGE_DIR="/app/server/storage" \
mintplexlabs/anythingllm-v ${STORAGE_LOCATION}:/app/server/storage là bắt buộc: thiếu nó, toàn bộ dữ liệu sẽ mất khi container khởi động lại. Với công ty, nên thay mintplexlabs/anythingllm (tag latest, build theo từng commit) bằng tag phiên bản dạng v*.*.* để chủ động lúc nâng cấp.- Mở
http://localhost:3001, vào Settings → Security, bấm Enable Multi-User Mode và tạo tài khoản admin. Lưu ý: đã bật thì không quay lại chế độ một người dùng. - Tạo tài khoản theo vai trò: Admin toàn quyền; Manager làm mọi việc trừ cài đặt LLM, Embedder, Vector DB; Default chỉ chat trong workspace được thêm vào. Chỉ Admin đặt lại được mật khẩu.
- Nối Ollama từ trong container: Windows, macOS dùng
http://host.docker.internal:11434; Linux dùnghttp://172.17.0.1:11434. - Nhân viên mở
http://<IP-máy-chung>:3001trong mạng nội bộ; nhớ mở tường lửa cổng 3001 cho mạng nội bộ.
Mọi người vào được workspace sẽ thấy các tài liệu đã embed trong đó, nên chia workspace theo quyền xem tài liệu.
Nguồn: Docker · Các tag image · Nhiều người dùng · Kết nối Ollama · Truy cập từ máy khác
Lỗi thường gặp và cách xử lý
| Hiện tượng | Nguyên nhân thường gặp | Cách xử lý |
|---|---|---|
| Ô Ollama Model trống | Ollama chưa chạy, hoặc sai Base URL | Mở ứng dụng Ollama hoặc ollama serve; kiểm tra URL |
connect ECONNREFUSED 172.17.0.1:11434 | Container không gọi được Ollama trên máy | Dùng đúng địa chỉ theo hệ điều hành ở mục Docker; xem trang xử lý lỗi kết nối Ollama của AnythingLLM |
| Trả lời "không có thông tin" dù tài liệu có | Chưa Save and Embed, ngưỡng tìm đoạn quá cao, hoặc hỏi khác từ trong tài liệu | Embed lại vào workspace; hạ threshold về No restriction để thử; hỏi bằng đúng từ trong tài liệu |
| Tìm sai đoạn với câu hỏi tiếng Việt | Đang dùng embedder tiếng Anh mặc định | Đổi sang multilingual-e5-small hoặc bge-m3, rồi embed lại |
Docker báo unable to open database file | Thư mục lưu trữ (dưới /mnt, /data, /srv, /opt) sai quyền | sudo chown -R 1000:1000 ${STORAGE_LOCATION}; không dùng chmod -R 777 |
Nguồn: Kết nối Ollama · Docker · Chế độ chat
Cập nhật, sao lưu và gỡ cài đặt
- Sao lưu thư mục lưu trữ (gồm
lancedb,documents,anythingllm.db): Mac~/Library/Application Support/anythingllm-desktop/storage; WindowsC:\Users\<tên>\AppData\Roaming\anythingllm-desktop\storage; Linux~/.config/anythingllm-desktop/storage/; Docker là thư mục$HOME/anythingllmở lệnh trên. - Cập nhật Desktop: tải bản mới cài đè, dữ liệu giữ nguyên; Homebrew dùng
brew update && brew upgrade --cask anythingllm. - Cập nhật Docker: docs chưa có trang hướng dẫn từng bước. Dữ liệu được giữ qua các lần dựng lại container nếu có volume lưu trữ; hãy sao lưu thư mục lưu trữ trước khi đổi tag phiên bản.
- Gỡ: macOS kéo ứng dụng vào Thùng rác, xoá thư mục dữ liệu (hoặc
brew uninstall --zap --cask anythingllm); Windows chạy trình gỡ trongAppData\Local\Programs\AnythingLLMrồi xoá thư mục dữ liệu; Linux xoá AppImage, tệp.desktop, rule apparmor và thư mục dữ liệu.
Nguồn: Nơi lưu dữ liệu · Cập nhật · Gỡ cài đặt
An toàn: giữ dữ liệu nội bộ ở lại trên máy
- Giữ mọi thành phần chạy local: LLM là Ollama, embedder chạy trên máy, vector DB là LanceDB. Chọn nhà cung cấp đám mây hoặc bật agent duyệt web là dữ liệu rời máy.
- Không mở ra Internet. Docs ghi rõ không đưa bản Desktop ra Internet công khai; tuỳ chọn "Enable network discovery" mở API ra mọi địa chỉ mạng, chỉ bật khi thật cần. Bản Docker: bật mật khẩu hoặc Multi-User trước khi cho máy khác vào. Docs không khuyến khích ngrok hay Cloudflare Tunnel, coi Tailscale là lựa chọn an toàn hơn; xem truy cập AI Local từ xa qua Tailscale.
- Cập nhật bản vá. Ví dụ CVE-2026-48116 (điểm 7.5) ảnh hưởng bản 1.12.1 trở về trước.
- Telemetry ẩn danh tắt được trong cài đặt hoặc bằng
DISABLE_TELEMETRY=true. - Không nạp, không dán khoá, mật khẩu, token vào tài liệu, System Prompt hay khung chat. Tài liệu có dữ liệu cá nhân của khách chỉ đưa vào workspace có người xem phù hợp.
Nguồn: Desktop – không mở ra Internet · Truy cập từ xa · Advisory bảo mật · Telemetry
Bắt đầu từ đâu?
- Hôm nay: cài Desktop, nối Ollama, chọn multilingual-e5-small, nạp 5–10 tài liệu quy trình, bật Query.
- Tuần này: cho 2–3 người hỏi thử, ghi lại câu trả lời sai, sửa tài liệu nguồn cho rõ ràng hơn.
- Khi đã ổn: chuyển sang bản Docker trên máy chung, chia workspace theo phòng ban, đặt người phụ trách cập nhật.
Muốn đưa trợ lý vào quy trình tự động hay chatbot, xem Ghép n8n với Ollama làm chatbot; muốn cả nhóm chat chung một giao diện, xem Open WebUI cho cả nhóm. Muốn được tư vấn hoặc cài đặt AI Local theo nhu cầu riêng, bạn có thể đăng ký Tư vấn 1-1 hoặc Coaching 1-1 cho doanh nghiệp; chi phí báo sau buổi tư vấn.
Đọc tiếp: n8n và Ollama làm chatbot →
Câu hỏi thường gặp
AnythingLLM có mất phí không?
Bản Desktop và bản Docker dùng giấy phép MIT, không thu phí phần mềm. Chi phí nằm ở máy chạy model, điện và công vận hành. Nếu bạn chọn nhà cung cấp model đám mây trong AnythingLLM thì sẽ phát sinh phí API của nhà cung cấp đó.
Vì sao nên đổi embedder khi tài liệu là tiếng Việt?
Embedder mặc định all-MiniLM-L6-v2 được huấn luyện chủ yếu trên tiếng Anh. Với tài liệu tiếng Việt, nên chọn multilingual-e5-small (hơn 100 ngôn ngữ, có sẵn trong AnythingLLM) hoặc một model embedding đa ngôn ngữ qua Ollama. Hãy chọn trước khi nạp tài liệu, vì đổi embedder về sau phải embed lại toàn bộ.
Dữ liệu có thật sự không rời máy không?
Có, khi cả model trả lời (Ollama) và embedder đều chạy trên máy, vector lưu trong LanceDB trên máy. Dữ liệu sẽ rời máy nếu bạn chọn nhà cung cấp đám mây, bật agent duyệt web, hoặc mở máy ra Internet. Telemetry ẩn danh tắt được trong cài đặt hoặc bằng DISABLE_TELEMETRY=true.
Desktop và Docker khác nhau thế nào?
Desktop dành cho một người, không có giao diện web. Docker dành cho nhiều người dùng có tài khoản, mật khẩu, phân quyền, truy cập bằng trình duyệt ở cổng 3001, và có widget nhúng web.
Trợ lý trả lời "không có thông tin" dù tài liệu có ghi?
Ở chế độ Query, trợ lý chỉ trả lời khi tìm thấy đoạn phù hợp. Hãy hỏi bằng đúng từ có trong tài liệu, kiểm tra tài liệu đã được embed vào workspace, hạ ngưỡng Document similarity threshold, hoặc ghim tài liệu ngắn quan trọng.
Tài liệu liên quan
- AI Local · AI AgentAI Local là gì? Chạy AI ngay trên máy tính, không tốn phí APIAI Local là gì: chạy model AI mở ngay trên máy tính của bạn, không trả phí API theo lượt, dữ liệu ở lại máy. Lợi ích, giới hạn, so sánh với AI đám mây.
- AI Local · AI AgentCài Ollama trên Windows có card NVIDIA từng bướcCài Ollama trên Windows có card NVIDIA: kiểm tra driver, cài đặt, dời thư mục model sang ổ khác, đặt biến môi trường, xác nhận chạy GPU, sửa lỗi, cập nhật, gỡ.
- AI Local · AI AgentCấu hình máy tính chạy AI Local: RAM, VRAM, Mac hay PC NVIDIACấu hình máy tính chạy AI Local: RAM, VRAM quyết định model nào chạy được, cách ước tính dung lượng theo Q4/Q8, Mac hay PC NVIDIA, ổ cứng, mua máy hay thuê GPU.
- AI Local · AI AgentCài AI Local trên Mac: Ollama và LM StudioCài AI Local trên Mac từng bước: xác định chip Apple hay Intel, cài Ollama và LM Studio, dời thư mục model, tắt tự chạy, kiểm tra, sửa lỗi, cập nhật, gỡ.
Xem tất cả tài liệu hướng dẫn →

Đăng ký Tư vấn 1-1 về AI Local
Chuyên gia Aduca cùng bạn xem nhu cầu, máy đang có và dữ liệu cần bảo vệ, rồi đề xuất nên chạy AI Local, dùng đám mây hay kết hợp. Dịch vụ cài AI Local nằm trong gói Tư vấn 1-1 hoặc Coaching 1-1; chi phí báo sau buổi tư vấn.
Nguồn tham khảo
- AnythingLLM – GitHub (giấy phép MIT)
- AnythingLLM – Changelog v1.18.0
- AnythingLLM Docs – Desktop
- AnythingLLM Docs – Docker
- AnythingLLM Docs – Ollama LLM
- AnythingLLM Docs – Embedder
- AnythingLLM – danh sách embedder có sẵn
- multilingual-e5-small – model card
- AnythingLLM Docs – Chế độ chat
- AnythingLLM Docs – Nhiều người dùng
Lịch sử cập nhật
- 21/10/2026 — Bản đầu.
Miễn trừ trách nhiệm
Bài viết thuộc chuỗi kiến thức của Công ty Cổ phần Giáo dục Aduca, chia sẻ miễn phí cho mục đích học tập. Thông tin kỹ thuật đối chiếu với tài liệu chính thức của các dự án và nền tảng tại ngày cập nhật (có ghi nguồn); phần nhận định là quan điểm của Aduca. OpenClaw, Hermes Agent, Claude (thương hiệu của Anthropic), ChatGPT (thương hiệu của OpenAI), n8n (thương hiệu của n8n GmbH), các phần mềm chạy model và các model AI mở (Ollama, LM Studio, Qwen, Gemma, gpt-oss…), Obsidian, Notion, phương pháp Building a Second Brain (Tiago Forte) cùng các phần mềm, dịch vụ nêu trong bài thuộc về chủ sở hữu tương ứng, không thuộc Aduca; Aduca không phải đối tác chính thức của các công ty này. Tính năng, gói và giá có thể thay đổi bất cứ lúc nào – hãy kiểm tra trang chính thức trước khi mua. Kết quả áp dụng phụ thuộc quy trình, dữ liệu và con người của từng doanh nghiệp; bài viết không cam kết doanh thu hay hiệu quả cụ thể. © 2026 Aduca — được trích dẫn khi ghi rõ nguồn aduca.vn.