Bagikan

14 November 2024

Meningkatkan Kualitas Alat Developer yang Didukung AI dengan Gemini API

Scott Werner

CEO Sublayer

Paige Bailey

AI Developer Experience Engineer

Vishal Dharmadhikari

Product Solutions Engineer

Banner besar showcase sublapisan

Demokratisasi AI selama setahun terakhir telah membuka dua peluang besar bagi developer - sehingga sangat mudah untuk mengintegrasikan AI canggih ke dalam project mereka dan menghadirkan efisiensi berbasis AI ke dalam proses pengembangan mereka.

Sublayer, framework agen AI berbasis Ruby, menunjukkan kecanggihan dan efisiensi Gemini API dengan mengintegrasikan model 1.5 kami ke dalam penawaran developer intinya serta dalam alur kerja alat mereka sendiri.

Memperbarui dokumentasi Sublapisan dengan Gemini

Salah satu peluang AI bagi developer adalah memungkinkan tim, terutama dalam startup kecil tahap awal, untuk melakukan lebih banyak hal dengan lebih sedikit. Bagi banyak orang, hal ini bisa berupa sesuatu yang sederhana namun penting seperti dokumentasi. Dalam alur kerjanya sendiri, Sublayer mengatasi hal ini dengan mengintegrasikan library-nya dengan Gemini 1.5 Pro dan membuat otomatisasi AI untuk mendukung pekerjaan menjaga dokumentasi mereka tetap terbaru dan mengidentifikasi area peningkatan.

“Semuanya terjadi karena jendela konteks Gemini yang besar benar-benar memberi Anda ruang untuk mencoba ide-ide baru tanpa terjebak dalam penerapan yang kompleks dan dioptimalkan di awal,”

— kata Scott Werner, CEO Sublayer, yang baru-baru ini menulis tentang konsep ini di Waste Inferences!

Prosesnya seperti ini:

  1. Setiap kali PR digabungkan ke repositori Sublayer utama, PR akan memicu agen untuk mulai memperbarui dokumentasi.

  2. Agen menghasilkan perintah yang berisi seluruh konten library, seluruh konten dokumentasi, dan semua konten PR yang relevan beserta petunjuk yang menjelaskan tugas dan mengirimkannya ke Gemini.

  3. Gemini kemudian merespons dengan output terstruktur yang berisi jalur, nama, dan konten file yang dikonversi oleh library Sublayer menjadi objek yang akan digunakan.

  4. Terakhir, agen mengambil informasi terstruktur yang diterima dan menggunakannya untuk membuat cabang baru, membuat perubahan yang diminta pada file, dan mengirimkan PR baru.

            
              
# 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  
          
            
          

Lihat kode alur kerja lengkap di Contoh open source Sublayer

Setelah kesuksesan project pertama ini, mereka telah memperluasnya lebih lanjut ke agen yang memantau repositori resource terpisah untuk berfokus pada pembaruan halaman katalog tertentu dari dokumen mereka. Bahkan ada tugas serupa yang berjalan semalaman saat Gemini menganalisis dokumentasi saat ini, mengidentifikasi beberapa area peningkatan, memberi peringkat berdasarkan dampaknya, dan membuat satu PR untuk tim Sublayer agar dapat melihat dan meninjaunya setiap pagi.

Membawa AI ke komunitas developer Ruby dengan model Gemini

Selain membuat infrastruktur dan alat developer mereka sendiri menjadi lebih efisien, Sublayer juga mendukung model Gemini dalam fungsi produk intinya.

Misi Sublayer adalah memberdayakan developer perorangan dan tim kecil untuk menangani project ambisius yang sebelumnya tidak dapat dijangkau karena biaya atau kompleksitas. AI ini berfokus pada mengotomatiskan tugas yang membosankan, memakan waktu, dan berulang – kasus penggunaan yang sempurna untuk AI. Hal ini dapat berkisar dari migrasi kode skala besar, dengan operasi serupa yang perlu diulang ribuan kali, hingga efisiensi sehari-hari yang dicapai dengan mengotomatiskan tugas kecil dalam checklist yang menghabiskan waktu dan tenaga.

Tantangan utama Sublayer adalah mendukung komunitas developer Ruby, yang relatif kurang terlayani di ekosistem AI. Dengan mengintegrasikan Gemini, mereka dapat memenuhi permintaan yang semakin meningkat untuk dukungan Gemini dalam alat mereka. Implementasi Gemini sublapisan sangat efisien, hanya memerlukan sekitar 60 baris kode berkat lapisan abstraksinya. Model ini menggunakan output terstruktur, yang berinteraksi dengan model dalam proses iteratif satu putaran. Pendekatan ini menyederhanakan pengembangan dan proses debug, sehingga membantu developer membangun aplikasi yang andal.

"Saat mem-build aplikasi berbasis LLM, bagi masalah menjadi komponen terkecil," saran Werner. "Anda ingin mendesain program untuk menangani output model secara efektif, yang bahkan mungkin berarti sengaja menambahkan langkah-langkah untuk ditinjau dan diedit oleh seseorang sebelum melanjutkan."

LLM, bagian inti dari teka-teki infrastruktur AI

Bagi Sublapisan, LLM seperti Gemini adalah bagian infrastruktur yang penting, mirip dengan database. Framework mereka dirancang untuk mengintegrasikan panggilan ke Gemini 1.5 Pro dan Gemini 1.5 Flash dengan lancar, mengambil data terstruktur yang dapat digunakan developer dengan mudah di aplikasi mereka. Pendekatan ini membuka banyak kemungkinan, mulai dari mengekstrak insight dari berbagai sumber data hingga membuat kode dan mengubah codebase di seluruh bahasa dan library. Sublapisan bahkan menggunakan model Gemini untuk memungkinkan pengguna membuat komponen fungsional baru dalam framework itu sendiri. Karakteristik "self-assembling" ini mendorong eksperimen dan memungkinkan pengguna menjelajahi ide-ide baru dengan cepat.

“Gemini sangat baik dalam memecahkan semua masalah yang dirancang framework kami untuk memudahkan – pembuatan kode, dekomposisi tugas, mengikuti petunjuk, dan membuat struktur data baru berdasarkan contoh”

— Scott Werner, Sublayer

Langkah berikutnya

Ke depannya, Sublayer bersiap untuk meluncurkan Augmentations.ai, platform yang menyediakan otomatisasi yang mereka buat untuk semua tim pengembangan. Rilis awal mereka akan menampilkan dua alat yang didukung oleh Gemini 1.5 Pro: Semantic Linting, yang memungkinkan tim membuat aturan peninjauan kode yang didukung AI yang memahami konteks dan menerapkan praktik terbaik yang berkembang, serta Weekly Summaries, yang mengubah aktivitas pengembangan di beberapa repositori dan alat pengelolaan produk menjadi insight yang bisa ditindaklanjuti untuk para pemimpin.

Mereka berencana untuk terus menggunakan campuran Gemini 1.5 Pro untuk tugas yang lebih kompleks dan Gemini 1.5 Flash untuk fungsi yang lebih sensitif terhadap latensi dan ditampilkan kepada pengguna saat mereka merilis lebih banyak alat di platform Augmentations. Pekerjaan ini juga akan memberikan masukan ke framework open source mereka, sehingga komunitas Ruby dapat memanfaatkan fungsi Gemini baru saat dirilis, sekaligus didorong oleh penggunaan di dunia nyata oleh tim Sublayer.

Cerita Sublayer menunjukkan potensi transformatif Gemini API. Hal ini membuktikan betapa mudahnya developer mengintegrasikan Gemini ke dalam alur kerja mereka, sehingga membuka banyak peluang untuk inovasi dan otomatisasi. Untuk mulai mem-build dengan model Gemini, baca dokumentasi API kami.