2024 年 11 月 14 日
Gemini API による AI を活用したデベロッパー ツールの強化

過去 1 年間の AI の民主化により、デベロッパーには 2 つの大きな機会がもたらされました。最先端の AI をプロジェクトに非常に簡単に統合し、AI を活用した効率化を開発プロセスにもたらすことができます。
Ruby ベースの AI エージェント フレームワークである Sublayer は、Google の 1.5 モデルをコア デベロッパー サービスと独自のツール ワークフロー内に統合することで、Gemini API のパワーと効率性を実証しています。
Gemini でサブレイヤのドキュメントを最新の状態に保つ
デベロッパーにとって AI のメリットの 1 つは、特に小規模な初期段階のスタートアップにおいて、チームが少ないリソースでより多くのことを達成できることです。多くの場合、これはドキュメントのようにシンプルでありながら重要なものです。Sublayer では、独自のワークフローで、ライブラリを Gemini 1.5 Pro と統合し、ドキュメントの最新の状態を維持し、改善が必要な部分を特定する作業をサポートする AI 自動化を構築することで、この問題に対処しています。
「Gemini の広大なコンテキスト ウィンドウにより、複雑で最適化された実装に最初からこだわることなく、新しいアイデアを試す余裕が生まれました」
この処理は次のように行われます。
PR がメインの Sublayer リポジトリに統合されると、エージェントがトリガーされ、ドキュメントの更新作業が開始されます。
エージェントは、ライブラリの内容全体、ドキュメントの内容全体、PR の関連するすべての内容、タスクを説明する手順を含むプロンプトを生成し、Gemini に送信します。
Gemini は、ファイルパス、名前、コンテンツを含む構造化出力で応答します。Sublayer ライブラリは、この出力をオブジェクトに変換して使用します。
最後に、エージェントは受け取った構造化情報を使用します。これにより、新しいブランチを作成して、リクエストされた変更をファイルに加え、新しい PR を送信します。
# 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
ワークフローの完全なコードについては、Sublayer のオープンソース サンプルをご覧ください。
この最初のプロジェクトの成功をきっかけに、エージェントはさらに拡大し、個別のリソース リポジトリをモニタリングして、ドキュメントの特定のカタログページを最新の状態に保つことに注力しています。夜間に実行される同様のタスクもあります。Gemini が現在のドキュメントを分析し、改善の余地のあるいくつかの領域を特定し、影響に基づいてランク付けし、Sublayer チームが毎朝確認してレビューできるように単一の PR を生成します。
Gemini モデルで Ruby デベロッパー コミュニティに AI を導入する
Sublayer は、独自のデベロッパー インフラストラクチャとツールを効率化するだけでなく、コア プロダクト機能内で Gemini モデルもサポートしています。
Sublayer の使命は、個々のデベロッパーや小規模なチームが、費用や複雑さのためにこれまで手が届かなかった野心的なプロジェクトに取り組めるようにすることです。RPA は、退屈で時間のかかる反復的なタスクの自動化に重点を置いています。これは AI に最適なユースケースです。たとえば、類似のオペレーションを何千回も繰り返す必要がある大規模なコード移行から、時間と労力を浪費するチェックリストの小さなタスクを自動化して日常的な効率化を図ることまで、さまざまな範囲にわたります。
Sublayer の主な課題は、AI エコシステムで比較的サービスが提供されていない Ruby デベロッパー コミュニティをサポートすることです。Gemini を統合したことで、ツール内での Gemini サポートに対する需要の増加に対応できるようになりました。Sublayer の Gemini 実装は非常に効率的で、抽象化レイヤにより約 60 行のコードのみで済みます。構造化出力を使用し、1 回のターンの反復プロセスでモデルとやり取りします。このアプローチにより、開発とデバッグが簡素化され、デベロッパーは堅牢なアプリケーションを構築できます。
「LLM ベースのアプリを構築する際は、問題を可能な限り小さなコンポーネントに分解してください」と Werner はアドバイスします。「モデルの出力を効果的に処理するようにプログラムを設計する必要があります。そのためには、人間が確認と編集を行うためのステップを意図的に追加することも必要になる場合があります。」
LLM: AI インフラストラクチャのパズルのコア要素
Sublayer にとって、Gemini のような LLM は、データベースに似た重要なインフラストラクチャの一部です。このフレームワークは、Gemini 1.5 Pro と Gemini 1.5 Flash の両方への呼び出しをシームレスに統合し、デベロッパーがアプリケーションですぐに利用できる構造化データを取得するように設計されています。このアプローチにより、さまざまなデータソースから分析情報を抽出することから、コードの生成、言語やライブラリ間でのコードベースの変換まで、さまざまな可能性が開かれます。Sublayer は Gemini モデルを使用して、ユーザーがフレームワーク自体内で新しい機能コンポーネントを生成できるようにします。この「自己組み立て」特性により、ユーザーはテストを促進し、新しいアイデアを迅速に探求できます。
「Gemini は、Google のフレームワークが設計されているすべての問題(コード生成、タスクの分解、手順の実行、例に基づく新しいデータ構造の生成)を解決するのに適しています」
次のステップ
今後、Sublayer は Augmentations.ai のリリースに向けて準備を進めています。これは、Sublayer が作成した自動化をすべての開発チームが利用できるようにするプラットフォームです。最初のリリースでは、Gemini 1.5 Pro を活用した 2 つのツールが提供されます。セマンティック リンティングは、コンテキストを理解し、進化するベスト プラクティスを適用する AI を活用したコードレビュー ルールをチームが作成できるようにします。ウィークリー サマリーは、複数のリポジトリとプロダクト管理ツールにわたる開発アクティビティを、リーダー向けの行動につながる分析情報に変換します。
Google は、Augmentations プラットフォームでさらに多くのツールをリリースする際に、より複雑なタスクには Gemini 1.5 Pro を、レイテンシに敏感なユーザー向け機能には Gemini 1.5 Flash を組み合わせて引き続き使用していく予定です。この作業はオープンソース フレームワークにもフィードバックされ、Ruby コミュニティは、Sublayer チームによる実際の使用に基づいて、新しい Gemini 機能をリリース後すぐに利用できるようになります。
Sublayer のストーリーは、Gemini API が持つ変革の可能性を示しています。これは、デベロッパーが Gemini をワークフローに簡単に統合し、イノベーションと自動化の可能性を広げていることを証明しています。Gemini モデルを使用して構築を開始するには、API ドキュメントをご覧ください。