iToverDose/Yazılım· 27 HAZIRAN 2026 · 00:02

Kişisel Yapay Zeka Bilgi Tabanınızı Aurora pgvector ile Nasıl Oluşturursunuz?

Yapay zekaya milyonlarca soru soruyoruz ama en değerli yanıtlar kaybolup gidiyor. İşte Amazon Aurora PostgreSQL ve pgvector ile bu sorunu çözmek için geliştirdiğimiz ChatScroll uygulaması ve teknik detaylar.

DEV Community4 dk okuma0 Yorumlar

Günlük hayatta defalarca karşılaştığımız bir durum: Bir yapay zeka asistana önemli bir soru sorduk ve aldığımız yanıt oldukça faydalıydı. Ancak birkaç hafta sonra aynı soruyu sorduğumuzda, elimizdeki bilgiye yeniden ulaşmanın imkansız olduğunu fark ettik. Çoğu yapay zeka aracı, sohbet geçmişini yalnızca doğrusal ve aranamaz bir biçimde saklıyor. Peki, bu değerli bilgileri kalıcı ve erişilebilir hale nasıl getirebiliriz?

Yanıtı, AWS H0 Hackathon için geliştirdiğim ChatScroll uygulamasında bulduk. Bu proje, Amazon Aurora PostgreSQL veritabanı üzerinde çalışan ve pgvector uzantısını kullanan, Next.js tabanlı bir kişisel yapay zeka bilgi tabanı oluşturma aracı. İşte bu yenilikçi çözümün arkasındaki teknik detaylar ve tasarım kararları.

Yapay Zeka Yanıtlarınızı Neden Kaybediyorsunuz?

Modern yapay zeka asistanları, karmaşık sorulara ayrıntılı yanıtlar üretebiliyor. Ancak bu yanıtların çoğu, geçici sohbet geçmişlerinde kaybolup gidiyor. Örneğin:

  • Bir doktor, hastaya önerilen kan sulandırıcı ilaçları sorduğunda, sistemden aldığı yanıtı kaydedemiyor.
  • Bir geliştirici, Docker konteynerlarıyla ilgili bir soruya aldığı yanıtı ileride kullanmak üzere saklayamıyor.
  • Bir öğrenci, matematik problemine ait çözüm adımlarını gelecekteki incelemeler için kaydedemiyor.

ChatScroll, bu sorunu çözmek için yanıtları "Scroll" adı verilen aranabilir ve organize edilmiş birimlere dönüştürüyor. Kullanıcılar, yapay zeka yanıtlarını tıpkı kitap sayfaları gibi kaydedip daha sonra semantik arama yoluyla kolayca bulabiliyor.

Semantik Aramanın Önemi: Anlamı Kaybetmeden Bulun

Geleneksel arama motorları, yalnızca anahtar kelimelere dayalı çalışır. Örneğin "kan sulandırıcı ilaç" araması yaptığınızda, sistem sadece bu kelimeleri içeren sonuçları getirir. Oysa siz, "warfarin" adlı bir ilaç hakkında bilgi arıyor olabilirsiniz — kullanıcı bu terimi bilmese bile.

İşte tam da burada semantik arama devreye giriyor. Amazon Aurora PostgreSQL ile entegre edilen pgvector uzantısı, metinleri 3072 boyutlu vektörlere dönüştürerek anlam temelli arama gerçekleştiriyor. Bu sayede:

  • Arama sorgunuzdaki kelimelerle birebir eşleşmeyen sonuçları da bulabilirsiniz.
  • "Konteyner teknolojisi" araması, Docker hakkındaki Scroll'ları doğru şekilde getirir.
  • "Veri tabanı indeksleme" sorgusu, PostgreSQL optimizasyonu hakkında detaylı bilgiler içeren bir Scroll'u ortaya çıkarabilir.

Tek Veritabanıyla mı Yoksa Çift Veritabanıyla mı Çalışmalısınız?

Proje geliştirme sürecinde aldığımız en önemli karar, veritabanı mimarisiyle ilgiliydi. Hangi veriyi nerede saklamalıyız?

Aurora PostgreSQL: Yapısal Veriler ve Anlamsal Arama İçin

Amazon Aurora PostgreSQL, aşağıdaki verilerin saklanması için optimize edildi:

  • Scroll'lar ve vektör gömüleri: Her bir Scroll'un içerik vektörü, yapay zeka modeli tarafından üretilen 3072 boyutlu bir dizi olarak depolanır.
  • Klasör hiyerarşisi: programming.containers.docker gibi hiyerarşik yollar, ltree uzantısıyla etkin bir şekilde yönetilir.
  • Kullanıcı hesapları ve kimlik doğrulama: AWS Cognito entegrasyonu sayesinde kullanıcı verileri güvenle saklanır.

DynamoDB: Yüksek Hacimli Sohbet Verileri İçin

Ancak sohbet geçmişi, farklı bir yaklaşıma ihtiyaç duyuyor:

  • Sohbet mesajları: Her bir mesaj, conversationId ve timestamp#messageId kombinasyonuyla saklanır.
  • Zaman aşımı mekanizması: 90 günlük otomatik temizlik sayesinde veritabanı büyümesi kontrol altında tutulur.
  • Ölçeklenebilir fiyatlandırma: PAY_PER_REQUEST modeliyle maliyet verimliliği sağlanır.

Bu ikili mimari sayesinde, Aurora PostgreSQL karmaşık sorgular için optimize edilmişken, DynamoDB yüksek hacimli sohbet trafiğini rahatlıkla karşılar.

Üç PostgreSQL Uzantısının Gücü

Aurora PostgreSQL'in sunduğu üç uzantı, projenin başarısında kritik rol oynadı:

  • pgvector: 3072 boyutlu vektörlerin depolanmasını ve kosinüs benzerliğiyle arama yapılmasını sağlar. Örneğin:
  SELECT * FROM scrolls 
  WHERE 1 - (embedding <=> query_vector) > 0.5 
  ORDER BY embedding <=> query_vector
  LIMIT 5;
  • ltree: Klasör yapılarını etkin bir şekilde yönetir. Örneğin, programming.web.frontend.react gibi hiyerarşik yollar, tek bir sorguda alt klasörlerle birlikte getirilebilir.
  • tsvector: Geleneksel tam metin aramaları için kullanılır. Bu sayede, hem anahtar kelime hem de anlam temelli arama kombinasyonları mümkün hale gelir.

Uygulama Mimarisi: Nasıl Çalışıyor?

ChatScroll'un çalışma prensibi oldukça basit ve kullanıcı dostu:

  1. Yapay zeka yanıtını kaydetme: Kullanıcı, aldığı yanıtı "Kaydet" düğmesine tıklayarak bir Scroll olarak saklayabilir.
  2. Otomatik klasörleme: Sistem, yanıtın içeriğine göre ilgili klasörü otomatik olarak önerir.
  3. Semantik arama: Kullanıcı, arama çubuğuna bir soru yazdığında, sistem yanıtı en anlamlı şekilde getirir.

Bu süreç, Google'ın gemini-embedding-001 modeli tarafından destekleniyor. Her bir Scroll kaydedilirken, model metni 3072 boyutlu bir vektöre dönüştürüyor ve Aurora'daki ilgili tabloya ekleniyor. Arama yapıldığında ise kullanıcının sorgusu aynı şekilde vektörize edilerek en benzer Scroll'lar bulunuyor.

Gerçek Dünya Örnekleriyle Test Edildi

Projenin başarısını ölçmek için çeşitli senaryolar test edildi:

  • Tıbbi bilgi arama: "Kan sulandırıcı ilaç" sorgusu, warfarin adlı ilaç hakkında bilgi içeren Scroll'ları doğru şekilde getirdi.
  • Geliştirici araçları: "Konteyner teknolojisi" araması, yalnızca Docker hakkında bilgiler içeren Scroll'ları döndürdü.
  • Çoklu alan aramaları: "Makine öğrenmesi regresyon analizi" sorgusu, ilgili tüm Scroll'ları anlamlı bir şekilde sıraladı.

Bu sonuçlar, semantik aramanın geleneksel anahtar kelime aramalarına kıyasla ne kadar üstün olduğunu gösteriyor.

Gelecekteki Gelişmeler Nelerdir?

ChatScroll, yalnızca bir başlangıç. Gelecekteki planlar arasında yer alan özellikler şunlar:

  • Çevrimdışı erişim: Kullanıcıların Scroll'larına internet bağlantısı olmadan erişebilmesi.
  • Paylaşım ve iş birliği: Kullanıcıların Scroll'larını ekip arkadaşlarıyla paylaşabilmesi ve birlikte düzenleyebilmesi.
  • Yapay zeka destekli özetleme: Uzun Scroll'ların otomatik olarak özetlenmesi.

Bu proje, kişisel bilgi yönetiminde devrim yaratma potansiyeline sahip. Siz de kendi yapay zeka bilgi tabanınızı oluşturmak için Aurora PostgreSQL ve pgvector'ı deneyebilirsiniz. Unutmayın, en değerli bilgileriniz kaybolmadan önce onları dijital bir kütüphaneye dönüştürmek sizin elinizde.

Yapay zeka özeti

Yapay zeka yanıtlarınızı kalıcı hale getirmenin yolu: Amazon Aurora PostgreSQL ve pgvector ile kişisel bilgi tabanı oluşturma. Teknik detaylar ve uygulamalı rehber burada.

Yorumlar

00
YORUM BIRAK
ID #QN9PLG

0 / 1200 KARAKTER

İnsan doğrulaması

3 + 8 = ?

Editör onayı sonrası yayına girer

Moderasyon · Spam koruması aktif

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