iToverDose/Yazılım· 28 MAYIS 2026 · 04:06

Yerel AI'nızın SQL Veritabanınızın Sürekli Hafızasına Sahip Olmasını Sağlayın

AI yardımcılarına aynı veritabanı sorgularını sürekli yeniden açıklamak zorunda kalmaktan bıktınız mı? Amnesic adlı açık kaynaklı bir araç, veritabanı şemasını kalıcı olarak belleğe alarak her seferinde yeniden öğrenme derdini ortadan kaldırıyor. Nasıl çalıştığını keşfedin.

DEV Community3 dk okuma0 Yorumlar

Yerel bir kodlama asistanı kurmayı deneyimledikten sonra anladım ki: yerel modeller, bulut tabanlı rakipleri kadar akıllı olmasa da, onlara verilen girdileri daha akıllı hale getirmek mümkün.

Deneyimimde, tokena dayalı maliyetlerin çoğunun aslında düşünme sürecinden değil, yeniden öğrenme sürecinden kaynaklandığını fark ettim. Her yeni oturumda, veritabanındaki basit ilişkileri, tanımları ve enum değerlerini yeniden açıklamak zorunda kalıyordum. Bu durum, hem token hem de süre açısından ciddi bir israf anlamına geliyordu.

AI İçin Gerçek Bellek Sorunu: Girdi Tokens’ı Verimli Kullanmak

AI yardımcılarıyla (Claude, Cursor, Copilot gibi) çalışırken en büyük engellerden biri, sürekli aynı veritabanı şemasını yeniden açıklamak zorunda kalmaktı. Örneğin:

  • status = 3 ne anlama geliyor? (iptal edilmiş)
  • orders tablosu users ile nasıl ilişkilendiriliyor? (orders.user_id → users.id)
  • JobStatus enum’u nedir? (hatırlanması zor bir dizi tam sayı kodu)

Her oturumda AI bu bilgileri yeniden keşfediyor, tokenlar harcanıyor ve yanıt süreleri uzuyordu. Oysa ki bu bilgiler sabitti ve asla değişmiyordu.

Bu sorunu çözmek için veritabanı şemasını kalıcı olarak belleğe alan ve her AI aracıyla paylaşabilen bir sistem kurmaya karar verdim.

Amnesic: Veritabanı Hafızası için Açık Kaynaklı MCP Sunucusu

Amnesic, herhangi bir AI istemcisinin kullanabileceği, kalıcı ve paylaşılabilir bir veritabanı hafızası sunan açık kaynaklı bir MCP (Model Context Protocol) sunucusudur. Adı ironik olsa da ("amnezi" yani hafıza kaybı anlamına gelir), aslında hiçbir şeyi unutmayan bir sistemdir.

Kurulumu oldukça basittir:

pip install amnesic
amnesic init  # Etkileşimli kurulum sihirbazı

Ardından, AI istemcinizin mcp.json dosyasına eklenerek çalıştırılabilir. Desteklediği veritabanı sistemleri arasında PostgreSQL, MySQL, MSSQL ve SQLite bulunur.

Nasıl Çalışır?

Veritabanı şemasını kalıcı olarak belleğe almak için tek bir kez anotasyon yapmak yeterlidir. Örneğin:

db_annotate(
    table="orders",
    column="status",
    column_description="Sipariş yaşam döngüsü durumu",
    enum_values={
        "1": "beklemede",
        "2": "gönderildi",
        "3": "iptal edildi",
        "4": "teslim edildi"
    }
)

Bu anotasyon, yerel bir SQLite dosyasına kaydedilir. Her yeni sorguda, AI istemcisi bu anotasyonları kullanarak doğru SQL sorgusunu oluşturabilir:

SELECT COUNT(*) FROM orders WHERE status = 3 AND created_at >= '2024-01-01';

Artık her oturumda aynı bilgileri yeniden açıklamak zorunda kalmıyorsunuz. AI, sürekli aynı veriyi yeniden öğrenmek yerine, yerleşik bilgiyi kullanır.

Teknik Kararların Arkasındaki Düşünceler

Amnesic’i geliştirirken alınan bazı teknik kararlar, benzer projelerde yol gösterici olabilir:

Vektör Veritabanları Yerine SQLite FTS5

Başlangıçta, tablo ve kolonları aramak için ChromaDB gibi bir vektör veritabanı kullanmayı düşündüm. Ancak bu, projenin "hafif yerel bir araç" olma hedefiyle çelişiyordu. SQLite’nin yerleşik FTS5 (Full-Text Search) motoru, arama işlevini hiçbir ek bağımlılık olmadan yerine getirdi:

db_search("ödeme")
# Sonuçlar: orders.payment_method, tüketici_ödeme_tablosu, ...

Salt Okunur Güvenlik Katmanları

Amnesic’in veritabanlarına bağlanabilmesi nedeniyle, AI’nın veri değiştirmesini engellemek kritiktir. Bunun için iki katmanlı bir koruma sistemi uygulandı:

  1. Statik SQL Analizi: AI’nin gönderdiği sorguların sadece SELECT ve WITH komutlarını içerdiğinden emin olunur. INSERT, UPDATE, DELETE gibi yazma komutları reddedilir.
  2. İşlem Geri Sarma: Her sorgu, otomatik olarak geri sarılan bir işlem içinde çalıştırılır. Böylece, SQL enjeksiyonu gibi senaryolarda bile veri kaybı yaşanmaz.

Tek SQLite Dosyasıyla Taşınabilirlik

Tüm veritabanı şeması, anotasyonlar, ilişki grafiği ve FTS5 endeksi, tek bir SQLite dosyasında saklanır. Bu dosya:

  • Taşınabilir: Bir ekip arkadaşına kolayca gönderilebilir.
  • İncelenebilir: Dosyayı inceleyerek hangi anotasyonların yapıldığını görebilirsiniz.
  • Güvenli: chmod 600 ile koruma altına alınabilir.

Veri Minimizasyonu Avantajı

Amnesic’in bir diğer faydası da, çoğu sorunun doğrudan yerel anotasyon dosyasından yanıtlanabilmesidir. Örneğin:

  • status = 3 ne anlama gelir? → Doğrudan anotasyon dosyasından yanıtlanır.
  • orders ve users nasıl ilişkilendirilir? → Yabancı anahtar grafiğinden yanıtlanır.

Bu da, veritabanından çekilen veri miktarını önemli ölçüde azaltır.

Sınırlamalar ve Gelecek Planları

Amnesic’in bazı sınırlamaları vardır:

  • AI’nın zekasını artırmaz.
  • Doğal dilden SQL’e dönüştürme işlevi yoktur.
  • Sadece veritabanı şemasını belleğe alır; sorguları çalıştırmaz. Bu görev, diğer MCP sunucularına bırakılmıştır.

Güvenlik konusunda iyileştirmeler devam etmektedir. Özellikle salt okunur modun sağlamlığı, AI’nın veritabanında yanlışlıkla değişiklik yapmasını engellemek açısından kritik öneme sahiptir.

Sonuç: AI’nın Yeniden Öğrenme Derdini Sonlandırın

Yerel AI yardımcılarıyla çalışırken karşılaşılan en büyük sorunlardan biri, sürekli aynı verileri yeniden açıklamak zorunda kalmaktır. Amnesic gibi araçlar, veritabanı şemasını kalıcı olarak belleğe alarak bu sorunu çözüyor.

Eğer AI’nızın veritabanınızın içeriğini daha verimli kullanmasını istiyorsanız, Amnesic’i deneyin ve geri bildirimlerinizi paylaşın. Proje, MIT lisansıyla açık kaynak olarak geliştirilmekte olup, Linux Vakfı MCP Kayıtlığı’nda yer almaktadır.

Daha akıllı bir AI için daha akıllı girdilerle başlayın.

Yapay zeka özeti

AI yardımcılarına sürekli aynı veritabanı sorgularını açıklamaktan bıktınız mı? Amnesic adlı açık kaynaklı MCP sunucusu, veritabanı şemasını kalıcı belleğe alarak AI’nın yeniden öğrenmesini engelliyor. Kurulumu kolay ve güvenli.

Yorumlar

00
YORUM BIRAK
ID #S4VOEN

0 / 1200 KARAKTER

İnsan doğrulaması

9 + 6 = ?

Editör onayı sonrası yayına girer

Moderasyon · Spam koruması aktif

Henüz onaylı yorum yok. İlk yorumu sen bırak.