Local LLM context management apps

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

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:

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:

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:

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:

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:

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:

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:

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

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.