Yerel bir LLM aracısı bağlamdan çıktığı anda, sohbet anlamını yitirir. Sekizinci tur, modelin zaten penceresinden bıraktığı bir dosyaya atıfta bulunmaya çalışır, araç çağrısı çıktısı rutin bir adımda 6000 token tüketir ve sonraki yanıt bir plan yerine bir özür olur. Evde çalışan bir 7B veya 13B modele elli adım boyunca bir görevi tamamlatmak model boyutundan daha az, pencerenin içine ve dışına gideni ilgilidir.
Yerel LLM’ler etrafında bağlamı yöneten yedi uygulamayı ve kütüphaneyi test ettik. Bazıları oturumlar arasında devam eden bellek depolarıdır, bazıları taşmadan önce özetleyen istem motorlarıdır ve biri doğru ayarlarla Ollama sunucusunun kendisidir. Aşağıda, test aracımızı 13B modeliyle 90 dakikalık bir kodlama oturumunda gerçekten odaklanmış tutanları var.
Bağlam yöneticisinde neleri arayacaksınız
- Otomatik özetleme. Araç, pencere kapasiteye yaklaşırken fark etmeli ve eski turları niyet kaybetmeden sarmal olmalıdır.
- Şişmiş tarih üzerine alma. Gömme tarafından referans verilen bir dosya, belge veya geçmiş sohbet, aynı içerik tekrar isteme yapıştırılmıştan daha ucuzdur.
- Oturumlar arasında kalıcı bellek. Aracı, iki gün önce projeniz hakkında söylediklerinizi tekrar etmeden hatırlamalıdır.
- Araç çağrısı token disiplini. Büyük araç çıktıları (grep sonuçları, HTTP yanıtları) kırpılmalı veya sonraki turda hammadde olarak yapıştırılmak yerine tutamaçla referans verilmelidir.
- Ollama-native veya OpenAI-uyumlu. Araç, yerel çalışma zamanınızla aynı protokolü konuşmalıdır.
- Yalnızca yerel mod. Bağlam yönetimi hakkında hiçbir şey bir bulut hizmetini araması gerekmemelidir.
Hızlı karşılaştırma
| Uygulama | En iyi | Lisans | Ücretsiz plan | Başlangıç fiyatı | Derecelendirme |
|---|---|---|---|---|---|
| LangChain | Bağlam orkestrasyonu için tam çerçeve | MIT | Ücretsiz | Ücretsiz | 4.5 |
| LlamaIndex | Almaya öncelik aracıları | MIT | Ücretsiz | Ücretsiz | 4.6 |
| Mem0 | Uzun süreli bellek deposu | Apache 2.0 | Kendi kendine barındırılan ücretsiz | Barındırılan yaklaşık $19/ay | 4.5 |
| Chroma | Gömülü vektör veritabanı | Apache 2.0 | Ücretsiz | Ücretsiz | 4.5 |
| Continue | Bağlam kuralları ile VS Code aracısı | Apache 2.0 | Ücretsiz | Ücretsiz | 4.6 |
| Open WebUI | Belge ve bellek boruları ile sohbet UI | BSD-3 | Ücretsiz | Ücretsiz | 4.7 |
| Ollama | Model başına bağlam ayarları ile çalışma zamanı | MIT | Ücretsiz | Ücretsiz | 4.7 |
Uygulamalar
1. LangChain — Bağlam orkestrasyonu için en iyi tam çerçeve
LangChain, bağlam yönetimi gerçek bir sorun olduğu anda çoğu yerel-LLM projesinin yöneldiği çerçevedir. Token sınırları, otomatik özetleme zincirleri, ileti geçmişi depoları ve herhangi bir LLM protokolüne takılan bir bellek API’si ile konuşma tamponları tümü birinci sınıf temellerdir.
Araçlarla birçok turu çalıştıran bir aracı için, MapReduceSummarize zinciri ile ConversationTokenBufferMemory pencerenin patlamasını önler. Ollama ve llama.cpp sunucularıyla temiz bir şekilde entegre olur.
Eksik kaldığı yer: API yüzeyi çok geniştir ve en hızlı yol her zaman net değildir. Haftalık sürümler bazen küçük almaları kırır. Uzun bir zinciri hata ayıklamak için LangSmith UI veya dikkatli günlüğe yazma gerekir.
Fiyatlandırma:
- Ücretsiz: Tam kütüphane, MIT lisansı
- Ücretli: LangSmith bulut izleme katmanı yaklaşık $39/kullanıcı/ay’dan
Platformlar: Windows, macOS, Linux’ta Python, JavaScript
İndir: LangChain
Özet: Aracı bir yerde birçok temel (bellek, alma, araç yönlendirmesi) gerektiğinde bunu seçin.
2. LlamaIndex — En iyi almaya öncelik aracıları
LlamaIndex bağlamı bir sorgu problemi olarak ele alır. Tüm belgeyi istemde yapıştırmak yerine, belgeyi gömme ile indexler ve bu turda modelin ihtiyaç duyduğu sadece paragrafları geri çeker. Sonuç çok daha küçük bir çalışma penceresi ve çok daha uzun etkili bir bellektir.
Kütüphane PDF’ler, Markdown, kod depoları, Notion ve veritabanları için konektörler ile gelir. Onun ChatEngine ilkel sohbet durumunu korurken turda ilgili parçaları almaktadır.
Eksik kaldığı yer: Alma ağır tasarım, dizine eklemek için belgelere sahip olduğunuzu varsayar. Dış corpus olmayan saf bir sohbet aracısı için, bu düz bellek tamponlarından daha fazla kuruluma sahiptir.
Fiyatlandırma:
- Ücretsiz: MIT lisansı
- Ücretli: LlamaCloud yönetilen barındırma yaklaşık $50/ay’dan
Platformlar: Windows, macOS, Linux’ta Python, TypeScript
İndir: LlamaIndex
Özet: Aracının işi dönen bir sohbetten daha çok belgeler üzerinde akıl yürütmeyi içerdiğinde doğru seçim.
3. Mem0 — En iyi uzun süreli bellek deposu
Mem0 (eski adıyla Embedchain) bir aracıya oturumlar arasında geri çağrış yeteneği vermeyi tasarlanmış bir bellek hizmetidir. Sohbetleri yutarak, dayanıklı gerçekleri çıkararak, onları indexleyerek ve uygun olanları otomatik olarak sonraki isteme enjekte eder. Sonuç, kullanıcının tekrar oynatmasına gerek kalmadan proje yapınızı, kodlama stilinizi veya devam eden görevinizi “hatırlayan” bir aracıdır.
Kendi kendine barındırılan mod yerel bir Postgres veya SQLite’a karşı çalışır ve bir Python istemcisi aracılığıyla okur ve yazar. Altyapı çalıştırmak istemeyen takımlar için barındırılan bir katman vardır.
Eksik kaldığı yer: Bellek çıkarma kalitesi modele bağlıdır. 7B model, 13B veya barındırılan sınır modelden daha gürültülü bellek üretir. Çoğu zaman, çıkarıcı isteme biraz ayarlama gereklidir.
Fiyatlandırma:
- Ücretsiz: Kendi kendine barındırılan Apache 2.0
- Ücretli: Bireyler için yaklaşık $19/aydan barındırılan, takımlar için daha yüksek
Platformlar: Windows, macOS, Linux’ta Python istemcisi; barındırılan API
İndir: Mem0
Özet: Aracının yeniden başlatmalar arasında projenizi hatırlamasını istediğinizde belirgin seçim.
4. Chroma — En iyi gömülü vektör veritabanı
Chroma, bir Python veya JavaScript uygulamasıyla işlem içinde çalışan küçük, gömülü bir vektör veritabanıdır. Seçtiğiniz model ile bir parçayı gömmek, bir Chroma koleksiyonuna koymak ve daha sonra geri çekmek için kosinüs benzerliğine göre sorgulamak. Sunucu yok, cluster yok, ips yok.
Yerel LLM bağlam yönetimi için Chroma, LangChain ve LlamaIndex’teki çoğu alma deseninin altında ki depolama katmanıdır. Birden fazla işlemin aynı depoya paylaştığı durumlarda hafif bir sunucu olarak da çalışır.
Eksik kaldığı yer: Tam bellek çerçevesi değil. Alma mantığını kendiniz tellendirirsiniz. Çok büyük koleksiyonlardaki sorgu gecikmesi (milyonlarca parça) Qdrant ve Milvus’ı geride bırakır.
Fiyatlandırma:
- Ücretsiz: Apache 2.0
- Ücretli: Chroma Cloud beta takımlar için mevcut
Platformlar: Python, JavaScript, Windows, macOS, Linux’ta işlemde
İndir: Chroma
Özet: Bir sunucu döndürülmeden gömmeler depolamak için bir yer gerektiğinizde temiz seçim.
5. Continue — Bağlam kuralları ile en iyi VS Code aracısı
Continue, yerel bir Ollama veya llama.cpp örneğini editör içinde kodlama aracısına dönüştüren açık kaynak VS Code (ve JetBrains) uzantısıdır. Onun config.yaml, proje başına bağlam kurallarını belirler: hangi dosyaları otomatik olarak dahil edin, hangilerini özetle ve hangilerini yoksay.
@ komut paleti ada göre belirli bağlam çeker: geçerli dosya için @file, repo genelinde anlamsal arama için @codebase, harici belge için @docs. Her @ referansı bir yapıştırma yerine kontrollü bir bağlam enjeksiyonudur.
Eksik kaldığı yer: Konfigürasyon YAML-ağır ve ayarlamak için bir oturum alır. Bazı alma konfigürasyonları küçük dosyalara çok fazla önyargı sahibidir.
Fiyatlandırma:
- Ücretsiz: Apache 2.0
- Ücretli: Hub özellikleri (paylaşılan asistanlar, özel hub’lar) yaklaşık $10/kullanıcı/ay’dan
Platformlar: VS Code, JetBrains, Windows, macOS, Linux
İndir: Continue
Özet: Aracı editörünüzde yaşadığında ve tüm ağaç değil repo’nun doğru dilimini gereksinim duyduğunda doğru seçim.
6. Open WebUI — Belge ve bellek boruları ile en iyi sohbet UI
Open WebUI, yerel modeller için ChatGPT tarzı ön uç iki özellik ile bağlam sorunlarını doğrudan çözer: belge RAG boruları ve kullanıcı başına bellek. Bir PDF yükleyin veya bir URL yapıştırın ve Open WebUI sohbet sırasında parçalanır, gömmeler ve alır. Bellek paneli kullanıcıya modelin her turda danıştığı dayanıklı notları kaydetmesine izin verir.
Pipelines özelliği, model çağrısının önünde veya sonrasında çalışan (özetleme, redaksiyon, araç yönlendirmesi) özel filtreler değiştirmenize izin verir. İleri kullanıcılar Python’da kendi boru hattını yazarlar ve eklenti klasörüne bırakırlar.
Eksik kaldığı yer: Başsız değil. Her aracı yolu bir sohbet penceresinde biter. Otomasyon-ilk iş akışları yerine Continue veya LangChain kullanır.
Fiyatlandırma:
- Ücretsiz: BSD-3
- Ücretli: Hiçbiri; kurumsal destek mevcuttur
Platformlar: Docker, Kubernetes, Windows, macOS, Linux’ta Python
İndir: Open WebUI
Özet: Birisi sohbet ettiğinde ve “bağlamdan çık” sorunu gerçekten bir “eklentiler ve bellek” sorunuyken bunu seçin.
7. Ollama — Model başına bağlam ayarları ile en iyi çalışma zamanı
Ollama, bu sayfadaki diğer hemen hemen tüm araçların konuştuğu yerel model çalışma zamanıdır. Bağlam yönetimi hikayesi burada bir çerçeve değil iki bayraktır: pencere boyutunu yükseltmek için model dosyasında num_ctx ve çağrılar arasında KV önbelleğini RAM’de tutmak için keep_alive parametresi.
num_ctx‘i varsayılan 4096’dan 13B modelinde 32768’e yükseltmek, hiç kimse LangChain’e dokunmadan önce “aracı unuttu” raporlarının çoğunu sessizce çözer. Uzlaşma bellek ayak izi ve token başına verimdir.
Eksik kaldığı yer: Bellek yok, alma yok, özetleme yok. İstemde gönderdiğiniz şeyi tuttuğu kadarıyla.
Fiyatlandırma:
- Ücretsiz: MIT
- Ücretli: Hiçbiri
Platformlar: Windows, macOS, Linux, ARM64
İndir: Ollama
Özet: Önce num_ctx ayarlayın. Sonra yukarıdaki çerçevelere ulaşın. Bu sırada.
Doğru olanı nasıl seçeceksiz
- 4096 tokenlerde sert bir duvar çarpıyorsanız: Ollama. Uygulamanızı yeniden yazmadan önce
num_ctxdeğiştirin. - Bellek, alma ve araç yönlendirmesini kapsamı bir çerçeve istiyorsanız: LangChain.
- Aracı belgeler üzerinde soruları yanıtlıyorsa: LlamaIndex.
- Aracı geçen haftanın ne olduğunu hatırlaması gerekiyorsa: Mem0.
- Zaten LangChain çalıştırıyorsanız ve sadece gömmeler koymak için bir yer gerekiyorsa: Chroma.
- Aracı VS Code’da yaşıyorsa: Continue.
- Birisi sohbet ediyorsa ve yükleme artı bellek gerekiyorsa: Open WebUI.
SSS
Benim yerel LLM aracı neden bir görev ortasında şeyleri unutuyor?
Her modelin istem penceresi için sert bir token sınırı vardır. Sohbet, araç çıktısı ve talimatlar bu sınırı aştığında, çalışma zamanı sessizce önceki tokenleri kaldırır. Aracı hala üretir, ancak görevin kesik görünümü ile. Modelde num_ctx yükseltin ve eski turları sıkıştırılmış bir geçmişe katlaması bir toplayıcı ekleyin.
Bağlam yönetimi ve bellek arasındaki fark nedir?
Bağlam yönetimi mevcut istem penceresine sığan şeydir (genellikle kısa vadeli). Bellek, istemleri, oturumları ve yeniden başlatmalar arasında devam eden şeydir (uzun vadeli). Mem0 ve Open WebUI kapak belleği; LangChain, LlamaIndex ve Continue bağlamda odaklanır.
Yerel bir LLM ne kadar bağlam işleyebilir?
Model ve RAM bütçenize bağlıdır. Llama 3.1 8B, çalışma zamanı onurlandırırsa 128K tokenleri destekler. Pratikte 32K’dan 64K’ya tüketici donanımında makul gecikmeyi tutar. Çok uzun bağlamlar da kafa karışıklığı arttırır, bu nedenle kırpma genellikle doldurmadan daha iyidir.
Bu araçlar LM Studio ve llama.cpp ile çalışır mı?
LangChain, LlamaIndex, Continue ve Open WebUI tümü, LM Studio ve llama.cpp sunucularının açığa çıkardığı OpenAI-uyumlu API’yi konuşurlar. Mem0 ve Chroma depolama katmanlarıdır ve işaret ettiğiniz herhangi bir sağlayıcı ile çalışırlar.
Mem0 açık kaynak mı?
Evet. Mem0’un ana kütüphanesi Apache 2.0’dır ve kendi kendine barındırılır. Ücretli barındırılan katman bir rahatlık katmanı, OSS için bir kapı katmanı değil.
Bunu Apple Silicon’da kullanabilir miyim?
Tüm yedi seçim Apple Silicon’da yerel olarak çalışır. Ollama, Continue ve Open WebUI birinci sınıf ARM64 yapılarına sahiptir. LangChain, LlamaIndex, Mem0 ve Chroma Python veya Node kütüphaneleridir ve Python veya Node çalıştığı her yerde çalışırlar.