Bagikan

14 Nov 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 tampilan sublayer

Demokratisasi AI selama setahun terakhir telah membuka dua peluang besar bagi developer, yaitu mempermudah integrasi AI canggih ke dalam project mereka dan menghadirkan efisiensi berbasis AI ke dalam proses pengembangan mereka.

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

Memastikan dokumentasi Sublayer tetap terbaru 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 sumber daya. Bagi banyak orang, hal ini bisa berupa sesuatu yang sederhana namun penting seperti dokumentasi. Dalam alur kerja mereka sendiri, Sublayer mengatasi hal ini dengan mengintegrasikan library mereka dengan Gemini 1.5 Pro dan membuat otomatisasi AI untuk mendukung pekerjaan menjaga dokumentasi mereka tetap terbaru dan mengidentifikasi area yang perlu ditingkatkan.

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

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

Prosesnya seperti ini:

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

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

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

  4. 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 lengkap di contoh open source Sublayer

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

Menghadirkan AI ke komunitas developer Ruby dengan model Gemini

Selain meningkatkan efisiensi infrastruktur dan alat developer mereka sendiri, 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. Mereka berfokus untuk mengotomatiskan tugas-tugas yang membosankan, memakan waktu, dan berulang – kasus penggunaan yang sempurna untuk AI. Hal ini dapat berkisar dari migrasi kode skala besar, yang memerlukan pengulangan operasi serupa ribuan kali, hingga efisiensi sehari-hari yang dicapai dengan mengotomatiskan tugas-tugas kecil dalam daftar periksa yang menghabiskan waktu dan energi.

Tantangan utama Sublayer adalah mendukung komunitas developer Ruby, yang relatif kurang terlayani dalam ekosistem AI. Dengan mengintegrasikan Gemini, mereka dapat memenuhi peningkatan permintaan dukungan Gemini dalam alat mereka. Implementasi Gemini Sublayer sangat efisien, hanya memerlukan sekitar 60 baris kode berkat lapisan abstraksinya. 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 andal.

"Saat membangun aplikasi berbasis LLM, uraikan masalah menjadi komponen terkecil," saran Werner. "Anda harus mendesain program untuk menangani output model secara efektif, yang bahkan mungkin berarti menambahkan langkah-langkah secara sengaja agar seseorang dapat meninjau dan mengeditnya sebelum melanjutkan."

LLM, bagian inti dari teka-teki infrastruktur AI

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

“Gemini sangat bagus dalam menyelesaikan semua masalah yang dirancang agar framework kami mudah diatasi – pembuatan kode, dekomposisi tugas, mengikuti petunjuk, dan membuat struktur data baru berdasarkan contoh”

— Scott Werner, Sublayer

Langkah berikutnya

Ke depannya, Sublayer akan meluncurkan Augmentations.ai, sebuah platform yang membuat otomatisasi yang mereka buat tersedia 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 terus berkembang, dan Weekly Summaries, yang mengubah aktivitas pengembangan di beberapa repositori dan alat pengelolaan produk menjadi insight yang dapat ditindaklanjuti oleh pimpinan.

Mereka berencana untuk terus menggunakan kombinasi Gemini 1.5 Pro untuk tugas yang lebih kompleks dan Gemini 1.5 Flash untuk fungsi yang lebih sensitif terhadap latensi dan berfokus pada pengguna saat mereka merilis lebih banyak alat di platform Augmentations. Upaya 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.

Kisah Sublayer menunjukkan potensi transformatif Gemini API. Hal ini membuktikan betapa mudahnya developer mengintegrasikan Gemini ke dalam alur kerja mereka, sehingga membuka berbagai peluang untuk inovasi dan otomatisasi. Untuk mulai membangun aplikasi dengan model Gemini, baca dokumentasi API kami.