Skip to main content

Ввод изображения

Отправляйте изображения на сессии Copilot в виде вложений. Существует два способа прикрепить изображения:

  • Файл Attachment (type: "file"): предоставляет абсолютный путь; время выполнения считывает файл с диска, конвертирует его в base64 и отправляет в LLM.
  • Blob attachment (type: "blob"): предоставляет данные с кодом base64 напрямую; полезно, когда изображение уже находится в памяти (например, скриншоты, сгенерированные изображения или данные из API).

Обзор

Диаграмма: диаграмма последовательностей, показывающая описанный процесс.

КонцепцияDescription
Вложение файлаВложение с type: "file" и абсолют path к образу на диске
Прикрепление в виде каплиВложение с type: "blob", закодированным dataв базе 64 , и — mimeTypeне требуется дисковый ввод-вывод
Автоматическое кодированиеДля вложений файлов runtime считывает изображение и автоматически конвертирует его в base64
Автоматическое изменение размераВремя выполнения автоматически изменяет или снижает качество изображений, превышающих специфические для модели ограничения
Возможности обзораМодель должна capabilities.supports.vision = true обрабатывать изображения

Быстрый старт — вложение файла

Прикрепите файл изображения к любому сообщению, используя тип вложения файла. Путь должен быть абсолютным путём к образу на диске.

Языки кода navigation

TypeScript
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: "approve-once" }),
});

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

Быстрый старт — прикрепление к каплям

Если у вас уже есть данные изображения в памяти (например, скриншот, сделанный вашим приложением, или изображение, полученное из API), используйте вложение blob, чтобы отправить их напрямую без записи на диск.

Языки кода navigation

TypeScript
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: "approve-once" }),
});

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",
        },
    ],
});

Поддерживаемые форматы

Поддерживаемые форматы изображений включают JPG, PNG, GIF и другие распространённые типы изображений. Для вложения файлов среда выполнения считывает образ с диска и конвертирует его по необходимости. Для blob-вложений вы предоставляете данные base64 и тип MIME напрямую. Используйте PNG или JPEG для наилучших результатов, так как это самые популярные форматы.

Поле capabilities.limits.vision.supported_media_types модели показывает точные типы MIME, которые она принимает.

Автоматическая обработка

Среда выполнения автоматически обрабатывает изображения, соответствующие ограничениям модели. Ручное изменение размера не требуется.

  • Изображения, превышающие лимиты размеров или размеров модели, автоматически изменяются (сохраняя соотношение сторон) или уменьшаются по качеству.
  • Если изображение не может быть перенесено в пределы ограничений после обработки, оно пропускается и не отправляется в LLM.
  • Поле модели capabilities.limits.vision.max_prompt_image_size указывает максимальный размер изображения в байтах.

Вы можете проверить эти ограничения во время выполнения через объект возможностей модели. Для лучшего опыта используйте изображения разумного размера в формате PNG или JPEG.

Возможности модели зрения

Не все модели поддерживают зрение. Проверьте возможности модели перед отправкой изображений.

Поля возможностей

ПолеТипDescription
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Максимальный размер изображения в байтах

Тип ограничений зрения

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

Получение изображений

Когда инструменты возвращают изображения (например, скриншоты или сгенерированные диаграммы), результат содержит "image" блоки контента с данными, закодированными в base64.

ПолеТипDescription
type"image"Дискриминатор типа блока контента
datastringДанные изображений, закодированных в Base64,
mimeTypestringТип MIME (например, "image/png")

Эти блоки изображений появляются в tool.execution_complete результатах событий. Смотрите руководство AUTOTITLE , чтобы узнать полный жизненный цикл события.

Советы и ограничения

TipDetails
Используйте PNG или JPEG напрямуюИзбегает накладных расходов на конвертацию — эти данные отправляются в LLM as-is
Держите изображения разумного размераБольшие изображения могут быть снижены по качеству, что приводит к потере важных деталей
Используйте абсолютные пути для вложения файловСреда выполнения читает файлы с диска; Относительные пути могут неправильно разрешиться
Используйте вложения blob для данных в памятиКогда у вас уже есть данные base64 (например, скриншоты, ответы API), blob избегает ненужного дискового ввода-вывода
Сначала проверьте поддержку зренияОтправка изображений в модель без зрения приводит к трате токен без визуального понимания
Поддерживается несколько изображенийПрикрепите несколько вложений в одном сообщении, до предела лимита max_prompt_images модели
SVG не поддерживаетсяSVG-файлы являются текстовыми и не подлежат обработке изображений

См. также