GitHub Copilot拡張機能があればすべてが可能です
2024年6月24日 Isidor Nikolic(@isidorn)
2017年、Googleの研究者は画期的な論文「Attention Is All You Need」で_トランスフォーマー_の概念を発表しました。人間の集中力と同様に情報を優先順位付けするこれらのモデルは、GitHub Copilotを支えるような現代の言語モデルの基盤となっています。
トランスフォーマーがAIにとって革新的だった(すみません)ように、GitHub Copilot Extensionsは開発者向けのAIの可能性を最大限に引き出すものと信じています。
VS Codeは、史上最も広く利用されている開発ツールの一つです。この人気は、コミュニティが貢献してきた広範な拡張機能エコシステムに大きく起因しています。VS Codeユーザーであれば、おそらくすぐに手放せないいくつかの拡張機能を挙げられるでしょう。もしそれらの拡張機能がAIとGitHub Copilotの力を活用できるとしたら、その可能性を想像してみてください。
AIの真の力は、あなたの特定のコンテキストを認識したときに解き放たれます。そして、VS Codeはその知識を持っています。拡張機能はVS Code APIを使用してこのコンテキストを活用し、すべての開発者が既にいるVS Code内で、最も適切で関連性の高いAIによる回答とインタラクションを提供できます。
この投稿では、拡張機能が言語モデルやGitHub Copilotが提供するチャット体験と直接やり取りできるようにする新しいAPIについて見ていきます。これらのAPIを使った開発を今日から始める方法を紹介し、これらのAPIを活用して拡張機能を充実させ始めた初期採用者たちをいくつかご紹介します。
チャットおよび言語モデルAPI
今年のBuildで、VS CodeにおけるGitHub Copilot向けの新しいAPIセットを発表しました。
これらのAPIのすべてについて学ぶには、「GitHub CopilotでVS Code拡張機能を強化する」に関するBuildセッションを必ずご覧ください。
LLMをチャットインターフェースを通じて使用することに最も慣れているかもしれません。拡張機能がGitHub Copilotの力を活用する一つの方法は、VS Code内のチャットビューでユーザーが操作できるチャット参加者を構築することです。Chat APIを使用してチャット参加者を作成し、Language Model APIを使用して自然言語を処理し、ユーザーのクエリに対する応答を生成できます。新しいAPI概念の例として@cat
コードメンターを使用している拡張機能ガイドで、Chat APIについて詳しく学ぶことができます。
Language Model APIを使用すると、GitHub Copilotによって提供される大規模言語モデル(略してLLM)に、自身の拡張機能から直接アクセスして活用できるようになりました。使用したいモデルを選択し、プロンプトを構築し、選択したモデルにリクエストを送信するだけです。また、VS Code APIを使用することで、現在のファイルの内容や使用されている技術スタックを含めるなど、関連するコンテキストをプロンプトに追加できます。
Language Model APIは、チャットビューだけでなく、エディターのあらゆる部分で開発者エクスペリエンスを向上させるためにも使用できます。エディターのコンテキストメニューなど、VS Codeの貢献可能なすべてのサーフェスに、Language Model APIを使用するアクションを貢献できます。たとえば、ソース管理ビューはLanguage Model APIを使用して、ソースコードの変更に基づいてユーザーがコミットメッセージを生成できるようにします。別の例としては、Copilotを活用したリネーム機能があり、言語モデルがコードのコンテキストに基づいてシンボルのリネーム候補を提供します。
拡張機能ガイドで、Language Model APIについて詳しく学ぶことができます。
Chat APIとLanguage Model APIを、VS Codeの堅牢なAPIスイートと組み合わせることで、最も素晴らしいユーザーエクスペリエンスが生まれると私たちは信じています。拡張機能の作者はこれらのツールを創造的に活用し、単純な質疑応答ボットを超えて、適切なユーザーコンテキストを使用したVS Code内でリッチで統合されたインタラクションを開発すべきです。ユーザーはワークフロー内でのシームレスで強力なインタラクションを高く評価します。これらの新しいAPIにより、拡張機能はAI機能をVS Codeに直接統合することで、ユーザーの生産性を向上させることができます。
GitHub Apps
あるいは、チャットビューにチャット参加者を貢献するGitHub Appを作成することで、GitHub Copilotを拡張できます。GitHub Appはサービスによって支えられており、github.com、Visual Studio、VS Codeなど、すべてのGitHub Copilotサーフェスで動作します。GitHub AppはVS Code APIへの完全なアクセス権を持ちません。GitHub Appを通じてGitHub Copilotを拡張するには、Copilotパートナープログラムに参加する必要があります。
Microsoft BuildカンファレンスでGitHub Appsを介したGitHub Copilot Extensionsを発表し、すでにGitHub Marketplaceには素晴らしい拡張機能がいくつか登場しています。
実際の動作を見るには、GitHub Copilotの拡張に関するBuildセッションをご覧ください。
VS Code拡張機能ショーケース
VS Code拡張機能コミュニティがLanguage ModelおよびChat APIを使用して構築したものを紹介できることを嬉しく思います。これまでに、幅広いシナリオで100を超える拡張機能がGitHub Copilotを基盤として構築されているのを見てきました。ここでは、特に魅力的だと感じたものをいくつか紹介します。
Stripe
Stripeは、開発者がオンラインで支払いを受け入れ、送金できるようにします。新しい@stripe
チャット参加者は、Stripeのドキュメント、コード例、ベストプラクティスの知識を手元に提供するため、VS Codeを離れることなくStripe連携を構築・維持できます。
「私たちはStripeとの連携を開発者にとってより簡単にするために常に努力しており、そのためStripe固有のコンテキストと機能でCopilotを拡張できることに興奮しています。新しい拡張機能APIはよく設計されており、簡単に構築できるため、非常に迅速に進めることができました。」- Ian McCrystal(Stripe開発者AIチーム、EM)
@stripe
参加者は、以下のことを支援します。
- Stripe APIコードを生成・デバッグし、プロジェクトに挿入する
- Stripeドキュメントに基づいた質問への回答を得る
- API連携の構築から最終的なアップグレードまでを段階的に進める
@stripe
参加者は、7月中旬までにすべてのStripe VS Code拡張機能ユーザーに利用可能になります。
MongoDB
MongoDB開発者は、シームレスなデータナビゲーション、クエリ構築、プレイグラウンドでのプロトタイピング、主要言語へのエクスポートを可能にするMongoDB for VS Code拡張機能を高く評価しています。@mongodb
チャット参加者はこの拡張機能と深く統合されており、開発者はGitHub Copilotと拡張機能の強力な組み合わせを活用して、VS Code内でMongoDBでのアプリケーション開発をさらに高速化できます。
@mongodb
チャット参加者
- 自然言語からMongoDBクエリを生成する
- データベースログからクエリのパフォーマンスとエラーパターンに関する洞察を提供する
- データベースおよびコレクションのスキーマ情報を提供する
- 公式ドキュメントを参照してVS Code内で直接質問に回答する
MongoDBチャット参加者の利用に興味がある場合は、プライベートプレビューへのアクセスを申し込むことができます。
Parallels
人気のmacOS仮想化ソフトウェアであるParallelsは、Parallels Desktopエクスペリエンスを向上させる新しいParallels Desktop VS Code拡張機能を最近発表しました。さらにGitHub Copilotと統合することで、これをさらに改善しました。
「優れた例とともに提供された簡単で強力なAPIのおかげで、多大な労力と時間を要したであろう強力なCopilot参加者を迅速に作成することができました。」 – Carlos Lapao(Parallels、ソリューションアーキテクト)
新しい@parallels
チャット参加者を通じて、自然言語を使用してほとんどの仮想マシン操作を簡単に実行できます。たとえば、「@parallels start the Windows 11 VM」と入力すると、チャット参加者があなたの代わりに操作を実行します。
PostgreSQL
PostgreSQLは非常に人気のあるリレーショナルデータベースプラットフォームで、PostgreSQL Chat Participant拡張機能を使用することで、直接チャットできるようになりました。@pg
チャット参加者はあなたのデータベーススキーマを学習し、そのデータベーススキーマに基づいた回答を提供します。また、スキーマの生成、SQLクエリに関するヘルプの取得、さらにはデータベースとやり取りするためのコードの生成にも使用できます。
次のステップ
まだ始まったばかりです。VS Codeにおけるすべての製品イニシアチブと同様に、私たちは今後AIの拡張機能を時間とともに拡大していきます。今年の後半には以下の機能が提供される予定です。
- 意図検出により、チャット参加者が自動的に呼び出される
- GPT-4o言語モデルのサポート
- モデルリクエストのトークン制限の増加(現在の制限は4Kトークン)
- エディターのインラインチャット、ターミナル、ノートブックにおけるチャット参加者
- 変数解決API - 拡張機能がチャット変数を提供できるようにし、拡張機能のドメインからのコンテキストを提供する
- ツールAPI – 自然言語を引数付きのツール呼び出しに変換。拡張機能が他の参加者によって呼び出されるツールを登録できるようにする
本日より一般提供開始!
Chat APIとLanguage Model APIは本日よりVS Code Insidersで利用可能で、7月初旬にはVS Code Stableでも利用可能になります。ドキュメントとサンプルを使って、強力なAI拡張機能を簡単に構築できます。ご質問やフィードバックがある場合は、私たちのリポジトリでIssueを開くことができます。
本日より、Language ModelおよびChat APIに依存する拡張機能をVS Marketplaceに公開できます。本当の問いは、どのような素晴らしい拡張機能を作成するかです。可能性は無限大であり、これらの革新的なアイデアを実現できるのはあなただけです。さあ、私たちの素晴らしい拡張機能開発フローに飛び込み、適切なユーザーコンテキストでAIの力を活用し、あなたの創造性で開発の未来を形作りましょう!構築する部分は楽しいものです — ぜひ楽しんでください!
よろしくお願いいたします。
IsidorとVS Codeチーム