メモ
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.vision | boolean | モデルが画像入力を処理できるかどうか |
capabilities.limits.vision.supported_media_types | string[] | モデルが受け入れる MIME の種類 (たとえば、 ["image/png", "image/jpeg"]) |
capabilities.limits.vision.max_prompt_images | number | プロンプトあたりのイメージの最大数 |
capabilities.limits.vision.max_prompt_image_size | number | 最大イメージ サイズ (バイト単位) |
ビジョンの制限の種類
vision?: {
supported_media_types: string[];
max_prompt_images: number;
max_prompt_image_size: number; // bytes
};
画像の結果を受け取る
ツールが画像 (スクリーンショットや生成されたグラフなど) を返す場合、結果には base64 でエンコードされたデータを含む "image" コンテンツ ブロックが含まれます。
| フィールド | タイプ | 説明 |
|---|---|---|
type | "image" | コンテンツブロックタイプ判別子 |
data | string | Base64 でエンコードされた画像データ |
mimeType | string | MIME の種類 (たとえば、 "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) - 添付ファイルを含むフォローアップ メッセージの送信