Kurs
Kendi sunucunuzda çalışan yapay zekâ alanında sık sorulan bir soru, özel dokümanlarla verileri buluta göndermeden nasıl sohbet edilebileceğidir.
AnythingLLM bu soruya popüler bir yanıttır. Tek bir arayüzde her şeyi (doküman yükleme, gömme, arama ve sohbet) yönetir ve çok sayıda LLM sağlayıcısına bağlanır. Bulut hizmetlerine bağlı kalmadan özel yapay zekâ iş akışları kurmanıza olanak tanır.
Bu rehberde AnythingLLM’in ne olduğunu açıklayacak, mimarisini adım adım anlatacak, Docker ve Ollama ile nasıl kuracağınızı gösterecek ve çalışan bir Retrieval-Augmented Generation (RAG) hattını göstereceğim. Ayrıca Open WebUI ve ChatGPT ile karşılaştıracağım.
AnythingLLM Nedir?
AnythingLLM, Mintplex Labs tarafından MIT lisansı altında geliştirilmiş açık kaynaklı bir uygulamadır. Aktif bir GitHub topluluğu ve sık güncellemeleri vardır; kendi sunucusunda AI kullanan çevrelerde yaygın şekilde kullanılır.
Yaptığı şey şu: dokümanlarınızı, bir büyük dil modeli (LLM)nin sohbet sırasında kullanabileceği bağlama dönüştürür. Dosyaları yüklersiniz, sistem bunları işler ve depolar; ardından LLM, verilerinize dayanarak soruları yanıtlayabilir. Proje hızlı büyüdü; aktif bir Discord topluluğu ve yeni LLM sağlayıcıları ile özellikler ekleyen aylık güncellemeleri var.
Baştan iki şeyi anlamak önemli. Birincisi, AnythingLLM başlı başına bir model değildir. Sizi yerel (Ollama gibi) veya bulut tabanlı (OpenAI ya da Anthropic gibi) harici LLM sağlayıcılarına bağlayan bir köprüdür.
İkincisi, platform her şeyi çalışma alanları halinde düzenler. Bunları farklı projeler için ayrı odalar olarak düşünebilirsiniz. Her çalışma alanının kendi dokümanları ve sohbetleri vardır; siz açıkça paylaşacak şekilde yapılandırmadıkça birbirinden yalıtılmış kalır.

Dokümanlarla AnythingLLM çalışma alanı arayüzü. Görsel: Yazar.
Masaüstünde AnythingLLM ve Docker
Masaüstü uygulaması (macOS, Windows, Linux), her şeyi yerel olarak çalıştıran tek kullanıcılar içindir. Yerleşik bir LLM motoru, CPU tabanlı gömme aracı ve paketlenmiş LanceDB ile gelir. Tek tıkla kurulum, yapılandırma gerekmez.
Docker sürümü ekipler ve sunucular için tasarlanmıştır. Admin, Manager ve Default rollerle uygun erişim kontrolü ekler; ayrıca web siteleri için gömülebilir sohbet bileşenleri ve beyaz etiketleme sunar. Ekip erişimi veya herkese açık sohbet bileşenlerine ihtiyacınız varsa Docker tek seçeneğinizdir.
|
Özellik |
Masaüstü |
Docker |
|
Çoklu kullanıcı desteği |
Hayır |
Evet (Admin, Manager, Default roller) |
|
Yerleşik LLM motoru |
Evet |
Hayır (harici sağlayıcılara bağlanır) |
|
Gömülebilir sohbet bileşenleri |
Hayır |
Evet |
|
Beyaz etiketleme |
Hayır |
Evet |
|
Kurulum karmaşıklığı |
Tek tıkla kurulum |
Docker bilgisi gerektirir |
AnythingLLM’in Temel Özellikleri
Artık AnythingLLM’in ne olduğunu ve Masaüstü ile Docker arasında nasıl seçim yapacağınızı bildiğinize göre, doküman tabanlı yapay zekâ iş akışları için faydalı kılan özelliklere bakalım.
Doküman alımı
PDF, DOCX, TXT, Markdown, CSV, XLSX, PPTX, HTML, 50+ kod dosyası türü ve ses dosyalarıyla (Whisper transkripsiyonu ile) çalışır. Ayrıca yerleşik tarayıcıyı kullanarak içeriği doğrudan GitHub depolarından, YouTube transkriptlerinden, Confluence sayfalarından ve web sitelerinden çekebilirsiniz.
Vektör veritabanı
LanceDB yerleşik gelir ve sıfır kurulum gerektirir. Kurumsal özelliklere ihtiyaç duyarsanız Chroma, Milvus, Pinecone, Qdrant, Weaviate, Zilliz, AstraDB veya PGVector’a geçebilirsiniz.
Birden çok LLM desteği
Ollama, LM Studio, OpenAI, Anthropic, Azure OpenAI, Google Gemini, AWS Bedrock, Groq ve DeepSeek dâhil geniş bir yelpazeyi destekler. Modelleri çalışma alanı bazında seçersiniz; böylece bir çalışma alanı hassas işler için yerel bir Ollama modelini kullanırken, bir diğeri OpenAI üzerinden GPT-4o kullanabilir.
Yapay zekâ ajanları
Herhangi bir sohbette @agent yazarak kodsuz ajan oluşturucuyu etkinleştirin. Doküman arama, özetleme ve web kazıma için yerleşik becerilere sahiptir. Agent Flows, API çağrılarını, LLM talimatlarını ve dosya işlemlerini birbirine bağlamak için görsel bir tuval sunar. Ayrıca harici araçlara bağlanmak için Model Context Protocol (MCP) destekler.
API erişimi
Geliştirici API’si /api/docs (Swagger dokümanları) altında yer alır. Çalışma alanlarını programatik olarak yönetebilir, dokümanları gömebilir ve sohbet mesajları gönderebilirsiniz.
AnythingLLM Nasıl Çalışır (Mimari Genel Bakış)
Uygulama üç parçadan oluşur: ön uç (React/ViteJS) gördüğünüz ve etkileşime girdiğiniz arayüzü sağlar. Sunucu (Express arka ucu) tüm LLM etkileşimlerini, vektör veritabanı işlerini ve API isteklerini yönetir. Yapılandırmayı depolamak için SQLite kullanır. Toplayıcı ise yüklediğiniz dokümanları ayrıştırıp işleyen ayrı bir hizmettir. Bir PDF yüklediğinizde, toplayıcı metni çıkarır; ardından sunucu bunu parçalara böler, gömer ve depolar.
RAG hattı
Hat iki aşamada çalışır.
Alım: Dokümanlarınız toplayıcıya gider ve metin çıkarılır. Ardından sunucu bu metni parçalara böler (bağlamı korumak için küçük bindirmeyle 1.000 karaktere kadar). Her parça, gömme modeli tarafından bir vektöre dönüştürülür ve vektör veritabanında saklanır. Bir vector-cache/ klasörü, birçok durumda gereksiz yeniden gömmeyi azaltır.
Sorgu: Sorunuz aynı gömme modeli kullanılarak bir vektöre dönüştürülür. Sistem daha sonra en benzer parçaları arar (genellikle dört ile altı arası). Benzerlik puanına göre filtreledikten sonra, eşleşen metin sorunuz ve sohbet geçmişinizle birlikte LLM istemine eklenir. LLM tüm bunları (sistem talimatları, getirilen bağlam, sorunuz ve önceki mesajlar) okuyup yanıtını üretir.

AnythingLLM RAG hattı mimarisi genel bakış. Görsel: Yazar.
Docker ile AnythingLLM Kurulumu
SSS’de göreceğiniz üzere AnythingLLM hafiftir: yaklaşık 2 GB RAM, 2 çekirdekli CPU ve yaklaşık 5 GB depolama. Bunun yanında yerel bir LLM çalıştırmak daha fazlasını gerektirir (7B bir model tipik olarak 8 GB+ RAM/VRAM ister). Bu eğitimde, sınırlı donanımda çalışan 3B bir model kullanıyorum. Başlamadan önce Docker’ın kurulu ve çalışır durumda olduğundan emin olun. Windows kullanıcılarının ayrıca WSL’e ihtiyacı vardır.
Adım 1: Ollama’yı kurun ve modelleri çekin
Ollama’yı ollama.com/download adresinden indirin, ardından bir sohbet modeli ve bir gömme modeli çekin:
ollama pull llama3.2:3b
ollama pull nomic-embed-text
ollama serve
Ben llama3.2:3b kullanıyorum çünkü sınırlı VRAM’e sahip makinelerde (ör. 6 GB’lık RTX 3050) iyi çalışıyor. Daha iyi kalite için donanımınız uygunsa llama3.2:8b ya da deepseek-r1:7b deneyin. Daha fazla model seçeneği için LLM’leri yerelde çalıştırma rehberimize göz atın.
Adım 2: Docker Compose dosyasını oluşturun
mkdir anythingllm-setup && cd anythingllm-setup
touch .env
docker-compose.yml dosyasını oluşturun:
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:
Bu yapılandırma hakkında birkaç not. cap_add: SYS_ADMIN bayrağı, korumalı bir Chromium tarayıcısı kullanan yerleşik PuppeteerJS web tarayıcısı için gereklidir.
extra_hosts satırı, en yaygın Docker ağ sorununu çözer: konteynerin ana makinenizde çalışan Ollama’ya ulaşmasını sağlar. Bunu olmadan, konteyner içinden localhost:11434 adresine bağlanma girişimleri başarısız olur; çünkü Docker konteynerlerinin kendi ağ ad alanı vardır.
Windows ve macOS’ta bağlama noktası izinleri sorunlu olabildiği için daha iyi çapraz platform uyumluluğu adına bağlama yerine adlandırılmış bir Docker birimi (anythingllm_storage) kullanıyorum.
Adım 3: Başlatın ve yapılandırın
Konteynerin başlatılması için yaklaşık 30 saniye bekleyin, ardından http://localhost:3001 adresini açın. İlk kurulum sihirbazını göreceksiniz. Ancak önce şu komutu çalıştırın:
docker compose up -d

Docker üzerinde AnythingLLM ilk kurulum sihirbazı. Görsel: Yazar.
Kurulum sihirbazı sırasında, hem LLM hem de gömme sağlayıcısı olarak Ollama’yı seçin, temel URL’yi http://host.docker.internal:11434 olarak ayarlayın, sohbet modeli olarak llama3.2:3b ve gömme aracı olarak nomic-embed-text seçin. Vektör veritabanı olarak varsayılan LanceDB’yi koruyun.
Masaüstü alternatifi için uygulamayı anythingllm.com adresinden indirin. Her şey paketlidir ve sıfır yapılandırma ile anında çalışır. Kişisel kullanım için idealdir; ancak daha önce belirtildiği gibi, Docker’da bulunan çoklu kullanıcı ve kurumsal özellikler yoktur.
LLM Sağlayıcılarını Bağlama
Ollama’nın ötesinde, Ayarlar üzerinden bulut sağlayıcılarını bağlayabilirsiniz (SSS 1’de belirtildiği gibi, donanımınız sınırlıysa bu faydalıdır).
OpenAI
LLM sağlayıcısı olarak OpenAI’ı seçin, platform.openai.com adresinden API anahtarınızı girin ve bir model seçin (GPT-4o, GPT-4o-mini vb.). Hesabınızda faturalandırma ayarlı olmalıdır; aksi halde çalışmaz (ve hata mesajı net olmayacaktır).
Anthropic
Anahtarınızı console.anthropic.com üzerinden girin. Tüm Claude modelleri sohbet için çalışır; ancak Anthropic’in gömme modeli yoktur, bu nedenle yine de Ollama’nın nomic-embed-text gibi ayrı bir gömme aracına ihtiyacınız olur.
Ollama yapılandırması
Ollama’yı yukarıda gösterildiği gibi kurulum sırasında yapılandırdıysanız, hazırsınız. Diğer kurulumlar için Windows/macOS’ta http://host.docker.internal:11434, Linux’ta ise http://172.17.0.1:11434 kullanın. Ollama’ya erişilemiyorsa, başlatmadan önce OLLAMA_HOST=0.0.0.0:11434 ayarlayın.
Doküman Sohbeti için AnythingLLM Kullanımı
Kenar çubuğunda “New Workspace”e tıklayın ve adlandırın. Dosyaları kenar çubuğundaki yükleme düğmesiyle veya sürükleyip bırakarak yükleyin.
AnythingLLM iki doküman modunu destekler. Ekleme (Attaching) (sohbete sürükleme), tam metni sohbete ekler; ancak sadece o sohbet dizisi için geçerlidir. Model her şeyi görür; fakat belirteç kapasitesiyle sınırlısınız. Gömme (Embedding) (standart RAG yaklaşımı) dokümanı parçalara böler, vektörlere dönüştürür ve çalışma alanında depolar. Gömüldükten sonra dokümanlar o çalışma alanındaki tüm sohbetlerde çalışır. Çoğu durumda gömme daha iyi bir seçenektir. Gömme işlemini başlatmak için “Move to Workspace”e tıklayın.
Getirme kalitesini ayarlama
Sorunuzu yazın; sistem otomatik olarak ilgili parçaları bulur ve LLM’e gönderir. Yanıtlar iyi değilse, ayarlamanız gereken temel seçenekler şunlardır:
Benzerlik eşiği
SSS 5’te belirtildiği gibi, sorun yaşıyorsanız “No Restriction” ile başlayın; ardından parazitleri elemek için kademeli olarak yükseltin.
Maksimum bağlam parçaları
Varsayılan dört ila altı parçadır. Claude gibi geniş bağlam pencerelerine sahip modeller için bunu 10 veya 12’ye çıkarın.
Arama tercihi
LanceDB’de “Accuracy Optimized” yeniden sıralamayı açar; bu sonuçları iyileştirir; ancak modele ve donanıma bağlı olarak ek gecikme getirebilir.
Doküman sabitleme
Kritik dokümanları sabitleyerek parçalara bölmeyi tamamen atlayın. Tam metin her sorguya eklenir (belirteç sınırlarına sığdığı varsayılarak).
AnythingLLM ve Open WebUI
Her iki araç da sağlamdır; ancak farklı kullanıcılara yöneliktir.
|
Boyut |
AnythingLLM |
Open WebUI |
|
Birincil hedef kitle |
İş kullanıcıları, küçük ekipler |
Geliştiriciler, teknik kullanıcılar |
|
Masaüstü uygulaması |
Evet (macOS, Windows, Linux) |
Hayır (yalnızca web tabanlı) |
|
Kurulum karmaşıklığı |
Masaüstü: tek tık; Docker: sorunsuz |
Docker veya sunucu kurulumu gerektirir |
|
RAG uygulaması |
Yerleşik, çoklu vektör DB desteği ve yeniden sıralama |
Geniş RAG, eklenti tabanlı genişletilebilirlik |
|
Çoklu kullanıcı |
Yalnızca Docker; üç RBAC rolü |
Sınırlı iş birliği özellikleri |
|
Eklenti ekosistemi |
Büyüyor; Node.js ile özel beceriler |
Daha olgun ve kapsamlı |
|
Lisans |
MIT |
v0.6.6’dan beri marka korumalı değiştirilmiş BSD-3-Clause |
AnythingLLM genelde çalışma alanı yönetimini ve gömülebilir bileşenleri önceliklendiren ekipler için uygundur; Open WebUI ise daha büyük bir eklenti ekosistemi ve geliştirici odaklı genişletilebilirlik isteyen kullanıcılara uygundur. Bazı ekipler ikisini birden kullanır: detaylı kontrol isteyen geliştiriciler için Open WebUI, hızlı doküman çalışma alanlarına ihtiyaç duyan iş kullanıcıları için AnythingLLM.
AnythingLLM ve ChatGPT
Bu karşılaştırma önceliklerle ilgilidir; hangi aracın “daha iyi” olduğuyla değil.
|
Boyut |
AnythingLLM |
ChatGPT |
|
Veri gizliliği |
Yerel modellerle tam sahiplik |
Veriler OpenAI sunucularına gönderilir |
|
Maliyet |
Ücretsiz (kendi sunucunda); bulut 50 $/ay’dan |
Ücretsiz katman; Plus 20 $/ay; Pro 200 $/ay |
|
Özelleştirme |
İstediğiniz LLM, gömme aracı, vektör DB, ajanlar |
OpenAI modelleriyle sınırlı |
|
Çevrimdışı çalışma |
Evet (yerel modellerle) |
Hayır |
|
Kurulum çabası |
Kurulum gerektirir |
Sıfır kurulum, tarayıcı tabanlı |
|
Doküman sohbeti |
RAG üzerinde tam kontrol (eşikler, parçalama, yeniden sıralama) |
Kullanım limitleriyle dosya yükleme |
ChatGPT, tam barındırılan bir deneyimi ve güçlü varsayılan model kalitesini vurgularken AnythingLLM, gizliliği, esnekliği ve RAG ayarları üzerinde kontrolü öne çıkarır. Ayrıca OpenAI API’si üzerinden GPT-4o’yu AnythingLLM’e bağlayabilirsiniz. Bu, ChatGPT kalitesindeki modelleri AnythingLLM’in çalışma alanı ve RAG özellikleriyle birleştirir.
AnythingLLM Kullanım Senaryoları
AnythingLLM’in en iyi çalıştığı yerler şunlardır:
Dahili bilgi tabanları
Çalışanlar klasörlerde gezinmek yerine şirket dokümanları hakkında soru sorabilir. Politikalarınızı, prosedürlerinizi ve dokümantasyonunuzu yükleyin; ardından insanlar doğal dilde arama yapabilsin.
Araştırma iş akışları
Akademisyenler yüzlerce makale arasında anında arama yapabilir. Araştırma kütüphanenizi gömün ve manuel anahtar sözcük aramaları olmadan ilgili bulguları ortaya çıkarın.
Özel kurumsal dağıtımlar
Sağlık, finans ve hukuk ekipleri tüm verileri kendi sunucularında tutarken yapay zekâ kullanabilir. Verilerin kurum içinde kalması gereken regüle sektörlerde yaygındır.
Geliştirici testleri
Aynı dokümanlarda çalışma alanı başına modelleri değiştirerek farklı LLM’leri (Ollama, OpenAI, Claude) deneyin. Altyapıda değişiklik gerekmez.
Müşteri sohbet bileşenleri
Docker kullanarak web sitenize bir sohbet arayüzü gömün. Genel kullanım için etki alanı izin listeleri ve oturum başına sınırlar yapılandırın.
Toplantı transkripsiyonu
Meeting Assistant özelliği bulut not alma araçları gibi çalışır; ancak yerelde çalışır. Akıcı kullanım için yaklaşık 16 GB RAM gerekir.
Sınırlamalar
Daha önce tartışıldığı gibi, Masaüstü ve Docker farklı özelliklere sahiptir; bu da yeni kullanıcıları şaşırtabilir.
RAG kalitesi ayar gerektirir (başlıca ayarları önceki bölümlerde ele aldım); çünkü benzerlik araması matematik temellidir ve anlamı gerçekten kavramaz.
Eklenti sistemi Open WebUI’ninkinden küçüktür ve özel ajan becerileri geliştirmek Node.js bilgisi gerektirir.
Son olarak, yerleşik model ince ayarı yoktur. Yalnızca sistem istemleri, sıcaklık ve belirteç sınırlarıyla özelleştirme yapabilirsiniz.
AnythingLLM Güvenlik ve Gizlilik
Yerel dağıtım tüm verileri cihazınızda tutar. (Aşağıdaki üçüncü SSS’de daha fazla ayrıntım var.) Bulut sağlayıcıları kullanıldığında, yalnızca çıkarılan bağlam parçaları ve istemler çıkarım sırasında gönderilir. Vektörler ve gömmeler sunucunuzda kalır. Hangi çalışma alanlarının bulut, hangilerinin yerel model kullandığı konusunda bilinçli olun.
Docker sürümü, SIMPLE_SSO_ENABLED aracılığıyla Basit SSO içerir ve geçici erişim belirteçleri oluşturur. API anahtarları ayrıntılı izinler olmadan tam erişim sağlar; bu yüzden onları yönetici parolaları gibi değerlendirin ve düzenli olarak değiştirin. AnythingLLM’i internete açıyorsanız, önüne SSL’li bir Nginx ters vekil sunucu koyun (uygulama tek başına HTTPS’i yönetmez). Telemetriyi DISABLE_TELEMETRY=true ile .env dosyanızda devre dışı bırakabilirsiniz.
Sonuç
AnythingLLM, kendi sunucusunda çalışan yapay zekâ alanındaki gerçek bir sorunu çözer. Dokümanlarınızla sohbet etmek için bir arayüz sunar, neredeyse tüm LLM sağlayıcılarına bağlanır ve verilerinizi kontrolünüz altında tutar. Daha önce tartıştığımız gibi, kişisel kullanım için Masaüstü’nü, ekip dağıtımları için Docker’ı seçin.
Her araç gibi, bunun da ödünleri vardır. RAG kalitesi yapılandırmanıza bağlıdır ve Masaüstü/Docker özellik farkları yeni başlayanları şaşırtabilir.
Bir sonraki adım olarak, AI Fundamentals öğrenme yolumuza veya Docker ve n8n ile yerel AI oluşturma hakkındaki eğitimimize göz atın.
Veri hatları, bulut ve YZ araçları üzerinde çalışan; aynı zamanda DataCamp ve gelişmekte olan geliştiriciler için pratik, yüksek etkili eğiticiler yazan bir veri mühendisi ve topluluk inşacısıyım.
SSS
GPU’suz eski dizüstümde bunu çalıştırabilir miyim?
Evet! AnythingLLM’in kendisi hafiftir: yaklaşık 2 GB RAM, 2 çekirdekli CPU ve 5 GB civarı depolama. Ağır kısım, LLM’i Ollama üzerinden yerelde çalıştırmaktır. Donanımınız sınırlıysa OpenAI veya Groq gibi bir bulut sağlayıcıya bağlanın. Aynı çalışma alanı ve RAG özelliklerini kullanırsınız; ancak çıkarım bulutta gerçekleşir. Başka bir deyişle, AnythingLLM iş akışını yönetir; modelin yerelde mi bulutta mı çalışacağına siz karar verirsiniz.
Vektör veritabanımı daha sonra değiştirirsem ne olur?
Bu konuda önceden plan yapın. Vektör veritabanları arasında otomatik geçiş yoktur. LanceDB’den Pinecone’a geçmek, tüm dokümanların yeniden gömülmesi anlamına gelir. Orijinal dosyalarınız güvendedir; ancak vektörlerin yeniden oluşturulması gerekir. Pratik not: Belirli bir kurumsal ihtiyacınız yoksa LanceDB’de kalın. Genellikle az yapılandırma gerektirir ve birçok küçük ekip dağıtımı için uygundur.
LLM olarak OpenAI’ı kullanırsam verilerim gerçekten gizli mi?
Temel nokta şu: dokümanlarınız ve gömmeleriniz sunucunuzdan ayrılmaz. Ancak soru sorduğunuzda, getirilen metin parçaları ve isteminiz çıkarım için OpenAI’ın API’sine gönderilir. Gerçekten hassas veriler için Ollama kullanın. Her şey yerelde kalır. Genel iş dokümanları için, AnythingLLM’i OpenAI ile kullanmak, dosyaları doğrudan ChatGPT’ye yüklemekten hâlâ daha özeldir.
Ekibim tek bir AnythingLLM kurulumunu paylaşabilir mi?
Evet, ancak yalnızca Docker sürümüyle. Üç rolle çoklu kullanıcıyı destekler: Admin, Manager ve Default. Masaüstü uygulaması yalnızca tek kullanıcı içindir. Önemli: Çoklu kullanıcı modu tek yönlü bir yapılandırma değişimi olarak tasarlanmıştır. Etkinleştirmeden önce ekip erişimine ihtiyacınız olup olmadığına karar verin.
Neden bazen yanıtlarken dokümanlarımı yok sayıyor?
Genelde üç neden: benzerlik eşiği fazla yüksek, muğlak sorgular veya varsayılan İngilizce gömme aracıyla İngilizce olmayan dokümanlar. Hızlı çözüm: önce eşiği “No Restriction” olarak deneyin. Dokümanlarınız İngilizce değilse, Ollama’da bulunan çok dilli bir gömme modeline (örneğin e5 tabanlı modellerden biri) geçin; sonuçlar belirgin şekilde iyileşecektir.

