6 puan yazan sungmin330 2025-05-08 | 4 yorum | WhatsApp'ta paylaş

TL;DR

Kişiselleştirilmiş bir LLM Chat Agent. Kullanıcı bilgilerini dinamik olarak toplayıp daha sonra kişiselleştirilmiş yanıtlar sunar.

S) Ben patatesi seviyorum

C) Anladım

S) Benim neyden hoşlandığımı biliyor musun?

C) Sen patatesi seviyorsun~

Demo bağlantısı: https://delosplatform.com
GitHub: https://github.com/sungminna/mcp_poc

ps) delos-lucia, velt servisinin işlevlerini paketleyip iyileştiren bir sürümdür. delos-lucia; kısa response time, LLM streaming ve iyileştirilmiş asenkron mantığı destekler.

Kayıt olduktan (giriş yaptıktan) sonra hemen kullanılabilir. İlginizi ve geri bildiriminizi bekliyorum...

Lucia & Velt: Kişiselleştirilmiş LLM sohbet agent'ı

Son dönemde LLM kullanarak kullanıcıyla etkileşimden elde edilen bilgileri yapılandırmak ve bunları tekrar LLM yanıtlarında kullanarak kişiselleştirilmiş bir deneyim sunmak yönündeki girişimler artıyor. Lucia ve Velt, bu hedefe ulaşmak için geliştirilen açık kaynak projelerdir. Lucia, kişiselleştirilmiş LLM uygulaması için temel AI işlevlerini modüler hale getiren bir Python kütüphanesidir; Velt ise Lucia'nın kavramlarını kullanarak inşa edilmiş kişiselleştirilmiş bir RAG sohbet sistemidir.

Lucia: Kişiselleştirilmiş LLM modülü

delos-lucia, başlangıçta Velt servisi için geliştirilmiş temel AI işlevlerinin yeniden düzenlenip paketlenmesiyle oluşturulmuş bir Python kütüphanesidir. Modüler bir yapıya sahip olduğu için gerekli işlevler seçerek kullanılabilir veya kolayca özelleştirilebilir.

Başlıca özellikler:

  • Kişisel bilgi ve anahtar kelime çıkarımı: LLM (OpenAI modelleri vb.) kullanarak metinden kullanıcının tercihleri, durumu gibi kişisel bilgileri ve temel anahtar kelimeleri tanımlar ve çıkarır.
  • Embedding üretimi: OpenAI'nin embedding modelleri kullanılarak metnin vektör temsilleri (embedding) oluşturulur. Oluşturulan embedding'ler Redis üzerinden cache'lenerek tekrarlayan API çağrılarının maliyeti azaltılabilir.
  • Veri depolama: Çıkarılan yapılandırılmış bilgiler (kişisel bilgiler, ilişkiler vb.) graph veritabanında (Neo4j veya Clickhouse) saklanır; oluşturulan vektör embedding'ler ise verimli arama için vector store'da (Milvus) tutulur.
  • Pipeline sağlama: KnowledgePipeline (bilgi çıkarımı, embedding üretimi ve depolamaya kadar olan iş akışı) ve SearchPipeline (anahtar kelime tabanlı bilgi arama ve context artırma iş akışı) gibi yaygın işler için önceden hazırlanmış pipeline'lar sunarak geliştirme kolaylığı sağlar.
  • Özelleştirme: Bilgi/anahtar kelime çıkarıcıları (Extractor), embedding client'ı (EmbeddingClient), bilgi deposu (InfoStore), vector store (VectorStore) gibi bileşenlerin kullanıcı tarafından yazılmış bileşenlerle değiştirilebildiği plug-in mimarisi sunar.

Lucia, kişiselleştirilmiş AI uygulamaları oluşturmak için gereken temel backend mantığını (bilgi çıkarımı, vektörleştirme, depolama, arama) soyutlayarak geliştiricilerin uygulama mantığına daha fazla odaklanmasına yardımcı olur. (Lisans: Apache-2.0)

GitHub Repository: https://github.com/sungminna/mcp_poc/tree/main/lucia

Velt: Lucia bileşenleri/kavramlarıyla oluşturulmuş kişiselleştirilmiş RAG chatbot PoC

Velt, Lucia kütüphanesinin sunduğu kavramlar kullanılarak oluşturulmuş FastAPI tabanlı bir backend uygulamasıdır. ReAct agent'ı (LangGraph), Neo4j bilgi grafiği, Milvus vector store, PostgreSQL ve Redis'i bir araya getirerek kullanıcıya kişiselleştirilmiş bir RAG (Retrieval-Augmented Generation) chatbot deneyimi sunmayı hedefler. Kullanıcıyla yapılan konuşmalar üzerinden kişiselleştirilmiş bilgileri dinamik olarak bilgi grafiğine inşa eder ve bunları kullanarak daha alakalı yanıtlar üretir.

Temel çalışma biçimi:

  1. Bilgi grafiği oluşturma:
    • Kullanıcıyla yapılan konuşmadan ("Ben hamburgeri seviyorum") LLM kullanılarak ilişkiler ((kullanıcı) --sever--> (hamburger)) çıkarılır.
    • Çıkarılan bilgiler Neo4j graph DB'ye düğüm ve kenar olarak kaydedilir. Bu sırada (hamburger) --içerir--> (yiyecek) gibi üst kavram ilişkileri de birlikte saklanarak esnek akıl yürütme ve arama mümkün hale gelir. ("Ben hangi yiyecekleri seviyorum?"), (lucia'da biraz daha verimli bir yöntem kullanılır)
  2. RAG tabanlı yanıt üretimi:
    • Kullanıcı sorusundan ("Ben sanatı seviyor muyum?") LLM ile anahtar kelimeler ("sanat", "sevmek") çıkarılır.
    • Çıkarılan anahtar kelimeler kullanılarak Milvus içinde vektör aramasıyla yüksek alakalı bilgiler bulunur.
    • Aynı anda Neo4j içinde ilgili kullanıcı ve anahtar kelimelere bağlı düğümler ve ilişkiler (doğrudan ilişkiler, 1-2 hop ilişkiler, alt kavramlar dahil) taranır.
    • Milvus ve Neo4j'den getirilen bilgiler context olarak birleştirilip LangGraph tabanlı ReAct agent'ının prompt'u Augmented edilir. (+ oturum konuşma geçmişi)
    • Agent, bu artırılmış context'e dayanarak kullanıcının sorusuna kişiselleştirilmiş bir yanıt üretir.

Teknoloji yığını:

  • Backend: FastAPI, Uvicorn, Python 3.13+
  • AI/LLM: LangChain, LangGraph, langchain-openai, OpenAI Embeddings
  • Veritabanı: Neo4j (Graph), Milvus (Vector), PostgreSQL (User/Chat Data), Redis (Cache)
  • Diğer: SQLAlchemy (Async), JWT (Auth), slowapi (Rate Limiting), Poetry, Docker
  • Frontend: SvelteKit (ayrı velt/ dizini)

Başlıca sonuçlar ve değerlendirmeler:

  • Olasılığın doğrulanması: LLM ile graph/vector DB'leri birleştirerek dinamik kişiselleştirilmiş bilgi grafikleri kurmanın ve bunları kullanan hiper-kişiselleştirilmiş LLM servisleri geliştirmenin mümkün olduğu görüldü.
  • Performans: Şu anda DB erişimi (query) tarafında darboğaz gözlemleniyor ve optimizasyon gerekiyor. Büyük ölçekli gerçek zamanlı ortamlarda Neo4j performansının da ayrıca doğrulanması gerekiyor. (lucia'da kısmen çözüldü)
  • Yanıt kalitesi: LLM, bulunan bilgilere (context) dayanarak yanıt veriyor; ancak her zaman en alakalı ve en doğal yanıtı üretip üretmediği konusunda ek doğrulama ve iyileştirme gerekiyor. Özellikle RAG uygulandığında context'e aşırı bağımlılık nedeniyle yapay kalan yanıtlar oluşma eğiliminin giderilmesi lazım.
  • Prompt engineering: LLM bazen instruction'ları takip etmeyebildiği için prompt iyileştirmesi ve model performansı tarafının incelenmesi gerekiyor.
  • Ölçeklenebilirlik: Şu an hardcode edilmiş DB query'leri Text-to-Cypher/SQL vb. ile değiştirilerek esneklik artırılabilir. Kullanıcılar arası ilişki analizi gerekmiyorsa RDB tabanlı kurulum olasılığı da değerlendirilebilir. (lucia'da Clickhouse kullanılabilecek şekilde iyileştirildi)

GitHub Repository: https://github.com/sungminna/mcp_poc
Demo Service: https://delosplatform.com
Directory: https://my.surfit.io/w/528136765


Özet:

Lucia, LLM tabanlı kişisel bilgi/anahtar kelime çıkarımı, embedding, graph/vector DB depolama için modüler bir Python kütüphanesidir. Velt ise Lucia'nın kavramlarını kullanarak kullanıcıyla yapılan konuşmalardan dinamik bir bilgi grafiği (Neo4j) kuran ve vector arama (Milvus) ile RAG'ı (LangGraph ReAct agent'ı) birleştirerek kişiselleştirilmiş chatbot yanıtları sunan FastAPI tabanlı bir PoC'tur. Her iki proje de kişiselleştirilmiş AI geliştirmenin potansiyelini gösterse de performans optimizasyonu ve yanıtların doğallığını iyileştirme gibi çözülmesi gereken konuları da barındırıyor.

4 yorum

 
sungmin330 2025-05-11

LLM olduğu için her zaman düzgün çalışmıyor (T_T)... rahatça bol bol kullanın lütfen.
Merak edenler olabilir diye şimdiye kadar ortaya çıkan performans sorunlarının nedenlerini yazayım.

  • Prompt'u anahtar kelimeleri İngilizce çıkarması için yazdım, ama bazen bunları Korece çıkarıyor ve bu da aramada kısıtlamaya yol açıyor
  • Uygun anahtar kelimeleri çıkaramadığı durumlar oluyor
  • Anahtar kelimeleri embedding ettikten sonra benzerliği ölçerek anlamsal arama yapıyorum ama performans net değil

ps) PoC web'den ziyade delos-lucia'nın performansı daha iyi. delos-lucia'yı shell tabanlı olarak çalıştırırsanız biraz daha iyi sonuçlar görebilirsiniz.

ps) Hizmeti bizzat yapınca QA de zor, eval'i devreye almak da zor. Sadece LLM performansı iyi olursa bir şekilde çözülecek gibi görünse de, model dışındaki kısımlarda da düşünüldüğünden çok daha fazla emek gerektiğini hissettim.

 
1206good 2025-05-08

Yakın zamanda benzer bir proje görmüştüm, ilginç görünüyor.
Bir deneyeceğim.

website : https://www.secondme.io/
Github repo : https://github.com/mindverse/Second-Me

 
sungmin330 2025-05-11

Ah, ne kadar ilginç bir proje!! Teşekkürler

 
rlaehdus2003 2025-05-08

Beni benden daha iyi tanıyan bir yapay zeka bile olabilir..?