Lewati ke konten utama

AnythingLLM: Panduan Lengkap Setup, Fitur, dan Use Case

Pelajari cara memasang AnythingLLM dengan Docker dan Ollama, menyiapkan pipeline RAG untuk chat dokumen privat, serta memilih antara AnythingLLM, ChatGPT, dan Open WebUI.
Diperbarui 16 Apr 2026  · 11 mnt baca

Pertanyaan umum di ranah AI self-hosted adalah bagaimana cara mengobrol dengan dokumen privat tanpa mengirimkannya ke API cloud. 

AnythingLLM adalah jawaban populer. Ia menangani semuanya (unggah dokumen, embedding, pencarian, dan chat) dalam satu antarmuka dan terhubung ke berbagai penyedia LLM. Ini memungkinkan Anda membangun alur kerja AI privat tanpa bergantung pada layanan cloud.

Dalam panduan ini, saya akan menjelaskan apa itu AnythingLLM, menelusuri arsitekturnya, menunjukkan cara memasangnya dengan Docker dan Ollama, dan mendemonstrasikan pipeline Retrieval-Augmented Generation (RAG) yang berfungsi. Saya juga akan membandingkannya dengan Open WebUI dan ChatGPT.

Apa Itu AnythingLLM?

AnythingLLM adalah aplikasi open-source yang dibuat oleh Mintplex Labs di bawah lisensi MIT. Memiliki komunitas GitHub yang aktif dan rilis yang sering, serta banyak digunakan di ranah AI self-hosted.

Inilah fungsinya: ia mengubah dokumen Anda menjadi konteks yang dapat digunakan large language model (LLM) selama percakapan. Anda mengunggah file, sistem memproses dan menyimpannya, lalu LLM dapat menjawab pertanyaan berdasarkan data Anda. Proyek ini berkembang pesat, dengan komunitas Discord yang aktif dan pembaruan bulanan yang menambahkan penyedia LLM dan fitur baru.

Ada dua hal yang perlu dipahami di awal. Pertama, AnythingLLM bukanlah model itu sendiri. Ini adalah jembatan yang menghubungkan Anda ke penyedia LLM eksternal, baik lokal (seperti Ollama) maupun berbasis cloud (seperti OpenAI atau Anthropic). 

Kedua, platform ini mengatur semuanya ke dalam workspace. Anggap ini sebagai ruangan terpisah untuk proyek berbeda. Setiap workspace memiliki dokumen dan percakapan sendiri yang tetap terisolasi kecuali Anda mengonfigurasikan untuk berbagi.

Antarmuka workspace AnythingLLM menampilkan panel chat dan sidebar dokumen.

Antarmuka workspace AnythingLLM dengan dokumen. Gambar oleh Penulis.

AnythingLLM di desktop vs. Docker

Aplikasi desktop (macOS, Windows, Linux) ditujukan untuk pengguna tunggal yang menjalankan semuanya secara lokal. Aplikasi ini dilengkapi mesin LLM bawaan, embedder berbasis CPU, dan LanceDB terpaket. Instal sekali klik, tanpa perlu konfigurasi.

Versi Docker dibuat untuk tim dan server. Ia menambahkan kontrol akses yang tepat dengan peran Admin, Manager, dan Default, plus widget chat yang bisa disematkan di situs web dan white-labeling. Jika Anda memerlukan akses tim atau widget chat untuk publik, Docker adalah satu-satunya opsi.

Fitur

Desktop

Docker

Dukungan multi-pengguna

Tidak

Ya (peran Admin, Manager, Default)

Mesin LLM bawaan

Ya

Tidak (hubungkan ke penyedia eksternal)

Widget chat yang dapat disematkan

Tidak

Ya

White-labeling

Tidak

Ya

Kompleksitas setup

Instal sekali klik

Memerlukan pengetahuan Docker

Fitur Inti AnythingLLM

Sekarang Anda sudah tahu apa itu AnythingLLM dan cara memilih antara Desktop dan Docker, mari kita telusuri fitur-fitur yang membuatnya berguna untuk alur kerja AI berbasis dokumen.

Ingesti dokumen

Bekerja dengan PDF, DOCX, TXT, Markdown, CSV, XLSX, PPTX, HTML, 50+ jenis file kode, dan file audio (menggunakan transkripsi Whisper). Anda juga dapat menarik konten langsung dari repo GitHub, transkrip YouTube, halaman Confluence, dan situs web menggunakan scraper bawaan.

Basis data vektor

LanceDB sudah terpasang dan tidak perlu setup. Jika Anda memerlukan fitur enterprise, Anda bisa beralih ke Chroma, Milvus, Pinecone, Qdrant, Weaviate, Zilliz, AstraDB, atau PGVector.

Dukungan multi-LLM

Mendukung berbagai penyedia, termasuk Ollama, LM Studio, OpenAI, Anthropic, Azure OpenAI, Google Gemini, AWS Bedrock, Groq, dan DeepSeek. Anda memilih model per workspace, sehingga satu workspace dapat memakai model Ollama lokal untuk data sensitif sementara workspace lain memakai GPT-4o lewat OpenAI.

Agen AI

Ketik @agent di chat mana pun untuk mengaktifkan pembuat agen tanpa kode. Memiliki skill bawaan untuk pencarian dokumen, rangkuman, dan web scraping. Agent Flows memberi kanvas visual untuk merangkai panggilan API, instruksi LLM, dan operasi file. Juga mendukung Model Context Protocol (MCP) untuk menghubungkan tool eksternal.

Akses API

API untuk pengembang tersedia di /api/docs (dokumentasi Swagger). Anda dapat mengelola workspace, melakukan embedding dokumen, dan mengirim pesan chat secara terprogram.

Cara Kerja AnythingLLM (Tinjauan Arsitektur)

Aplikasi ini memiliki tiga bagian: frontend (React/ViteJS) memberi antarmuka yang Anda lihat dan gunakan. Server (backend Express) menangani semua interaksi LLM, pekerjaan basis data vektor, dan permintaan API. Ia menggunakan SQLite untuk menyimpan konfigurasi. Collector adalah layanan terpisah yang mengurai dan memproses dokumen yang Anda unggah. Saat Anda mengunggah PDF, collector mengekstrak teks, lalu server memecah, melakukan embedding, dan menyimpannya.

Pipeline RAG

Pipeline bekerja dalam dua fase.

Ingesti: Dokumen Anda masuk ke collector, yang mengekstrak teks. Server kemudian membagi teks ini menjadi potongan (hingga 1.000 karakter dengan sedikit overlap untuk menjaga konteks). Setiap potongan diubah menjadi vektor oleh model embedding, lalu disimpan di basis data vektor. Folder vector-cache/ mengurangi embedding ulang yang tidak perlu dalam banyak kasus.

Kueri: Pertanyaan Anda diubah menjadi vektor menggunakan model embedding yang sama. Lalu sistem mencari potongan yang paling mirip (biasanya empat hingga enam). Setelah difilter berdasarkan skor kemiripan, teks yang cocok ditambahkan ke prompt LLM bersama dengan pertanyaan dan riwayat chat Anda. LLM membaca semuanya (instruksi sistem, konteks yang diambil, pertanyaan Anda, dan pesan sebelumnya) lalu menghasilkan jawabannya.

Diagram alur pipeline RAG AnythingLLM dari unggah dokumen hingga respons LLM.

Tinjauan arsitektur pipeline RAG AnythingLLM. Gambar oleh Penulis.

Menginstal AnythingLLM dengan Docker

Seperti yang akan Anda lihat di FAQ, AnythingLLM ringan: sekitar 2GB RAM, CPU 2-core, dan sekitar 5GB penyimpanan. Menjalankan LLM lokal bersamaan memerlukan lebih banyak (model 7B biasanya butuh 8GB+ RAM/VRAM). Untuk tutorial ini, saya menggunakan model 3B yang bekerja pada hardware terbatas. Pastikan Docker terinstal dan berjalan sebelum memulai. Pengguna Windows juga memerlukan WSL.

Langkah 1: Instal Ollama dan tarik model

Unduh Ollama dari ollama.com/download, lalu tarik sebuah model chat dan model embedding:

ollama pull llama3.2:3b
ollama pull nomic-embed-text
ollama serve

Saya memakai llama3.2:3b karena berjalan baik pada mesin dengan VRAM terbatas (seperti RTX 3050 dengan 6GB). Untuk kualitas lebih baik, coba llama3.2:8b atau deepseek-r1:7b jika hardware Anda memungkinkan. Lihat panduan kami tentang menjalankan LLM secara lokal untuk opsi model lainnya.

Langkah 2: Buat file Docker Compose

mkdir anythingllm-setup && cd anythingllm-setup
touch .env

Buat docker-compose.yml:

services:
  anythingllm:
    image: mintplexlabs/anythingllm:latest
    container_name: anythingllm
    ports:
      - "3001:3001"
    cap_add:
      - SYS_ADMIN
    volumes:
      - anythingllm_storage:/app/server/storage
      - ./.env:/app/server/.env
    environment:
      - STORAGE_DIR=/app/server/storage
    extra_hosts:
      - "host.docker.internal:host-gateway"
    restart: unless-stopped

volumes:
  anythingllm_storage:

Beberapa hal terkait konfigurasi ini. Flag cap_add: SYS_ADMIN diperlukan untuk web scraper PuppeteerJS bawaan, yang menggunakan browser Chromium tersandbox.

Baris extra_hosts menyelesaikan masalah jaringan Docker yang paling umum: ia memungkinkan container menjangkau Ollama yang berjalan di mesin host Anda. Tanpa ini, setiap upaya menghubungkan ke localhost:11434 dari dalam container akan gagal karena container Docker memiliki namespace jaringan sendiri. 

Saya menggunakan volume Docker bernama (anythingllm_storage) alih-alih bind mount untuk kompatibilitas lintas platform yang lebih baik, terutama di Windows dan macOS, di mana izin bind mount bisa bermasalah.

Langkah 3: Jalankan dan konfigurasikan

Tunggu sekitar 30 detik hingga container inisialisasi, lalu buka http://localhost:3001. Anda akan melihat wizard setup pertama. Namun sebelumnya, jalankan perintah ini:

docker compose up -d

Wizard setup pertama AnythingLLM setelah instalasi Docker.

Wizard setup awal AnythingLLM di Docker. Gambar oleh Penulis.

Selama wizard setup, pilih Ollama sebagai penyedia LLM dan embedding, setel base URL ke http://host.docker.internal:11434, pilih llama3.2:3b sebagai model chat, dan nomic-embed-text sebagai embedder. Biarkan LanceDB sebagai basis data vektor default.

Mengonfigurasi Ollama sebagai penyedia LLM. Video oleh Penulis.

Untuk alternatif Desktop, unduh aplikasinya dari anythingllm.com. Aplikasi ini memaketkan semuanya dan langsung berfungsi tanpa konfigurasi. Ideal untuk penggunaan pribadi, namun seperti disebutkan sebelumnya, tidak memiliki fitur multi-pengguna dan enterprise yang tersedia di Docker.

Menghubungkan Penyedia LLM

Di luar Ollama, Anda dapat menghubungkan penyedia cloud melalui Settings (seperti disebut di FAQ 1, ini berguna jika hardware Anda terbatas).

OpenAI

Pilih OpenAI sebagai penyedia LLM, masukkan API key dari platform.openai.com, dan pilih model (GPT-4o, GPT-4o-mini, dll.). Akun Anda perlu menyiapkan penagihan, jika tidak maka tidak akan berfungsi (dan pesan error-nya tidak akan jelas).

Anthropic

Masukkan key Anda dari console.anthropic.com. Semua model Claude berfungsi untuk chat, tetapi Anthropic tidak memiliki model embedding, jadi Anda tetap memerlukan embedder terpisah seperti nomic-embed-text dari Ollama.

Konfigurasi Ollama

Jika Anda mengonfigurasi Ollama saat instalasi seperti di atas, Anda sudah siap. Untuk setup lainnya, gunakan http://host.docker.internal:11434 di Windows/macOS, atau http://172.17.0.1:11434 di Linux. Jika Ollama tidak dapat dijangkau, setel OLLAMA_HOST=0.0.0.0:11434 sebelum menjalankannya.

Menggunakan AnythingLLM untuk Chat Dokumen

Klik "New Workspace" di sidebar dan beri nama. Unggah file menggunakan tombol unggah di sidebar atau seret-dan-lepas.

AnythingLLM mendukung dua mode dokumen. Attaching (seret ke chat) memasukkan seluruh teks ke dalam percakapan, tetapi hanya untuk thread chat itu saja. Model melihat semuanya, namun Anda dibatasi oleh kapasitas token. Embedding (pendekatan RAG standar) memecah dokumen menjadi potongan, mengubahnya menjadi vektor, dan menyimpannya di workspace. Setelah di-embed, dokumen berfungsi di semua chat dalam workspace tersebut. Untuk sebagian besar kasus, embedding adalah pilihan yang lebih baik. Klik "Move to Workspace" untuk memulai proses embedding.

Mengunggah dan melakukan embedding dokumen di sebuah workspace. Video oleh Penulis.

Menyetel kualitas retrieval

Ketik pertanyaan Anda dan sistem secara otomatis menemukan potongan yang relevan dan mengirimkannya ke LLM. Jika jawabannya kurang baik, berikut pengaturan kunci yang perlu disesuaikan:

Ambang kemiripan

Seperti disebutkan di FAQ 5, mulailah dengan "No Restriction" jika Anda mengalami masalah, lalu naikkan perlahan untuk menyaring noise.

Maksimal cuplikan konteks

Default-nya empat hingga enam potongan. Naikkan ke 10 atau 12 untuk model dengan jendela konteks besar seperti Claude.

Preferensi pencarian

"Accuracy Optimized" pada LanceDB mengaktifkan reranking, yang meningkatkan hasil tetapi dapat menambah latensi tergantung model dan hardware.

Penyematan dokumen (pin)

Sematkan dokumen penting untuk melewati proses chunking sepenuhnya. Teks lengkap ditambahkan ke setiap kueri (dengan asumsi muat dalam batas token).

Respons chat dokumen dengan konteks RAG. Video oleh Penulis.

AnythingLLM vs. Open WebUI

Kedua alat sama-sama solid, tetapi dibuat untuk user yang berbeda.

Dimensi

AnythingLLM

Open WebUI

Target utama

Pengguna bisnis, tim kecil

Pengembang, pengguna teknis

Aplikasi desktop

Ya (macOS, Windows, Linux)

Tidak (hanya berbasis web)

Kompleksitas setup

Desktop: sekali klik; Docker: mudah

Memerlukan Docker atau setup server

Implementasi RAG

Bawaan dengan dukungan multi-vector DB, reranking

RAG ekstensif, ekstensibilitas berbasis plugin

Multi-pengguna

Hanya Docker; tiga peran RBAC

Fitur kolaborasi terbatas

Ekosistem plugin

Berkembang; skill kustom via Node.js

Lebih matang dan ekstensif

Lisensi

MIT

BSD-3-Clause yang dimodifikasi dengan perlindungan branding sejak v0.6.6

AnythingLLM cenderung cocok untuk tim yang memprioritaskan manajemen workspace dan widget yang dapat disematkan, sementara Open WebUI cenderung cocok bagi pengguna yang menginginkan ekosistem plugin lebih besar dan ekstensibilitas yang berorientasi pengembang. Beberapa tim menjalankan keduanya: Open WebUI untuk dev yang menginginkan kontrol mendalam, dan AnythingLLM untuk pengguna bisnis yang butuh workspace dokumen yang cepat.

AnythingLLM vs. ChatGPT

Perbandingan ini soal prioritas, bukan mana yang lebih "baik."

Dimensi

AnythingLLM

ChatGPT

Privasi data

Kepemilikan penuh dengan model lokal

Data dikirim ke server OpenAI

Biaya

Gratis (self-hosted); cloud mulai $50/bulan

Paket gratis; Plus $20/bulan; Pro $200/bulan

Kustomisasi

LLM, embedder, vector DB, agen apa pun

Terbatas pada model OpenAI

Kemampuan offline

Ya (dengan model lokal)

Tidak

Upaya setup

Memerlukan instalasi

Tanpa setup, berbasis browser

Chat dokumen

Kontrol RAG penuh (ambang, chunking, reranking)

Unggah file dengan batasan penggunaan

ChatGPT menekankan pengalamanan yang sepenuhnya di-host dan kualitas model default yang kuat, sementara AnythingLLM menekankan privasi, fleksibilitas, dan kontrol atas pengaturan RAG. Anda juga dapat menghubungkan GPT-4o ke AnythingLLM melalui OpenAI API. Itu memberi Anda model dengan kualitas ChatGPT dengan fitur workspace dan RAG milik AnythingLLM.

Use Case AnythingLLM

Berikut area di mana AnythingLLM paling efektif:

Basis pengetahuan internal

Karyawan dapat mengajukan pertanyaan tentang dokumen perusahaan alih-alih menelusuri folder. Unggah kebijakan, prosedur, dan dokumentasi Anda, lalu biarkan orang mencari dengan bahasa alami.

Alur kerja riset

Akademisi dapat menelusuri ratusan makalah secara instan. Lakukan embedding pustaka riset Anda dan munculkan temuan relevan tanpa pencarian kata kunci manual.

Penerapan enterprise privat

Tim kesehatan, keuangan, dan legal dapat menggunakan AI sambil menjaga semua data tetap di server mereka sendiri. Umum di industri teregulasi di mana data harus tetap on-premises.

Pengujian pengembang

Coba LLM berbeda (Ollama, OpenAI, Claude) pada dokumen yang sama dengan mengganti model per workspace. Tidak perlu perubahan infrastruktur.

Widget chat pelanggan

Sematkan antarmuka chat di situs web Anda menggunakan Docker. Konfigurasikan allowlist domain dan batas per sesi untuk penggunaan publik.

Transkripsi rapat

Fitur Meeting Assistant bekerja seperti alat catatan berbasis cloud tetapi berjalan secara lokal. Memerlukan sekitar 16GB RAM agar lancar.

Keterbatasan

Seperti dibahas sebelumnya, Desktop dan Docker memiliki fitur yang berbeda, yang membingungkan pengguna baru. 

Kualitas RAG perlu penyetelan (saya telah membahas pengaturan utama sebelumnya) karena pencarian kemiripan berbasis matematika dan bukan benar-benar memahami makna. 

Sistem plugin lebih kecil dibanding Open WebUI, dan membangun skill agen kustom memerlukan pengetahuan Node.js. 

Terakhir, tidak ada fine-tuning bawaan. Anda hanya bisa melakukan kustomisasi melalui system prompt, temperature, dan batas token.

Keamanan dan Privasi AnythingLLM

Penerapan lokal menjaga semua data tetap di perangkat Anda. (Saya memiliki detail lebih lanjut di FAQ ketiga di bawah.) Saat menggunakan penyedia cloud, hanya prompt dan konteks yang diambil yang dikirim selama inferensi. Vektor dan embedding tetap berada di server Anda. Pertimbangkan dengan saksama workspace mana yang menggunakan model cloud versus lokal.

Versi Docker menyertakan Simple SSO melalui SIMPLE_SSO_ENABLED, yang membuat token akses sementara. API key memberikan akses penuh tanpa izin granular, jadi perlakukan seperti kata sandi admin dan ganti secara berkala. Jika Anda mengekspos AnythingLLM ke internet, letakkan Nginx reverse proxy dengan SSL di depannya (aplikasi ini tidak menangani HTTPS sendiri). Telemetri dapat dinonaktifkan dengan DISABLE_TELEMETRY=true di file .env Anda.

Kesimpulan

AnythingLLM menyelesaikan masalah nyata di ranah AI self-hosted. Ia memberi Anda antarmuka untuk mengobrol dengan dokumen Anda, terhubung ke hampir semua penyedia LLM, dan menjaga data Anda tetap di bawah kendali Anda. Seperti dibahas sebelumnya, pilih Desktop untuk penggunaan pribadi atau Docker untuk penerapan tim.

Seperti alat apa pun, ada trade-off. Kualitas RAG bergantung pada cara Anda mengonfigurasinya, dan perbedaan fitur Desktop/Docker dapat membingungkan pendatang baru. 

Langkah berikutnya, lihat AI Fundamentals track kami atau tutorial tentang membangun AI lokal dengan Docker dan n8n.


Khalid Abdelaty's photo
Author
Khalid Abdelaty
LinkedIn

Saya seorang data engineer dan pembangun komunitas yang bekerja lintas pipeline data, cloud, dan perkakas AI sambil menulis tutorial praktis dan berdampak tinggi untuk DataCamp dan pengembang yang sedang berkembang.

FAQs

Bisakah saya menjalankannya di laptop lama tanpa GPU?

Ya! AnythingLLM sendiri ringan: sekitar 2GB RAM, CPU 2-core, dan sekitar 5GB penyimpanan. Bagian beratnya adalah menjalankan LLM secara lokal melalui Ollama. Jika hardware Anda terbatas, hubungkan ke penyedia cloud seperti OpenAI atau Groq. Anda mendapatkan fitur workspace dan RAG yang sama, tetapi inferensi terjadi di cloud. Dengan kata lain, AnythingLLM mengelola alur kerja, dan Anda memilih apakah model berjalan secara lokal atau di cloud.

Apa yang terjadi jika saya mengubah basis data vektor nanti?

Rencanakan hal ini sebelumnya. Tidak ada migrasi otomatis antar basis data vektor. Beralih dari LanceDB ke Pinecone berarti melakukan embedding ulang semua dokumen. File asli Anda tetap aman, tetapi vektor perlu dibuat ulang. Catatan praktis: tetap gunakan LanceDB kecuali Anda memiliki kebutuhan enterprise spesifik. Biasanya minim konfigurasi dan cocok untuk banyak penerapan tim kecil.

Apakah data saya benar-benar privat jika saya menggunakan OpenAI untuk LLM?

Intinya: dokumen dan embedding Anda tidak pernah meninggalkan server Anda. Namun ketika Anda bertanya, potongan teks yang diambil dan prompt Anda dikirim ke API OpenAI untuk inferensi. Untuk data yang betul-betul sensitif, gunakan Ollama. Semuanya tetap lokal. Untuk dokumen kerja umum, AnythingLLM dengan OpenAI tetap lebih privat daripada mengunggah file langsung ke ChatGPT.

Bisakah tim saya berbagi satu setup AnythingLLM?

Ya, tetapi hanya dengan versi Docker. Versi ini mendukung multi-pengguna dengan tiga peran: Admin, Manager, dan Default. Aplikasi Desktop hanya untuk satu pengguna. Penting: mode multi-pengguna dirancang sebagai perubahan konfigurasi satu arah. Putuskan apakah Anda memerlukan akses tim sebelum mengaktifkannya.

Mengapa kadang-kadang dokumen saya diabaikan saat menjawab?

Biasanya ada tiga alasan: ambang kemiripan terlalu tinggi, kueri yang samar, atau dokumen non-Inggris dengan embedder default berbahasa Inggris. Perbaikan cepat: coba "No Restriction" pada ambang terlebih dulu. Jika dokumen Anda bukan berbahasa Inggris, ganti ke model embedding multibahasa yang tersedia di Ollama (misalnya salah satu model berbasis e5) untuk hasil yang jauh lebih baik.

Topik

Belajar bersama DataCamp

Kursus

Memahami Kecerdasan Buatan

2 Hr
391K
Pelajari konsep dasar Kecerdasan Buatan seperti machine learning, deep learning, NLP, AI generatif, dan lainnya.
Lihat DetailRight Arrow
Mulai Kursus
Lihat Lebih BanyakRight Arrow
Terkait

blogs

12 Alternatif ChatGPT Terbaik yang Bisa Anda Coba pada 2026

Artikel ini menyajikan daftar alternatif ChatGPT yang akan meningkatkan produktivitas Anda.
Javier Canales Luna's photo

Javier Canales Luna

12 mnt

blogs

40 Pertanyaan Wawancara DBMS Teratas di 2026

Kuasai pertanyaan wawancara basis data, dari konsep SQL dasar hingga skenario desain sistem tingkat lanjut. Panduan mendalam ini mencakup semua yang Anda perlukan untuk sukses di wawancara DBMS dan meraih peran berikutnya.
Dario Radečić's photo

Dario Radečić

15 mnt

blogs

Spaghetti Plot dan Jalur Badai

Temukan alasan mengapa Anda sebaiknya (tidak) menggunakan spaghetti plot untuk menyampaikan ketidakpastian jalur prediksi badai serta dampaknya terhadap interpretasi.
Hugo Bowne-Anderson's photo

Hugo Bowne-Anderson

13 mnt

blogs

Tutorial Korelasi di R

Dapatkan pengenalan dasar-dasar korelasi di R: pelajari lebih lanjut tentang koefisien korelasi, matriks korelasi, plotting korelasi, dan sebagainya.
David Woods's photo

David Woods

13 mnt

Lihat Lebih BanyakLihat Lebih Banyak