Skip to main content

Copilot スキルセットの構築

Github Copilot skillsets を構築し、カスタム ツールと関数を Copilot 環境に統合する手順について説明します。

はじめに

Github Copilot skillsets は、Copilot が呼び出すことのできる API エンドポイントを定義することで GitHub Copilot の機能を拡張する効率的な方法です。 スキルセットを作成すると、Copilot によって AI の対話がすべて処理されて、エンドポイントからデータまたは機能が提供されます。 このガイドでは、GitHub App でスキルセットを構成して配置する手順を見ていきます。

前提条件

作業を開始する前に、次の準備ができていることを確認します。

  1. 構成済みの GitHub App: スキルセットのコンテナーとして機能する GitHub App が必要です。 まだ設定していない場合は、「Copilot 拡張機能用の GitHub アプリの作成」と「Copilot 拡張機能用の GitHub アプリの構成」を参照してください。
  2. API エンドポイント: スキルごとに 1 つのエンドポイントが必要です。 各エンドポイントでは、次のことが必要です。
    • application/json MIME タイプの POST 要求を受け入れます
    • GitHub からの要求の署名を検証して、配信元を認証し、認可されていないアクセスを防ぐことができます
    • HTTPS 経由でパブリックにアクセスできます

シグネチャの検証の詳細については、「ペイロードが GitHub から送信されていることを確認する」を参照してください。

構成要件

各スキルセットは、GitHub App 内で定義されています。 1 つの GitHub App に、最大で 5 つのスキルを含めることができます。 個々のスキルごとに次のものが必要です。

  • 名前: わかりやすい名前 (例: "問題の取得")。
  • 推論の説明: スキルで行われることと、それを使うべきときについての詳細な説明 (例: "状態やラベルなどの特定の条件に一致する外部の問題を検索する")。
  • API エンドポイント: JSON 要求を受け入れる POST エンドポイント。
  • JSON スキーマ: エンドポイントで想定されているデータの構造。

JSON スキーマの例

この例では、状態文字列とラベル文字列の 2 つのパラメーターを必要とするスキルを示します。 パラメーターを指定しない場合は、型 'object' の空のオブジェクトを要求本文として渡す必要があります。

{
 "type": "object",
 "properties": {
   "status": {
     "type": "string",
     "description": "filter issues by status (open, closed)",
     "enum": ["open", "closed"]
   },
   "label": {
     "type": "string",
     "description": "filter issues by label"
   }
 }
}

この形式を使うと、ユーザーは find open security issues のような自然言語で要求を行うことができ、Copilot は適切な API 呼び出しを構成します。

スキルセットの使用

スキルセットを使うには:

  1. @ に続けて拡張機能の名前を入力します。

  2. プロンプトを自然言語で入力します。

    次に例を示します。

    • @skillset-example generate a lorem ipsum
    • @skillset-example give me sample data with 100 words

Copilot は要求を解釈し、正しいパラメーターを使って適切なスキルを呼び出します。 使うスキルを指定する必要はありません。Copilot が、自然言語の要求と指定された推論の説明からこれを決定します。

スキルセットの設定

  1. GitHub の任意のページの右上隅にある、自分のプロファイル写真をクリックします。
  2. アカウント設定にアクセスしてください。
    • 個人用アカウントが所有するアプリの場合は、[設定] をクリックします。
    • 組織が所有するアプリの場合:
      1. [自分の組織] をクリックします。
      2. 組織の右側にある [設定] をクリックします。
  3. 左側のサイドバーで [ 開発者設定] をクリックします。
  4. 左側のサイドバーで、 [GitHub Apps] をクリックします。
  5. GitHub Apps の一覧で、スキルセット用に構成する GitHub App をクリックします。
  6. 左側のナビゲーション メニューで、[Copilot] を選びます。
  7. [App Type] で、ドロップダウン メニューから [Skillset] を選びます。
  8. 必要に応じて、[Pre-authorization URL] フィールドに、認証プロセスを開始するためにユーザーをリダイレクトする URL を入力します。 特定の機能やデータにアクセスするために API でユーザーを GitHub アカウントに接続する必要がある場合、このステップが必要です。
  9. 追加するスキルごとに (最大 5):
    1. [Add new skill] をクリックします。
    2. スキルの明確な [Name] を入力します (例: "Generate Lorem Ipsum Data")。
    3. Copilot がこのスキルを使うべきときを理解するのに役立つ、詳細な [Inference description] を書きます。
    4. POST 要求を受け取る [API endpoint URL] を追加します。
    5. [Parameter] フィールドに、予想される要求形式を定義する JSON スキーマを追加します。
    6. [Add Definition] をクリックしてスキルを保存します。
  10. [Save] をクリックしてスキルセットを保存します。