Skip to main content
Select language: current language is Japanese
検索する、または Copilot に質問する
メニューを開く

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 リポジトリを参照してください。 Java については、 github/copilot-sdk-java リポジトリを参照してください。

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

メモリ内に画像データが既にある場合 (アプリによってキャプチャされたスクリーンショットや 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 リポジトリを参照してください。 Java については、 github/copilot-sdk-java リポジトリを参照してください。

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

サポートされている画像形式には、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) - 添付ファイルを含むフォローアップ メッセージの送信
    
Morty Proxy This is a proxified and sanitized view of the page, visit original site.