- Açık kaynak bakımına yönelik otomatik bir yardımcı "ajan" oluşturarak açık kaynak yazılım geliştirmeyi iyileştirmeyi amaçlayan bir proje
- Açık kaynak bakımıyla ilgili tekrarlayan işlerin miktarını azaltabilir
- Büyük dil modellerinin (LLM) doğal dilde anlamsal analiz yapabilme yeteneği ve doğal dil komutları ile program kodu arasında dönüşüm yapabilme kabiliyeti, ajanların insanlarla daha sorunsuz etkileşim kurması için yeni fırsatlar yaratıyor
- LLM, ajanın bir parçası olacak; ancak ajanın davranışlarının çoğu standart ve deterministik kod çalıştırmaktan oluşacak
- Oscar, geliştirmeye odaklanan LLM kullanımından farklı olarak, kod yazma sürecini tamamlamaya veya onun yerini almaya çalışmıyor
- Bunun yerine gelen issue'ları işleme, soruları mevcut dokümanlarla eşleştirme gibi sıkıcı kısımlara odaklanma fikri öne çıkıyor
Proje hedefleri
- Issue çözümü için gereken bakım eforunu azaltmak [çözüm her zaman bir düzeltme anlamına gelmez]
- Değişiklik listesi (CL) veya pull request (PR) çözümü için gereken bakım eforunu azaltmak [çözüm her zaman gönderme/birleştirme anlamına gelmez]
- Forum sorularını çözmek için gereken bakım eforunu azaltmak
- Daha fazla kişinin üretken bir bakımcı olabilmesini desteklemek
Yaklaşım
- Açık kaynak bakımındaki tekrarlayan işler yalnızca Go projelerine özgü olmadığından, tüm yazılım projelerinin yeniden kullanıp genişletebileceği bir mimari kurmak hedefleniyor
- Şimdiye kadar Oscar'ın önemli parçaları olacak üç özellik belirlendi:
- Katkıcı etkileşimleri sırasında ilgili proje bağlamını indekslemek ve görünür kılmak
- Deterministik araçları doğal dille kontrol etmek
- Issue raporlarını ve CL/PR'leri analiz ederek gönderim sırasında veya hemen sonrasında gerçek zamanlı iyileştirme yapmak, uygun şekilde etiketlemek ve yönlendirmek
İlgili proje bağlamını indeksleme ve görünür kılma
- LLM'ler, benzer anlama sahip belgeleri benzer yönleri gösteren vektörlere eşleyebilen yüksek boyutlu kayan noktalı birim vektörler olan embedding'ler üreterek belgeleri analiz edebilir
- Girdi vektörüne benzer vektörleri aramak için kullanılan bir vektör veritabanıyla birleştirildiğinde, LLM embedding'leri açık kaynak projelerindeki tüm bağlamı indekslemek için çok etkili bir yöntem sunar
- Prototip ajan bu işlevi uyguluyor ve Go deposundaki yeni issue'lara yanıt olarak en yüksek ilgililiğe sahip en fazla 10 bağlantılık bir liste sunuyor
Deterministik araçları kontrol etmek için doğal dil kullanımı
- Açık kaynak projeleri büyüdükçe faydalı araçların sayısı artar ve tüm araçları takip etmekle her birinin nasıl kullanılacağını hatırlamak zorlaşabilir
- LLM'ler, doğal dilde yazılmış niyet ile program kodu ya da araç çağrıları gibi çalıştırılabilir niyet biçimleri arasında dönüşüm yapmada çok etkilidir
- Gemini'nin, doğal dil isteklerini yerine getirmek için mevcut araçları seçip çağırmasına yönelik deneyler yapıldı; ancak henüz gerçekten çalışan bir şey yok
Issue raporu ve CL/PR analizi
- İlgili issue'larda paylaşım yapmak, analizin sınırlı bir biçimi; ancak performansla ilgili issue'ları tespit edip "performance" etiketi eklemek gibi başka tür anlamsal analizler de eklenmesi planlanıyor
- Raporu, onu faydalı hale getirmek için daha fazla bilgi gerekip gerekmediğini belirleyebilecek kadar iyi analiz etmenin mümkün olup olmadığını araştırmak planlanıyor
- Tüm bu analizler ve ortaya çıkan etkileşimler, rapor gönderildikten hemen sonra gerçekleştiğinde çok daha iyi çalışıyor; çünkü raporlayan kişi hâlâ erişilebilir ve sürece dahil oluyor
Prototip
- Oscar'ı keşfetmek için geliştirilen ilk prototipin adı Gaby (Go AI bot); Go issue tracker üzerinde çalışıyor ve @gabyhelp olarak paylaşım yapıyor
- Şu ana kadar Gaby, GitHub üzerindeki Go issue içeriklerini indeksliyor, go.dev üzerindeki Go dokümantasyonunu indeksliyor ve yeni issue'lara ilgili bağlantılarla yanıt veriyor
- Gaby'nin yapısı, her tür hosting servisinde herhangi bir LLM, depolama katmanı ve vektör veritabanıyla kolayca çalıştırılmasını sağlıyor
Henüz yorum yok.