Meningkatkan Developer Tools Berteknologi AI dengan Gemini API

NOV 14, 2024
Vishal Dharmadhikari Product Solutions Engineer
Paige Bailey AI Developer Experience Engineer
Scott Werner Sublayer

Demokratisasi AI selama setahun terakhir telah membuka dua peluang besar bagi developer - mempermudah pengintegrasian AI termutakhir ke dalam project dan menghadirkan efisiensi berbasis AI ke dalam proses pengembangan mereka.

Sublayer, framework agen AI berbasis Ruby, mendemonstrasikan kekuatan dan efisiensi Gemini API dengan mengintegrasikan model 1.5 kami ke dalam penawaran developer inti serta alur kerja peralatan mereka sendiri.


Menjaga dokumentasi Sublayer selalu terbaru dengan Gemini

Salah satu peluang dengan AI bagi developer adalah memampukan tim, terutama startup tahap awal yang masih kecil, untuk melakukan lebih banyak hal dengan upaya seminimal mungkin. Bagi banyak orang, ini mungkin terjadi pada sesuatu yang sederhana tetapi penting, seperti dokumentasi. Dalam alur kerja mereka sendiri, Sublayer mengatasi hal ini dengan mengintegrasikan library mereka dengan Gemini 1.5 Pro dan membangun otomatisasi AI untuk mendukung pekerjaan dalam menjaga dokumentasi selalu terbaru dan mengidentifikasi area peningkatan.

“Semuanya terjadi karena jendela konteks Gemini yang sangat besar benar-benar memberi Anda ruang bernapas untuk mencoba ide-ide baru tanpa terjebak dalam implementasi optimal yang kompleks di depan,” kata Scott Werner, CEO Sublayer, yang baru-baru ini menulis tentang konsep ini di Waste Inferences!

Prosesnya berjalan seperti ini:

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

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

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

4. Yang terakhir, agen mengambil informasi terstruktur yang diterimanya dan menggunakannya untuk membuat cabang baru, melakukan 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 selengkapnya di contoh open source Sublayer


Setelah keberhasilan project pertama ini, mereka mengembangkannya lebih jauh menjadi agen yang memantau repositori sumber daya terpisah untuk fokus menjaga halaman katalog tertentu dokumen mereka agar selalu terbaru. Bahkan ada tugas serupa yang berjalan dalam semalam ketika Gemini menganalisis dokumentasi saat ini, mengidentifikasi beberapa area peningkatan, membuat peringkat berdasarkan dampaknya, dan menghasilkan satu PR untuk tim Sublayer yang akan diaktifkan dan ditinjau setiap pagi.


Membawa AI ke komunitas developer Ruby dengan model Gemini

Selain menjadikan infrastruktur dan peralatan developer mereka lebih efisien, Sublayer juga mendukung model Gemini dalam fungsionalitas produk inti mereka.

Misi Sublayer adalah memberdayakan developer individu dan tim kecil untuk menangani berbagai project ambisius yang sebelumnya tidak terjamah karena biaya atau kompleksitas. Mereka berfokus pada pengotomatisan tugas-tugas yang membosankan, memakan waktu, dan berulang – kasus penggunaan yang sempurna untuk AI. Ini bisa meliputi migrasi kode berskala besar, di mana operasi serupa perlu diulang ribuan kali, hingga efisiensi sehari-hari yang dicapai dengan mengotomatiskan tugas-tugas kecil dalam checklist yang menghabiskan waktu dan energi.

Tantangan utama bagi Sublayer adalah mendukung komunitas developer Ruby, yang selama ini relatif kurang terlayani dalam ekosistem AI. Mengintegrasikan Gemini memungkinkan mereka memenuhi permintaan yang terus meningkat akan dukungan Gemini dalam alat mereka. Implementasi Gemini Sublayer sangatlah efisien, hanya membutuhkan sekitar 60 baris kode, berkat lapisan abstraksi. Mereka menggunakan output terstruktur, berinteraksi dengan model dalam proses iteratif satu putaran. Pendekatan ini menyederhanakan pengembangan dan proses debug, sehingga membantu developer membangun aplikasi yang kuat.

"Ketika membangun aplikasi berbasis LLM, pecah masalah menjadi komponen-komponen sekecil mungkin," saran Werner. "Anda harus merancang program untuk menangani output model apa pun secara efektif, yang bahkan bisa berarti dengan sengaja menambahkan langkah-langkah untuk ditinjau dan diedit oleh pengguna sebelum melanjutkan."


LLM, bagian inti dari teka-teki infrastruktur AI

Bagi Sublayer, LLM seperti Gemini adalah bagian penting infrastruktur, mirip dengan database. Framework mereka dirancang untuk mengintegrasikan panggilan ke Gemini 1.5 Pro dan Gemini 1.5 Flash dengan mulus, mengambil data terstruktur yang bisa digunakan oleh developer dalam aplikasi mereka. Pendekatan ini membuka banyak sekali kemungkinan, mulai dari mengekstrak insight dari beragam sumber data hingga membuat kode dan mentransformasi codebase dalam berbagai bahasa dan library. Sublayer bahkan menggunakan model Gemini yang memungkinkan pengguna menciptakan komponen fungsional baru di dalam framework itu sendiri. Karakteristik "perakitan sendiri" ini mendorong eksperimen dan memungkinkan pengguna mengeksplorasi ide-ide baru dengan cepat.

"Gemini sangat baik dalam menyelesaikan semua masalah yang dirancang untuk memudahkan framework kami – pembuatan kode, dekomposisi tugas, mengikuti petunjuk, dan menghasilkan struktur data baru berdasarkan contoh,"
Scott Werner, CEO of Sublayer


Apa berikutnya

Selanjutnya, Sublayer bersiap-siap meluncurkan Augmentations.ai, sebuah platform yang menyediakan otomatisasi yang mereka ciptakan untuk semua tim developer. Rilis awal mereka adalah dua alat yang didukung oleh Gemini 1.5 Pro: Semantic Linting, yang memungkinkan tim untuk membuat aturan peninjauan kode berteknologi AI yang memahami konteks dan menerapkan praktik terbaik yang terus berkembang, dan Weekly Summaries, yang mengubah aktivitas pengembangan pada berbagai repositori dan alat manajemen produk menjadi insight yang dapat ditindaklanjuti oleh pimpinan.

Mereka berencana untuk terus mengombinasikan Gemini 1.5 Pro untuk tugas-tugas yang lebih kompleks dan Gemini 1.5 Flash untuk fungsionalitas yang ditampilkan kepada pengguna serta lebih sensitif terhadap latensi sembari mereka merilis lebih banyak alat pada platform Augmentations. Pekerjaan ini juga akan memberikan masukan ke dalam framework open source mereka, memungkinkan komunitas Ruby memanfaatkan fungsionalitas Gemini terbaru saat dirilis, seraya didorong dengan penggunaan di dunia nyata oleh tim Sublayer.

Cerita Sublayer menunjukkan potensi transformatif Gemini API. Ini membuktikan betapa mudahnya developer untuk bisa mengintegrasikan Gemini ke dalam alur kerja mereka, membuka banyak sekali peluang inovasi dan otomatisasi. Untuk mulai membangun dengan model Gemini, baca dokumentasi API.