14 Kasım 2024
Gemini API ile yapay zeka destekli geliştirici araçlarını geliştirme
Yapay zekanın geçtiğimiz yıl demokratikleşmesi, geliştiriciler için iki büyük fırsatın kapısını açtı. Bu fırsatlar, son teknoloji yapay zekayı projelerine entegre etmeyi inanılmaz derecede kolaylaştırdı ve yapay zeka destekli verimlilikleri geliştirme süreçlerine getirdi.
Ruby tabanlı bir yapay zeka aracısı çerçevesi olan Sublayer, 1.5 modellerimizi hem temel geliştirici tekliflerine hem de kendi araç iş akışlarına entegre ederek Gemini API'nin gücünü ve verimliliğini gösterir.
Gemini ile alt katman dokümanlarını güncel tutma
Geliştiriciler için yapay zekanın sunduğu fırsatlardan biri, özellikle küçük ve ilk aşamadaki girişimlerdeki ekiplerin daha az kaynakla daha fazlasını yapmasına olanak tanımasıdır. Birçok kişi için bu, dokümanlar gibi basit ancak önemli bir şey olabilir. Sublayer, kendi iş akışlarında bu sorunu, kitaplığını Gemini 1.5 Pro ile entegre ederek ve dokümanlarını güncel tutma ve iyileştirme alanlarını belirleme çalışmalarını desteklemek için yapay zeka otomasyonları oluşturarak çözer.
"Bunun nedeni, Gemini'nin devasa bağlam penceresinin, karmaşık ve optimize edilmiş uygulamalarla uğraşmadan yeni fikirleri denemeniz için size nefes alma alanı sağlamasıdır."
Süreç şu şekilde işler:
Bir PR ana alt katman deposuyla birleştirildiğinde, dokümanları güncellemeye başlaması için bir aracı tetiklenir.
Temsilci, kitaplığın tüm içeriğini, dokümanların tüm içeriğini ve PR'nin ilgili tüm içeriğini, görevi açıklayan talimatlarla birlikte içeren bir istem oluşturur ve Gemini'ye gönderir.
Ardından Gemini, alt katman kitaplığının kullanılacak bir nesneye dönüştürdüğü dosya yollarını, adları ve içerikleri içeren yapılandırılmış çıkışlarla yanıt verir.
Son olarak temsilci, aldığı yapılandırılmış bilgileri yeni bir şube oluşturmak, dosyalarda istenen değişiklikleri yapmak ve yeni bir PR göndermek için kullanır.
# Get the diff from the PR
diff = GithubGetDiffAction.new(repo: repo, pr_number: pr_number).call
# Get the contents of the library repository and docs repository
code_context = GetContextAction.new(path: code_repo_path).call
doc_context = GetContextAction.new(path: doc_repo_path).call
# Use Gemini 1.5 Pro to decide whether this PR requires a documentation update
result = DocUpdateNecessityGenerator.new(
code_context: code_context,
doc_context: doc_context,
diff: diff
).generate
# Use Gemini 1.5 Pro to generate suggested changes to the documentation
doc_update_suggestions = DocUpdateSuggestionGenerator.new(
code_context: code_context,
doc_context: doc_context,
context_ignore_list: context_ignore_list,
diff: diff
).generate
# Use Gemini 1.5 Pro to generate the changes to the suggested files
file_updates = DocUpdateGenerator.new(
code_context: code_context,
suggestions: suggestions,
doc_context: doc_context,
context_ignore_list: context_ignore_list
).generate
# Update each of the files returned by Gemini 1.5 Pro and create a new PR
İş akışı kodunun tamamını Sublayer'ın açık kaynak örnekleri sayfasında bulabilirsiniz.
Bu ilk projenin başarısından sonra, dokümanlarının belirli bir katalog sayfasını güncel tutmaya odaklanmak için ayrı kaynak depolarını izleyen temsilciler olarak daha da genişlediler. Gemini'nin mevcut dokümanları analiz ettiği, iyileştirme için birkaç alan belirlediği, bunları etkiye göre sıraladığı ve alt katman ekibinin her sabah uyanıp inceleyeceği tek bir PR oluşturduğu gece boyunca çalışan benzer bir görev bile var.
Gemini modelleriyle yapay zekayı Ruby geliştirici topluluğuna sunma
Sublayer, kendi geliştirici altyapısını ve araçlarını daha verimli hale getirmenin yanı sıra temel ürün işlevlerinde Gemini modellerini de destekler.
Sublayer'ın misyonu, bireysel geliştiricilerin ve küçük ekiplerin, maliyet veya karmaşıklık nedeniyle daha önce erişemedikleri iddialı projelerle mücadele etmelerini sağlamaktır. Sıkıcı, zaman alıcı ve tekrar eden görevlerin otomasyonuna odaklanıyorlar. Bu, yapay zeka için mükemmel bir kullanım alanı. Bu, benzer işlemlerin binlerce kez tekrarlanması gereken büyük ölçekli kod taşıma işlemlerinden, zaman ve enerji harcayan bir yapılacaklar listesindeki küçük görevleri otomatikleştirerek elde edilen günlük verimliliklere kadar çeşitlilik gösterebilir.
Sublayer'ın karşılaştığı en önemli zorluk, yapay zeka ekosisteminde nispeten yeterince destek görmeyen Ruby geliştirici topluluğunu desteklemektir. Gemini'yi entegre etmek, araçlarındaki Gemini desteğine yönelik artan talebi karşılamalarını sağladı. Sublayer'ın Gemini uygulaması son derece verimlidir ve soyutlama katmanı sayesinde yalnızca yaklaşık 60 satır kod gerektirir. Tek seferlik iteratif bir süreçte modellerle etkileşime geçerek yapısal çıkışlar kullanırlar. Bu yaklaşım, geliştirme ve hata ayıklamayı basitleştirerek geliştiricilerin güçlü uygulamalar oluşturmasına yardımcı olur.
"LLM tabanlı uygulamalar geliştirirken sorunu mümkün olan en küçük bileşenlere ayırın" diyor Werner. "Programlarınızı, tüm model çıktılarını etkili bir şekilde işleyebilecek şekilde tasarlamak istersiniz. Bu, bir kullanıcının devam etmeden önce incelemesi ve düzenlemesi için kasıtlı olarak adımlar eklemek anlamına bile gelebilir."
Yapay zeka altyapısı bulmacasının temel parçalarından biri olan büyük dil modelleri
Alt katman için Gemini gibi LLM'ler, veritabanlarına benzer şekilde altyapının önemli parçalarıdır. Çerçeveleri, hem Gemini 1.5 Pro hem de Gemini 1.5 Flash'a yapılan çağrıları sorunsuz bir şekilde entegre edecek şekilde tasarlanmıştır. Bu sayede geliştiriciler, uygulamalarında kolayca kullanabilecekleri yapılandırılmış verileri alabilir. Bu yaklaşım, çeşitli veri kaynaklarından analizler elde etmekten kod oluşturmaya ve kod tabanlarını diller ve kitaplıklar arasında dönüştürmeye kadar birçok olasılık sunar. Alt katman, kullanıcıların çerçevenin içinde yeni işlevsel bileşenler oluşturmasını sağlamak için Gemini modellerini bile kullanır. Bu "kendi kendini bir araya getiren" özellik, denemeyi teşvik eder ve kullanıcıların yeni fikirleri hızlı bir şekilde keşfetmesine olanak tanır.
"Gemini, çerçevemizin kolaylaştırmak için tasarlandığı tüm sorunları (kod oluşturma, görev dökümüne ayırma, talimatları takip etme ve örneklere dayalı yeni veri yapıları oluşturma) çözmede mükemmeldir"
Sırada ne var?
Sublayer, gelecekte oluşturdukları otomasyonları tüm geliştirme ekiplerinin kullanımına sunan bir platform olan Augmentations.ai'ı kullanıma sunmaya hazırlanıyor. İlk sürümde Gemini 1.5 Pro tarafından desteklenen iki araç yer alacak: Ekiplerin bağlamı anlayan ve değişen en iyi uygulamaları uygulayan yapay zeka destekli kod inceleme kuralları oluşturmasına olanak tanıyan Anlamsal Linting ve birden fazla depoda ve ürün yönetimi aracında yürütülen geliştirme faaliyetlerini üst düzey yöneticiler için uygulanabilir analizlere dönüştüren Haftalık Özetler.
Augmentations platformunda daha fazla araç yayınladıkça daha karmaşık görevler için Gemini 1.5 Pro'yu, gecikme süresine daha duyarlı, kullanıcılara yönelik işlevler için ise Gemini 1.5 Flash'ı kullanmaya devam etmeyi planlıyorlar. Bu çalışma, açık kaynak çerçevesine de geri beslenecek. Böylece Ruby topluluğu, Sublayer ekibinin gerçek dünyadaki kullanımlarından yararlanırken yeni Gemini işlevlerinden de yararlanabilecek.
Sublayer'ın hikayesi, Gemini API'nin dönüştürücü potansiyelini gösteriyor. Bu, geliştiricilerin Gemini'yi iş akışlarına ne kadar kolay entegre edebildiklerinin bir kanıtıdır. Gemini, inovasyon ve otomasyon için bir fırsatlar dünyası sunar. Gemini modelleriyle uygulama oluşturmaya başlamak için API dokümanlarımızı okuyun.