🚀 VS Codeでを入手しましょう!

GitHub Copilot拡張機能があれば、すべてが揃います

2024年6月24日 Isidor Nikolic, @isidorn

2017年、Googleの研究者たちは、彼らの画期的な論文「Attention is All You Need」Transformerの概念を紹介しました。人間の集中力と同様に情報を優先するこれらのモデルは、GitHub Copilotを支えるものなど、今日の最新言語モデルの基盤となっています。

TransformerがAIにもたらした変革と同様に(すみません、駄洒落です)、GitHub Copilot拡張機能は、開発者向けの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の詳細をご覧ください。

Screenshot of the Chat view in VS Code, showing the cat sample participant.

Language Model APIを使用すると、GitHub Copilotによって提供される大規模言語モデル(LLMと略されることもあります)に直接アクセスし、独自の拡張機能で活用できるようになりました。使用したいモデルを選択し、プロンプトを作成して、選択したモデルにリクエストを送信するだけです。そして、VS Code APIを使用することで、プロンプトに関連するコンテキストを追加できます。たとえば、現在のファイルの内容や使用されているテクノロジースタックを含めるなどです。

Language Model APIは、チャットビューだけでなく、エディターのすべての部分で開発者体験を向上させるためにも使用できます。エディターのコンテキストメニューなど、VS Codeのすべての貢献可能なサーフェスにLanguage Model APIを使用するアクションを提供できます。たとえば、ソース管理ビューでは、Language Model APIを使用して、ユーザーがソースコードの変更に基づいてコミットメッセージを生成できるようにしています。別の例は、Copilotを利用したリネーム機能で、言語モデルがコードのコンテキストに基づいてシンボルのリネーム候補を提供します。

Screenshot of the Copilot-powered rename functionality in the VS Code editor.

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 AppsはVS Code APIへのフルアクセス権を持っていません。GitHub Appを通じてGitHub Copilotを拡張するには、Copilot Partner Programに参加する必要があります。

Microsoft BuildカンファレンスでGitHub Apps経由のGitHub Copilot拡張機能を発表しましたが、すでにGitHub Marketplaceでいくつかの素晴らしい拡張機能を見ることができます。

実際に動作している様子を見るには、GitHub Copilotの拡張に関するBuildセッションをご覧ください。

VS Code拡張機能ショーケース

VS Code拡張機能コミュニティがLanguage Model APIとChat APIで構築したものを紹介できることを嬉しく思っています。これまでに、100を超える拡張機能が、幅広いシナリオでGitHub Copilot上に構築されているのを見てきました。ここでは、特に説得力があると感じたものをいくつか紹介します。

Stripe

Stripeは、開発者がオンラインで支払いを受け付け、資金を移動できるようにします。新しい@stripeチャット参加者は、Stripeのドキュメント、コード例、ベストプラクティスの知識をすぐに利用できるようにするため、VS Codeを離れることなくStripe統合を構築および維持できます。

「私たちは、開発者がStripeを統合することをより簡単にするために常に努力しており、それがStripe固有のコンテキストと機能でCopilotを拡張することに興奮している理由です。新しい拡張性APIは、よく考えられており、構築が容易であるため、非常に迅速に進めることができました。」 - Ian McCrystal(EM、Stripe Developer AIチーム)

@stripe参加者は、次のことを支援します。

  • Stripe APIコードを生成およびデバッグし、プロジェクトに挿入する
  • Stripeドキュメントに基づいた質問への回答を得る
  • API統合の構築と最終的なアップグレードを段階的に進める

Screenshot of the Stripe chat participant in the Chat view in VS Code.

@stripe参加者は、7月中旬までにすべてのStripe VS Code拡張機能ユーザーが利用できるようになります。

MongoDB

MongoDB開発者は、シームレスなデータナビゲーション、クエリ構築、プレイグラウンドでのプロトタイピング、および一般的な言語へのエクスポートを可能にするMongoDB for VS Code拡張機能を気に入っています。@mongodbチャット参加者は拡張機能と深く統合されており、開発者はGitHub Copilotと拡張機能の強力な組み合わせを活用して、VS Code内でのMongoDBを使用したアプリケーション開発をさらに高速化できます。

@mongodbチャット参加者は、

  • 自然言語からMongoDBクエリを生成する
  • データベースログからクエリパフォーマンスとエラーパターンに関する洞察を提供する
  • データベースとコレクションのスキーマ情報を提供する
  • 公式ドキュメントへの参照とともに、VS Codeで直接質問に答える

Screenshot of the MongoDB chat participant in the Chat view in VS Code.

MongoDBチャット参加者の使用に興味がある場合は、プライベートプレビューへのアクセスにサインアップできます。

Parallels

人気のあるmacOS仮想化ソフトウェアであるParallelsは、最近、Parallels Desktopエクスペリエンスを向上させるための新しいParallels Desktop VS Code拡張機能を発表しました。GitHub Copilotとの統合により、さらに改善されました。

「優れた例を含む簡単で強力なAPIにより、そうでなければかなりの労力と時間を要したであろう強力なCopilot参加者を迅速に作成することができました。」– Carlos Lapao(ソリューションアーキテクト、Parallels)

新しい@parallelsチャット参加者を介して、自然言語を使用してほとんどの仮想マシン操作を簡単に実行できます。たとえば、「@parallels Windows 11 VMを起動」と言うと、チャット参加者が代わりに操作を実行します。

Screenshot of the Parallels chat participant in the Chat view in VS Code.

PostgreSQL

PostgreSQLは非常に人気のあるリレーショナルデータベースプラットフォームであり、PostgreSQL Chat Participant拡張機能を使用すると、直接チャットできるようになりました。@pgチャット参加者は、データベーススキーマを学習し、データベーススキーマに基づいて回答を提供します。また、スキーマの生成、SQLクエリのヘルプ、データベースと対話するためのコードの生成にも使用できます。

Screenshot of the PostgreSQL chat participant in the Chat view in VS Code.

次のステップ

私たちはまだ始まったばかりです。VS Codeのすべての製品イニシアチブと同様に、AI拡張機能を今後拡張していきます。今年の後半には、以下の機能が追加される予定です。

  • チャット参加者が自動的に起動されるように、意図検出
  • GPT-4o言語モデルのサポート
  • モデルリクエストのトークン制限の増加(現在の制限は4Kトークン)
  • エディターのインラインチャット、ターミナル、ノートブックでのチャット参加者
  • 変数解決API - 拡張機能が拡張機能のドメインからのコンテキストを提供するチャット変数を貢献できるようにする
  • Tools API – 自然言語を引数付きのツール呼び出しに変換します。拡張機能が他の参加者から呼び出すことができるツールを登録できるようにする

本日より皆様にご利用いただけます!

Chat APIとLanguage Model APIは、本日よりVS Code Insidersで利用可能であり、7月初旬にVS Code Stableで利用可能になる予定です。ドキュメントサンプルを使用すると、強力なAI拡張機能を簡単に構築できます。質問やフィードバックがある場合は、リポジトリにissueを開いてください。

すでに本日より、Language Model APIとChat APIに依存する拡張機能をVS Marketplaceに公開できます。本当の疑問は、あなたがどんな素晴らしい拡張機能を作成するかということです。可能性は無限大であり、これらの革新的なアイデアを形にできるのはあなただけです。さあ、私たちの素晴らしい拡張機能開発フローに飛び込み、適切なユーザーコンテキストでAIの力を活用し、あなたの創造性で開発の未来を形作りましょう!構築作業は楽しいものです。さあ、楽しんでください!

ありがとうございます、

IsidorとVS Codeチームより