Skip to main content

Copilot SDK での画像入力の使用

ファイルまたは BLOB の添付ファイルとして Copilot SDK セッションに画像を送信します。

この機能を使用できるユーザーについて

GitHub Copilot SDK は、すべての Copilot プランで使用できます。

メモ

          Copilot SDK は現在 テクニカル プレビューです。 機能と可用性は変更される場合があります。
          Copilot SDK セッションにイメージをアタッチするには、次の 2 つの方法があります。

* 添付ファイル (type: "file") - 絶対パスを指定します。ランタイムは、ファイルをディスクから読み取り、base64 に変換して LLM に送信します。 * BLOB 添付ファイル (type: "blob") - base64 でエンコードされたデータを直接提供します。画像が既にメモリ内にある場合に便利です (たとえば、スクリーンショット、生成された画像、API からのデータ)。

イメージ入力フローのシーケンス図については、 github/copilot-sdk リポジトリを参照してください。

概念説明
          **添付ファイル** | 
          `type: "file"`とディスク上のイメージへの絶対`path`を含む添付ファイル |

| BLOB の添付ファイル | type: "blob"、base64 でエンコードされたdata、およびmimeTypeを含む添付ファイル 。ディスク I/O は必要ありません | | 自動エンコード | 添付ファイルの場合、ランタイムはイメージを読み取り、base64 に自動的に変換します | | 自動サイズ変更 | ランタイムは、モデル固有の制限を超えるイメージのサイズを自動的に変更または品質を下げます | | ビジョン機能 | モデルには、イメージを処理するための capabilities.supports.vision = true が必要です |

クイック スタート: 添付ファイル

添付ファイルの種類を使用して、画像ファイルを任意のメッセージに添付します。 パスは、ディスク上のイメージへの絶対パスである必要があります。

import { CopilotClient } from "@github/copilot-sdk";

const client = new CopilotClient();
await client.start();

const session = await client.createSession({
    model: "gpt-4.1",
    onPermissionRequest: async () => ({ kind: "approved" }),
});

await session.send({
    prompt: "Describe what you see in this image",
    attachments: [
        {
            type: "file",
            path: "/absolute/path/to/screenshot.png",
        },
    ],
});

Python、Go、.NET の例については、 github/copilot-sdk リポジトリを参照してください。

クイック スタート: ブロブ添付ファイル

メモリ内に画像データが既にある場合 (アプリによってキャプチャされたスクリーンショットや API からフェッチされたイメージなど)、BLOB 添付ファイルを使用して、ディスクに書き込まずに直接送信します。

import { CopilotClient } from "@github/copilot-sdk";

const client = new CopilotClient();
await client.start();

const session = await client.createSession({
    model: "gpt-4.1",
    onPermissionRequest: async () => ({ kind: "approved" }),
});

const base64ImageData = "..."; // your base64-encoded image
await session.send({
    prompt: "Describe what you see in this image",
    attachments: [
        {
            type: "blob",
            data: base64ImageData,
            mimeType: "image/png",
            displayName: "screenshot.png",
        },
    ],
});

Python、Go、.NET の例については、 github/copilot-sdk リポジトリを参照してください。

サポートされるフォーマット

サポートされている画像形式には、JPG、PNG、GIF、およびその他の一般的な画像の種類があります。 添付ファイルの場合、ランタイムはディスクからイメージを読み取り、必要に応じて変換します。 BLOB 添付ファイルの場合は、base64 データと MIME の種類を直接指定します。 最も広くサポートされている形式のため、最適な結果を得るには PNG または JPEG を使用します。

モデルの capabilities.limits.vision.supported_media_types フィールドには、受け入れられる正確な MIME の種類が一覧表示されます。

自動処理

ランタイムは、モデルの制約内に収まるようにイメージを自動的に処理します。 手動によるサイズ変更は必要ありません。

  • モデルの寸法またはサイズの制限を超える画像は、自動的にサイズ変更 (縦横比を維持) または品質が低下します。
  • 処理後に制限内にイメージを取り込むことができない場合、イメージはスキップされ、LLM に送信されません。
  • モデルの capabilities.limits.vision.max_prompt_image_size フィールドは、最大イメージ サイズをバイト単位で示します。

ビジョン モデルの機能

すべてのモデルがビジョンをサポートしているわけではありません。 画像を送信する前に、モデルの機能を確認します。

機能フィールド

フィールドタイプ説明
capabilities.supports.visionbooleanモデルが画像入力を処理できるかどうか
capabilities.limits.vision.supported_media_typesstring[]モデルが受け入れる MIME の種類 (たとえば、 ["image/png", "image/jpeg"])
capabilities.limits.vision.max_prompt_imagesnumberプロンプトあたりのイメージの最大数
capabilities.limits.vision.max_prompt_image_sizenumber最大イメージ サイズ (バイト単位)

ビジョンの制限の種類

vision?: {
    supported_media_types: string[];
    max_prompt_images: number;
    max_prompt_image_size: number; // bytes
};

画像の結果を受け取る

ツールが画像 (スクリーンショットや生成されたグラフなど) を返す場合、結果には base64 でエンコードされたデータを含む "image" コンテンツ ブロックが含まれます。

フィールドタイプ説明
type"image"コンテンツブロックタイプ判別子
datastringBase64 でエンコードされた画像データ
mimeTypestringMIME の種類 (たとえば、 "image/png")

これらのイメージ ブロックは、tool.execution_complete イベント結果に現れます。 詳細については、「Copilot SDK のストリーミング イベント」を参照してください。

ヒントと制限事項

ヒント詳細情報
          **PNG または JPEG を使用する** | 変換のオーバーヘッドを回避します。これらは LLM as-is に送信されます |

| 画像のサイズを適度に維持する | 大きな画像は品質が低下する可能性があり、重要な詳細が失われる可能性があります | | 添付ファイルに絶対パスを使用する | ランタイムはディスクからファイルを読み取ります。相対パスが正しく解決されない可能性がある | | インメモリ データに BLOB 添付ファイルを使用する | base64 データ (スクリーンショット、API 応答など) が既にある場合、BLOB は不要なディスク I/O を回避します | | 最初に視覚サポートを確認する | 非ビジョン モデルに画像を送信すると、視覚的な理解なしにトークンが無駄になります | | 複数のイメージがサポートされています | モデルの max_prompt_images 制限まで、複数の添付ファイルを 1 つのメッセージに添付する | | SVG はサポートされていません | SVG ファイルはテキストベースであり、画像処理から除外されます |

詳細については、次を参照してください。

  •         [AUTOTITLE](/copilot/how-tos/copilot-sdk/use-copilot-sdk/streaming-events) - ツールの結果コンテンツ ブロックを含むイベント ライフサイクル
    
  •         [AUTOTITLE](/copilot/how-tos/copilot-sdk/use-copilot-sdk/steering-and-queueing) - 添付ファイルを含むフォローアップ メッセージの送信