LLM’in Tüm Kod Tabanını Anlamasını Sağlayamaz mıyız?: Bundling ile RAG Denemesi
(gist.github.com/atjsh)> "Bu yazıda, çok sayıda dosya içeren bir TypeScript kod tabanını bundling ile tek bir JavaScript dosyasına sıkıştırdıktan sonra LLM’e verdiğimizde, LLM’in kod tabanıyla ilgili sorulara ne kadar doğru yanıt verebildiğini inceleyeceğiz."
- NestJS tabanlı 1 web sunucusu kod tabanı hazırlandı
- Kod
esbuildile sıkıştırıldı (bundling) - Sıkıştırılmış kod prompt içine eklendi
- Prompt, ChatGPT o3-mini’ye iletildi
- Kod tabanıyla ilgili sorulara ne kadar doğru yanıt verdiği kontrol edildi
- Swagger oluşturma testi: Denemelerin çoğunda 21 endpoint’ten en az 19’unu doğru şekilde dokümante etmeyi başardı
- API endpoint’leri için açıklama isteme testi: Geliştirici olmayanlar/geliştiriciler için kılavuzları başarıyla oluşturdu
- Sınırlamalar mevcut
- Sonuç
> "LLM için tüm kod tabanını RAG kapsamına almak amacıyla, tüm kod tabanını tek bir dosyada sıkıştırıp LLM’e ileten bir test tasarladık.
>
> Mevcut bundling araçlarını olduğu gibi kullanarak kod tabanını sıkıştırdığımızda, LLM tüm kod tabanı için API dokümantasyonu oluşturabildi veya belirli bir API için ayrıntılı bir kılavuz yazabildi.
>
> Kod tabanını sıkıştırırken ortaya çıkan bilgi kaybının, özgün dosyalar üzerinde yapılacak ek semantic search ile telafi edilebileceğini öngörüyoruz."
8 yorum
Bundle edilmiş dosyaları prompt'a koyarak ya da uygulamaya ekleyerek LLM'e sorgu göndermeye RAG denebilir mi? Bunun hangi kısmının retrieval'a karşılık geldiğini merak ediyorum.
Ben de benzer düşünüyorum
Paketlenmiş dosyaları temel alarak LLM’in retrieval yapıp orijinal kodu geri getirmesi değil mi?
İlginçmiş. Minify edilmiş JS ile bile bir ölçüde oldukça iyi kavrıyor. https://tr.news.hada.io/topic?id=19552 veya https://tr.news.hada.io/topic?id=19540 içinde tanıtılan araçlar gibi şeylerden yararlanıp dizin yapısını ek bağlam olarak vermek de iyi olabilir diye düşünüyorum.
Bu aralar llm ile kodlama işlerini o kadar çok yapıyorum ki, veriyi her zaman verimli şekilde iletmek hep bir düşünce konusu; ilginç deney için teşekkürler.
Yurt dışında codebase syntax'ını graph olarak çıkarıp sorgulamayı deneyen girişimler de vardı,
bundling'in daha genel olarak uygulanması daha kolay bir yöntem gibi görünüyor. (Dil bundling'i destekliyorsa)
https://x.com/daniel_mac8/status/1908332949251948808
Ama bu aralar gemini'nin performansı o kadar iyi ki, o3 ile karşılaştırırsanız daha da ilginç olabilir.
İlgiyle okudum. Paketlenmiş kaynak koddan iş mantığını bu seviyeye kadar çıkarabilmek gerçekten etkileyici... SPA ile yazılmış web uygulamalarının tersine mühendislik maliyeti de büyük ölçüde azalacak gibi görünüyor.
Okumaya çalıştım ama blog şu anda 500 hatası veriyor.
Blogumda galiba bir kararsızlık var. Erişemeyenler içeriği buradaki gist.github.com bağlantısından okuyabilir.