Skip to main content

GitHub Models のクイック スタート

GitHub Models を使って初めてのモデルを数分で実行します。

はじめに

GitHub Models は GitHub の AI 推論 API であり、GitHub の資格情報のみを使って AI モデルを実行できます。 認証プロセスを別に行わなくても、OpenAI、Meta、DeepSeek などの多くのさまざまなモデルから選んで、スクリプト、アプリ、さらには GitHub Actions でも使用できます。

このガイドでは、プレイグラウンドでモデルをすばやく試す方法を説明してから、API またはワークフローを使って初めてのモデルを実行する方法を示します。

ステップ 1: プレイグラウンドでモデルを試す

  1. https://github.com/marketplace/models 」を参照してください。

  2. プレイグラウンドで、ドロップダウン メニューから少なくとも 1 つのモデルを選びます。

  3. [Chat] ビューを使ってさまざまなプロンプトをテストし、異なるモデルからの応答を比較します。

  4. [Parameters] ビューを使って、テストしているモデルのパラメーターをカスタマイズし、それらが応答にどのように影響するか確認します。

    メモ

    GitHub にサインインしている場合は、プレイグラウンドをすぐに使えます。 そのアクセスにはユーザーの GitHub アカウントが使われ、セットアップや API キーは必要ありません。

ステップ 2: API 呼び出しを行う

使用できるフィールド、ヘッダー、要求の形式について詳しくは、GitHub Models の API リファレンスをご覧ください。

プログラムでモデルを呼び出すには、次のものが必要です。

  • GitHub アカウント。
  • models スコープの personal access token (PAT)。これは、設定で作成できます。
  1. 次の curl コマンドを実行します。YOUR_GITHUB_PAT はご自分のトークンに置き換えます。

    Bash
      curl -L \
      -X POST \
      -H "Accept: application/vnd.github+json" \
      -H "Authorization: Bearer YOUR_GITHUB_PAT" \
      -H "X-GitHub-Api-Version: 2022-11-28" \
      -H "Content-Type: application/json" \
      https://models.github.ai/inference/chat/completions \
      -d '{"model":"openai/gpt-4.1","messages":[{"role":"user","content":"What is the capital of France?"}]}'
    
  2. 次のような応答を受け取ります。

    {
      "choices": [
        {
          "message": {
            "role": "assistant",
            "content": "The capital of France is **Paris**."
          }
        }
      ],
      ...other fields omitted
    }
    
  3. 他のモデルを試すには、JSON ペイロードの model フィールドの値を、マーケットプレースのものに変更します。

ステップ 3: GitHub Actions でモデルを実行する

  1. リポジトリで、.github/workflows/models-demo.yml にワークフロー ファイルを作成します。

  2. 作成したファイルに次のワークフローを貼り付けます。

    name: GitHub Models Demo
    
    on: [push]
    
    permissions:
      contents: read
      models: read
    
    jobs:
      summarize-repo:
        runs-on: ubuntu-latest
        steps:
          - name: Checkout code
            uses: actions/checkout@v4
    
          - name: Summarize the repository README
            run: |
              SUMMARY_INPUT=$(head -c 4000 README.md)
              PROMPT="Summarize this repository in one sentence. Here is the README:\n$SUMMARY_INPUT"
              PAYLOAD=$(jq -n --arg prompt "$PROMPT" '{
                model: "openai/gpt-4.1",
                messages: [
                  {role: "user", content: $prompt}
                ]
              }')
              RESPONSE=$(curl -sL \
                -X POST \
                -H "Accept: application/vnd.github+json" \
                -H "Authorization: Bearer $" \
                -H "X-GitHub-Api-Version: 2022-11-28" \
                -H "Content-Type: application/json" \
                https://models.github.ai/inference/chat/completions \
                -d "$PAYLOAD")
              echo "$RESPONSE" | jq -r '.choices[0].message.content'
    

    メモ

    GitHub Models を呼び出すワークフローのアクセス許可ブロックには、models: read を含める必要があります。 GitHub ホステッド ランナーによって、GITHUB_TOKEN が自動的に提供されます。

  3. コミットしてプッシュし、ワークフローをトリガーします。

この例では、プロンプトをモデルに送信し、継続的インテグレーション (CI) ワークフローで応答を使用する方法を示します。 Issue の要約、バグ レポートに足りない再現手順の検出、pull request への応答など、より高度なユース ケースについては、「AI モデルを開発ワークフローに統合する」をご覧ください。

ステップ 4: 最初のプロンプト ファイルを保存する

GitHub Models では、.prompt.yml ファイルで定義された再利用可能なプロンプトがサポートされています。 このファイルをリポジトリに追加すると、リポジトリの [Models] ページに表示され、プロンプト エディターと評価ツールで直接実行できます。 詳しくは、「Storing prompts in GitHub repositories」をご覧ください。

  1. リポジトリで、summarize.prompt.yml という名前のファイルを作成します。 任意のディレクトリにそれを保存できます。

  2. 作成したファイルに次のプロンプト例を貼り付けます。

    name: One-line summary
    description: Ask the model to summarize a paragraph in one sentence.
    messages:
      - role: user
        content: 'Summarize the following text in one sentence: '
    model: openai/gpt-4o
    
  3. ファイルをコミットしてリポジトリにプッシュします。

  4. リポジトリの [Models] タブに移動します。

  5. ナビゲーション メニューの [ Prompts] をクリックし、プロンプト ファイルをクリックします。

  6. プロンプト エディターでプロンプトが開きます。 [実行] をクリックします。 右側にサイドバーが表示され、入力テキストの入力を求められます。 入力テキストを入力し、右下隅の [Run] をもう一度クリックしてテストします。

    メモ

    プロンプト エディターでは、リポジトリの内容はプロンプトに自動的に渡されません。 入力は手動で指定します。

ステップ 5: 最初の評価を設定する

評価は、異なるモデルが同じ入力にどのように応答するかを測定するのに役立ち、ユース ケースに最適なものを選択できます。

  1. 前のステップで作成した summarize.prompt.yml ファイルに戻ります。

  2. 次の例と一致するようにファイルを更新します。

      name: One-line summary
      description: Ask the model to summarize a paragraph in one sentence.
      messages:
        - role: user
          content: 'Summarize the following text in one sentence: '
      model: openai/gpt-4o
      testData:
        - input: >-
            The museum opened a new dinosaur exhibit this weekend. Families from all
            over the city came to see the life-sized fossils and interactive displays.
          expected: >-
            The museum's new dinosaur exhibit attracted many families with its fossils
            and interactive displays.
        - input: >-
            Lucy baked cookies for the school fundraiser. She spent the entire evening
            in the kitchen to make sure there were enough for everyone.
          expected: Lucy baked cookies all evening to support the school fundraiser.
      evaluators:
        - name: Similarity
          uses: github/similarity
    
  3. ファイルをコミットしてリポジトリにプッシュします。

  4. リポジトリで [Models] タブをクリックします。次に、[ Prompts] をクリックして、プロンプト エディターで同じプロンプトをもう一度開きます。

  5. 左上隅で、ビューを [Edit] から [Compare] に切り替えることができます。 [比較] をクリックします。

  6. 評価は自動的に設定されます。 [Run] をクリックして、結果を表示します。

    ヒント

    [Add prompt] をクリックすると、同じプロンプトを異なるモデルで実行したり、プロンプトの表現を変更したりして、複数のバリエーションを含む推論応答を一度に取得し、評価を並べて表示して、データ主導のモデルの決定を行うことができます。

次のステップ