Geliştiriciler olarak, aynı zamanda veri gizliliğini, kontrolü ve yapay zeka araçları arasında sorunsuz birlikte çalışabilirliği garanti eden güçlü bellek çözümleri arıyorsunuz. Trend, açıkça yerel öncelikli, geliştirici odaklı bellek sistemlerini destekliyor. OpenMemory MCP Sunucusu konsepti, açık kaynaklı Mem0 çerçevesi gibi teknolojiler tarafından hayata geçirildi ve bu değişime öncülük ediyor. Yapay zeka aracılarının uygulamalar arasında bağlamı hatırlamasını sağlayan özel, yerel bir bellek katmanı sunarken, verileriniz makinenizde güvende kalır. Bu kılavuz, sizin gibi geliştiriciler içindir. Mem0 kullanarak temel bileşenlerin kurulumu, kendi yerel OpenMemory MCP Sunucunuzu çalıştırma ve daha akıllı, bağlam farkındalığına sahip yapay zeka uygulamaları oluşturmak için REST API'sini ustaca kullanma konusunda tam bir kılavuzdur.
Kalıcı, yerel yapay zeka belleğinin kilidini açmaya başlayalım.
Geliştirici Ekibinizin maksimum verimlilikle birlikte çalışması için entegre, Hepsi Bir Arada bir platform mu istiyorsunuz?
Apidog tüm taleplerinizi karşılıyor ve Postman'in yerini çok daha uygun bir fiyata alıyor!
Adım 1: Geliştirme Ortamınızı Hazırlama
Kuruluma dalmadan önce, temel geliştirme araçlarınızın hazır olması ve birlikte çalışacağımız temel bileşenleri anlamanız önemlidir. Öncelikle, yerel OpenMemory MCP Sunucumuzla bağlantı kurmak ve ardından etkileşim kurmak için çok yönlü Mem0 açık kaynaklı çerçevesini kullanacağız. Bu etkileşim büyük ölçüde REST API'si aracılığıyla gerçekleşecek ve yapay zekanızın belleğini yönetmek için standart bir yol sağlayacaktır.

Mem0 ve bağımlılıklarıyla tam uyumluluğu sağlamak için tercihen 3.8 veya daha yeni bir sürüm olan güncel bir Python ortamına ihtiyacınız olacak. En son Python sürümünü python.org adresinden indirebilirsiniz. Python ile birlikte, Mem0'ı kurmak için çok önemli olan ve genellikle Python kurulumlarıyla birlikte gelen Python paket yükleyicisi pip
'e ihtiyacınız olacak. mem0ai
Python kitaplığı bizim motorumuz olacak; açık kaynaklı yapısı, OpenMemory MCP Sunucunuz haline gelen yerel bir sunucu çalıştırmanıza olanak tanır. Bu kurulumun tamamı, verileriniz ve işlemleriniz üzerinde tam kontrol sağlayarak, bellek sunucusunu yerel makinenizde çalıştırmaya öncelik verir; bu, OpenMemory felsefesinin temel bir ilkesidir. Sunucu daha sonra, yapay zekanızın belleğini yönetmek için standart bir yol sağlayan REST API'si aracılığıyla işlevselliğini sunar. Sunucu daha sonra, Model Context Protocol (MCP) tarafından tanımlanan standart işlemlere uygun olarak bellek ekleme, arama ve yönetme için uç noktalarla REST API'si aracılığıyla işlevselliğini sunar.
Profesyonel İpucu: Sanal ortamları (venv
veya conda
gibi) kullanmak akıllıca bir harekettir. Proje bağımlılıklarını yönetmeye yardımcı olur ve diğer Python projeleriyle çakışmaları önler.
Adım 2: Mem0 Çerçevesi Nasıl Kurulur
mem0ai
paketini kurmak, yerel bir yapay zeka bellek sunucusuna sahip olmaya yönelik ilk pratik adımıdır. Bu, sisteminizi temel Mem0 kitaplığı ve gerekli tüm bileşenlerle donatan basit bir komutla yapılır.
Terminalinizi açın (ve bir tane kullanıyorsanız sanal ortamınızı etkinleştirin). Ardından, kurulum komutunu çalıştırın:
pip install mem0ai
Bu komut, Python'da doğrudan bellek yönetimi için temel Memory
sınıfını içeren mem0ai
kitaplığını kurar. Ayrıca, çeşitli Büyük Dil Modelleri (LLM'ler) ve vektör veritabanları için destek ve Mem0 REST API sunucusunu çalıştırmak için gereken FastAPI ve Uvicorn bileşenlerini de elde edersiniz. Kurulum tamamlandıktan sonra, pip show mem0ai
ile yüklü paket sürümünü kontrol ederek veya bir Python oturumunda hızlı bir içe aktarma deneyerek doğrulayabilirsiniz:
import mem0
print(mem0.__version__)
pip
ayrıca, API oluşturmak için FastAPI, ASGI sunucusu olarak Uvicorn ve çeşitli veri işleme kitaplıkları gibi gerekli bağımlılıkların yüklenmesini otomatik olarak yönetir. mem0ai
yüklü olduğunda, temel yazılıma sahip olursunuz. Bellek işlemleri için kitaplığı doğrudan Python betiklerinde kullanabilirsiniz, ancak MCP istemcilerinin etkileşim kurabileceği "sunucu" yönü için, yerleşik sunucu işlevselliğini kullanacağız.
Adım 3: Yerel Bellek Sunucunuzu Nasıl Yapılandırabilirsiniz
Sunucuyu başlatmadan önce, temel Mem0 örneğini yapılandırma seçeneğiniz vardır. Bu yapılandırma önemlidir çünkü sunucunuzun bellek işleme ve alma yeteneklerini hangi Büyük Dil Modelinin (LLM), vektör veritabanının ve gömme modelinin güçlendireceğini belirler; esasen, "beynini" özelleştiriyorsunuz.
Mem0 sunucusu (ve üzerine inşa edildiği Memory
sınıfı) öncelikle ortam değişkenleri kullanılarak yapılandırılır. Bu, herhangi bir kodu değiştirmeden arkanızı kurmanıza olanak tanıyan esnek bir yaklaşımdır. Örneğin, LLM'yi yapılandırmak için, OpenAI için OPENAI_API_KEY
, Anthropic için ANTHROPIC_API_KEY
veya Ollama aracılığıyla yerel modeller için MEM0_LLM_PROVIDER="ollama"
gibi değişkenler ayarlayabilirsiniz. Benzer şekilde, vektör veritabanı için, Mem0 varsayılan olarak LanceDB'ye (yereldir ve ek kurulum gerektirmez) dönerken, MEM0_VECTOR_STORE_PROVIDER="qdrant"
gibi değişkenleri kullanarak Qdrant gibi alternatifleri belirtebilirsiniz. Gömme modeli yapılandırmaları genellikle LLM sağlayıcınıza bağlıdır, ancak ayrıca bağımsız olarak da belirtilebilir.
Herhangi bir özel ortam değişkeni ayarlamazsanız, Mem0 mantıklı varsayılanları kullanmaya çalışır. Ancak, aksi belirtilmedikçe varsayılan LLM'si için bir OpenAI anahtarı gerektirebilir. Bu seçimler sunucunuzu önemli ölçüde etkiler: LLM, belleklerin nasıl anlaşıldığını etkilerken, vektör veritabanı depolama verimliliğini ve arama hızını etkiler. Farklı LLM'ler, vektör depoları ve gömücüler için tüm yapılandırılabilir ortam değişkenlerinin ve seçeneklerinin kapsamlı bir listesi için, her zaman resmi Mem0 belgelerine başvurun.
Profesyonel İpucu: Basit bir yerel kurulumla (LLM için Ollama ve varsayılan LanceDB gibi) başlayın. Bu, sisteme alışmanıza yardımcı olur. Ardından, ihtiyaçlarınız geliştikçe daha gelişmiş kurulumları keşfedin.
Adım 4: OpenMemory MCP Sunucunuzu Nasıl Çalıştırabilirsiniz
mem0ai
yüklendikten ve (isteğe bağlı olarak) beğeninize göre yapılandırıldıktan sonra, yerel sunucu işlemini başlatabilirsiniz. Bu sunucu, diğer uygulamaların veya betiklerin bellek işlemleri gerçekleştirmesine izin veren REST API uç noktalarını sunar.
mem0ai
paketi, sunucuyu çalıştırmak için kullanışlı bir komut satırı betiği sunar. Terminalinizde, basitçe şunu yazın:
mem0-server
Örneğin, mem0-server --host 127.0.0.1 --port 8000
gibi, gerekirse özel bir ana bilgisayar ve bağlantı noktası da belirtebilirsiniz. Varsayılan olarak genellikle bağlantı noktası 8000
'de 0.0.0.0
(tüm kullanılabilir ağ arabirimleri) olur. Başladıktan sonra, Uvicorn (FastAPI uygulamanızı çalıştıran sunucu), sunucunun çalıştığını ve istekleri dinlediğini belirten günlükleri konsola çıkaracaktır. Şunlar gibi mesajlar göreceksiniz: INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
.
OpenMemory MCP Sunucunuz artık yerel olarak çalışıyor! http://localhost:8000
'e (veya özel adresinize) işaret edecek şekilde yapılandırılmışsa, MCP uyumlu istemciler onunla etkileşim kurabilir. Ayrıca, bir sonraki bölümde inceleyeceğimiz REST API'sini doğrudan kullanabilirsiniz. Sunucuyu durdurmak için, çalıştığı terminalde CTRL+C
tuşlarına basmanız yeterlidir. mem0-server
komutu esasen, Mem0 içinde tanımlanan FastAPI uygulamasını çalıştıran bir Uvicorn ASGI sunucusunu başlatır. Bu uygulama, REST API uç noktalarını barındırır ve bu çalışan örnek, yerel OpenMemory MCP Sunucunuzdur.
Adım 5: Sunucunun API Yeteneklerini Anlama
Mem0 sunucusu, yapay zeka belleklerini programlı olarak yönetmenize olanak tanıyan kapsamlı bir REST API'si sağlar. Bu API, bilgi eklemek, aramak, listelemek ve silmek için standartlaştırılmış yollar sunarak Model Context Protocol'ün temel ilkelerine uyar.
API, standart HTTP/HTTPS protokollerini kullanır ve hem istek hem de yanıt gövdeleri için veri formatı JSON'dur. Sunucuyu varsayılan ayarlarla yerel olarak çalıştırıyorsanız, temel URL'niz http://localhost:8000
olacaktır. API aracılığıyla kullanılabilen temel işlemler (tipik Mem0 REST API uygulamalarına göre) şunları içerir: yeni bilgiler depolamak için POST /add
, ilgili anıları almak için POST /search
, birden fazla anıyı listelemek için GET /get_all
(filtre seçenekleriyle), kimliğiyle tek bir anıyı almak için GET /get
, mevcut bir anıyı değiştirmek için PUT /update
, belirli bir anıyı kaldırmak için DELETE /delete
ve kullanıcıya göre potansiyel olarak filtrelenmiş anıları temizlemek için DELETE /delete_all
.
Varsayılan olarak, yerel olarak çalışan mem0-server
, öncelikle yerel geliştirme ve kullanım için tasarlandığından, kimlik doğrulama uygulamaz. Üretim veya kullanıma sunulan dağıtımları (önemli ek güvenlik katmanları olmadan önerilmez) düşünürseniz, kimlik doğrulama uygulanması gereken kritik bir husus olacaktır.
Profesyonel İpucu: API'yi genellikle etkileşimli olarak keşfedebilirsiniz. Sunucu çalıştıktan sonra tarayıcınızda http://localhost:8000/docs
adresini ziyaret etmeyi deneyin. Mem0'ın FastAPI sunucusu genellikle Swagger UI aracılığıyla bu faydalı dokümantasyon sayfasını sunar.
Adım 6: API'yi Kullanarak Anılar Nasıl Eklenir
/add
uç noktası, verileri bellek sunucusuna almak için birincil aracınızdır. Metin bilgilerini depolamanıza, belirli bir kullanıcıyla ilişkilendirmenize ve daha iyi organizasyon ve alma için isteğe bağlı meta veriler eklemenize olanak tanır.
Kullanmak için, /add
uç noktasına bir POST
isteği gönderirsiniz. İstek gövdesi JSON olmalı ve data
(belleğin dize içeriği), user_id
(bu bellekle ilişkili kullanıcı için bir tanımlayıcı - kullanıcıya özel anıları düzenlemek ve almak için çok önemli) ve isteğe bağlı olarak metadata
({"source": "chat_log"}
gibi depolamak istediğiniz ek anahtar-değer çiftlerini içeren bir JSON nesnesi) içermelidir.
İşte curl
kullanarak bir örnek:
curl -X POST http://localhost:8000/add \
-H "Content-Type: application/json" \
-d '{
"data": "Alice web geliştirme için Python'u tercih ediyor.",
"user_id": "user_alice",
"metadata": {"topic": "preferences", "language": "Python"}
}'
Ve işte Python requests
kitaplığıyla nasıl yapabileceğiniz:
import requests
import json
url = "http://localhost:8000/add"
payload = {
"data": "Alice web geliştirme için Python'u tercih ediyor.",
"user_id": "user_alice",
"metadata": {"topic": "preferences", "language": "Python"}
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, data=json.dumps(payload), headers=headers)
print(response.json())
Sunucu, eklemeyi onaylayan JSON ile yanıt verecek ve genellikle yeni oluşturulan belleğin benzersiz kimliğini içerecektir, örneğin: {"message": "Memory added successfully", "memory_id": "some-unique-id"}
. /add
'e yapılan her çağrı, yeni bir bellek kaydı oluşturur. user_id
, çok kullanıcılı uygulamalar veya bağlamı ayırmak için hayati öneme sahiptir ve meta veriler aranabilirliği ve organizasyonu önemli ölçüde artırır.
Adım 7: API Aracılığıyla Depolanan Anılar Nasıl Aranır
Anılar depolandıktan sonra, /search
uç noktası semantik aramalar yapmanızı sağlar. Bu, arama terimleriniz depolanan metinle tam olarak eşleşmese bile, belirli bir sorgu ve kullanıcı bağlamıyla ilgili bilgileri alabileceğiniz anlamına gelir.
/search
'e, query
dizesini, aranmasını istediğiniz anıların user_id
'sini ve filters
(meta veri alanlarına dayalı daha özel ölçütler için - tam yapı Mem0'ın uygulamasına bağlıdır) ve limit
(arama sonuçlarının sayısını sınırlamak için) gibi isteğe bağlı parametreleri içeren bir JSON gövdesiyle bir POST
isteği gönderirsiniz.
Bir curl
örneği şöyle görünür:
curl -X POST http://localhost:8000/search \
-H "Content-Type: application/json" \
-d '{
"query": "Alice'in dil tercihleri nelerdir?",
"user_id": "user_alice",
"limit": 3
}'
Python requests
kullanma:
import requests
import json
url = "http://localhost:8000/search"
payload = {
"query": "Alice'in dil tercihleri nelerdir?",
"user_id": "user_alice",
"limit": 3
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, data=json.dumps(payload), headers=headers)
print(response.json())
Beklenen yanıt, arama sorgusuyla eşleşen bellek nesnelerinin bir JSON dizisidir. Bu nesneler tipik olarak bellek içeriğini, meta verilerini ve sorguyla ne kadar yakından eşleştiğini gösteren bir alaka puanını içerir, örneğin:[{"id": "some-unique-id", "data": "Alice web geliştirme için Python'u tercih ediyor.", ..., "score": 0.85}]
.
Profesyonel İpucu: Aramalarda user_id
'yi doğru kullanmak çok önemlidir. Kullanıcıların yalnızca kendi ilgili anılarını almasını sağlar, bu da gizliliği korumak ve kişiselleştirilmiş deneyimler sunmak için hayati öneme sahiptir.
Adım 8: API ile Belirli Anılar Nasıl Alınır
Aramanın ötesinde, API, birden fazla anıyı listelemek veya benzersiz tanımlayıcısıyla tek, belirli bir anıyı getirmek için uç noktalar sağlar. Bunlar, bellek bankasına göz atmak veya bilinen bilgi parçalarına doğrudan erişmek için kullanışlıdır.
Birden fazla anıyı listelemek için, GET /get_all
uç noktasını kullanırsınız. Anıları kullanıcıya göre filtrelemek için user_id
gibi sorgu parametreleri, döndürülecek anı sayısını belirtmek için limit
ve çok sayıda anı varsa sayfalama için page
geçirebilirsiniz. Örneğin, curl -X GET "http://localhost:8000/get_all?user_id=user_alice&limit=5"
, "user_alice" için ilk 5 anıyı alacaktır. Yanıt, bellek nesnelerinin bir JSON dizisi olacaktır.
Belirli bir anıyı almak için, memory_id
sorgu parametresiyle GET /get
'i kullanın: curl -X GET "http://localhost:8000/get?memory_id=some-unique-id"
. Bu, o tek anıyı temsil eden bir JSON nesnesi veya bulunamazsa bir hata döndürecektir.
İşte Python requests
'i /get_all
için nasıl kullanacağınız:
import requests
url = "http://localhost:8000/get_all"
params = {"user_id": "user_alice", "limit": 5}
response = requests.get(url, params=params)
print(response.json())
/get_all
uç noktası, özellikle yönetimsel görevler için veya bir kullanıcının belleğine göz atmanız gerektiğinde iyidir. /get
, muhtemelen bir /add
yanıtından veya önceki bir arama sonucundan zaten bir belleğin kimliğine sahip olduğunuzda başvuracağınız yerdir.
Adım 9: API'yi Kullanarak Anılar Nasıl Güncellenir ve Silinir
Yapay zekanızın bilgi tabanının doğru ve ilgili kalmasını sağlamak için, API, mevcut bellek kayıtlarını güncellemek veya tamamen kaldırmak için gerekli kontrolleri sağlar.
Bir anıyı güncellemek için, memory_id
'yi bir sorgu parametresi olarak kullanarak /update
'e bir PUT
isteği gönderin. İstek gövdesi JSON olmalı ve yeni data
(metin içeriği) veya yeni metadata
(o belleğin mevcut meta verilerinin yerini alacak) içerebilir. Örneğin:
curl -X PUT "http://localhost:8000/update?memory_id=some-unique-id" \
-H "Content-Type: application/json" \
-d '{"data": "Alice artık sistem programlama için Go'dan da hoşlanıyor."}'
Belirli bir anıyı silmek için, memory_id
'yi bir sorgu parametresi olarak kullanarak /delete
'e bir DELETE
isteği kullanın: curl -X DELETE "http://localhost:8000/delete?memory_id=some-unique-id"
.
Daha geniş bir temizlik için, DELETE /delete_all
uç noktası kullanılabilir. Bir user_id
sorgu parametresi sağlarsanız (örneğin, curl -X DELETE "http://localhost:8000/delete_all?user_id=user_alice"
), o belirli kullanıcı için tüm anıları silecektir. user_id
atlanırsa, davranış sistemdeki tüm anıları silmek olabilir, bu nedenle bunu son derece dikkatli kullanın ve Mem0 belgelerinde tam davranışını her zaman doğrulayın. Sunucu tipik olarak, bu işlemlerin başarısını veya başarısızlığını onaylayan JSON mesajlarıyla yanıt verecektir.
Profesyonel İpucu: Özellikle delete_all
olmak üzere, kazara veri kaybını önlemek için silme uç noktalarını çağırmadan önce, uygulamanızın mantığında her zaman dikkatli kontroller ve kullanıcı onayları uygulayın.
Sonuç
Artık, Mem0 açık kaynaklı çerçevesiyle yerel bir OpenMemory MCP Sunucusu kurmanın ve REST API'sini kullanmanın temel adımlarını tamamladınız. Mem0'ı kurmak, sunucuyu çalıştırmak ve API'siyle etkileşim kurmak için bu talimatları izleyerek, yapay zeka uygulamalarınızın belleği üzerinde doğrudan kontrol elde edersiniz. Bu, yeni kalıcılık, kişiselleştirme ve gizlilik düzeylerini teşvik eder. Anıları yerel olarak programlı bir şekilde yönetme gücü, kullanıcı tercihlerini hatırlayan sohbet robotlarından, proje ayrıntılarını hatırlayan geliştirici yardımcılarına kadar, daha akıllı, bağlam farkındalığına sahip sistemler için geniş olanaklar açar. Yerel, API odaklı yapay zeka belleği oluşturma yeteneği artık sizin. Bu API ile deneyler yapın ve gerçekten öğrenen ve gelişen yapay zeka uygulamaları oluşturmaya başlayın.