
Комментарии 4
В попытках достичь максимальной точности и качества, какой лучше сформировать промпт?
Моя задача: Описать картинку на входе в JSON формате. При этом чем точнее визуальные характеристики соберет > тем лучше.
Как пример задача: на входе коллаж, на выходе JSON содержащий инфу о всех фотографиях их размерах и содержимому.
Сейчас я иду по структуре: Роль > Задача > Требования > Пример ответа на выходе.
Интересно ваше мнение :)
Какой интересный вопрос! Спасибо.
Исходя из вашего комментария, попробую порассуждать, как бы составляла промт. Сначала бы определилась с метриками, которые мне нужны от коллажа и желательно строго, чтобы модель не додумывала то что мне не надо. Если я правильно поняла, вам нужны характеристики без художественности, соответственно, роль на мой взгляд тут не имеет значения (рассматривать коллаж как дизайнер, фотограф?). А вот задача и требования критичны. Например - как указывать положение фото в коллаже ( я предлагаю - определять центр прямоугольника, куда вписывается фото или картинка, потому что не знаю, какой формы будут элементы коллажа)
Примерный промт:
1) Контекст
На вход подаётся изображение-коллаж (файл или ссылка).
Нужно выделить каждое под-изображение и описать формальные характеристики:
тип файла, разрешение (px), DPI, глубина цвета, размер файла;
общее количество под-изображений в коллаже;
для каждого под-изображения: координаты центра и bounding box, стиль, тип сцены, позиционное описание для быстрой ручной проверки.
Если каких-то техданных нет (например, DPI у web-картинки) — ставь null и низкую уверенность, укажи это в validation.unknown_fields.
2)Логика (как обрабатывать)
Используй только визуальные признаки и доступные техполя файла.
Все значения давай как пара
"value"+"confidence".Уверенность кодируй словом (
"high" | "medium" | "low") и числомconfidence_scoreв диапазоне 0–1. Рекомендуемые пороги:high ≥ 0.80,0.60 ≤ medium < 0.80,low < 0.60.Система координат: верхний левый угол коллажа = (0,0), ось X вправо, ось Y вниз.
Bounding box — осево-выравненный прямоугольник; помимо
centerукажиbbox(x,y — левый верхний угол).Не добавляй художественных интерпретаций;
description— только для человеко-читаемой локализации.Для стиля/сцены используй контролируемые значения из словарей (можно несколько меток, тогда укажи top-1 в
value, остальные — вalts).
Рекомендуемые словари
scene_type ∈ {portrait, landscape, interior, still_life, documentary, street, macro, product, infographic, abstract, other}style ∈ {realism, impressionism, expressionism, documentary, minimalism, cyberpunk, vintage, flat, 3d_render, comic, watercolor, oil, collage, other}
3) Инструкция (что сделать)
Сформируй JSON со структурой:
file— общие характеристики.images[]— список подизображений с геометрией и классификацией.summary— сжатая сводка об объекте (без дублирования полей).validation— метрики успеха и служебные проверки.
4) Каркас JSON (с метриками)
{ "schema_version": "1.1", "file": { "type": {"value": "JPEG", "confidence": "high", "confidence_score": 0.98}, "resolution": {"value": {"width": 1920, "height": 1080}, "confidence": "high", "confidence_score": 0.98}, "dpi": {"value": 72, "confidence": "medium", "confidence_score": 0.70}, "color_depth": {"value": "24-bit", "confidence": "high", "confidence_score": 0.95}, "file_size": {"value": "2.3MB", "confidence": "high", "confidence_score": 0.92} }, "images": [ { "id": 1, "center": {"x": 120, "y": 80}, "bbox": {"x": -50, "y": -50, "width": 340, "height": 260}, "size": {"width": 340, "height": 260}, "orientation_deg": {"value": 0, "confidence": "high", "confidence_score": 0.95}, "scene_type": { "value": "portrait", "confidence": "high", "confidence_score": 0.84, "alts": [{"label": "documentary", "score": 0.42}] }, "style": { "value": "realism", "confidence": "medium", "confidence_score": 0.73, "alts": [{"label": "documentary", "score": 0.55}] }, "description": "изображение второе сверху, первое слева", "metrics": { "bbox_quality": {"value": 0.91, "note": "рамки внутри изображения"}, "edge_touch": {"value": false}, "area_px": 88400, "area_ratio": 0.042 } } ], "summary": { "total_images": {"value": 9, "confidence": "high", "confidence_score": 0.97}, "canvas": { "resolution": {"value": "1920x1080", "confidence": "high", "confidence_score": 0.98}, "type": {"value": "JPEG", "confidence": "high", "confidence_score": 0.98}, "dpi": {"value": 72, "confidence": "medium", "confidence_score": 0.70}, "color_depth": {"value": "24-bit", "confidence": "high", "confidence_score": 0.95}, "file_size": {"value": "2.3MB", "confidence": "high", "confidence_score": 0.92} } }, "validation": { "json_valid": true, "counts_match": { "value": true, "confidence": "high", "confidence_score": 0.99, "details": "images.length == summary.total_images.value" }, "coverage_ratio": { "value": 0.86, "confidence": "medium", "confidence_score": 0.72, "details": "суммарная площадь bbox / площадь коллажа" }, "overlap_rate": { "value": 0.03, "confidence": "high", "confidence_score": 0.90, "details": "средний IoU по всем парам bbox" }, "bbox_out_of_bounds": [ {"image_id": 1, "issue": "x<0 or y<0 or (x+w)>W or (y+h)>H"} ], "conflicts": [ "В summary и file различается dpi? — нет", "Стиль=realism, но alt=documentary с близким score — проверить вручную" ], "confidence_distribution": { "high": 0.62, "medium": 0.30, "low": 0.08 }, "unknown_fields": ["dpi"], "missing_fields": [], "notes": [ "Грид неявный: рекомендована ручная валидация 'description' для изображений 3 и 7" ], "next_questions": [ "Нужно ли извлечь текст (OCR)?", "Сгенерировать сводку палитры и доминантных цветов?" ] }
}
> Пояснения к полям:
>
> bbox дублирует геометрию для явной проверки (иногда удобнее знать левый верхний угол).
> area_ratio — доля площади подизображения от площади коллажа; coverage_ratio — суммарная доля всех bbox.
> overlap_rate — усреднённый IoU (находит наложения/дубли).
> confidence_distribution помогает мгновенно понять общую «надёжность» разметки.
> * unknown_fields/missing_fields делают пробелы в данных явными.
5) Метрики успеха (встроены и проверяются)
validation.json_valid == true.validation.counts_match.value == true.Все ключевые поля присутствуют:
file,images[],summary.total_images,validation.Каждое значение имеет
confidenceиconfidence_score.Для каждого изображения заданы
centerиbbox/size, плюсdescription.overlap_rateиcoverage_ratioрассчитаны; выходы за границы отражены вbbox_out_of_bounds.Если техполя недоступны — отражены в
unknown_fieldsи отмеченыlow.
6) Итеративность (уточнение)
После выдачи JSON задай один короткий вопрос:
> «Хотите ли вы углублённый анализ: палитра, композиционные оси/правила третей, текст в кадре (OCR), дополнительные стилистические признаки?»
Если модель небольшая и контекстное окно маленькое, то лучше обрабатывать поэтапно, с минимальных метрик и постепенно их добавлять
Мини-промт
На вход подаётся изображение-коллаж.
Задача: вернуть JSON со структурой (file, images[], summary, validation).
Правила:
Используй только визуальные признаки и EXIF.
Каждое значение = {value, confidence, confidence_score}.
Координаты: (0,0) верхний левый угол; bbox = осевой прямоугольник.
Стиль и сцена выбирай из словарей: scene_type {portrait, landscape, interior, still_life, documentary, street, macro, product, infographic, abstract, other} style {realism, impressionism, expressionism, documentary, minimalism, cyberpunk, vintage, flat, 3d_render, comic, watercolor, oil, collage, other}
Недоступные техданные → value=null, confidence=low, занести в validation.unknown_fields.
Вывод: строго JSON по каркасу ниже.
[вставить JSON-шаблон]
Надеюсь, ответила на ваш вопрос)
Универсальный шаблон-промт
Твоя роль:
Ты — [описание роли: архетип, функция, маска].
Твоя миссия — [главная цель и ценность].
Думай так:
— Исходи из [основной логики / принципа мышления].
— Поддерживай [тональность: вдохновляюще, строго, игриво и т.д.].
— Проверяй себя через [метод: научный подход, символизм, эмпатию и т.п.].
Задача:
Отвечай так, чтобы [результат для пользователя: ясность, энергия, новые идеи].
Спасибо за интересную версию. Потестирую ее. Но учитывая, что трансформер обрабатывает и понимает поведенческую модель, а не человеческие намерения, затрудняюсь, как можно описать функционал понятия - миссия или энергия ответа. Я все-таки склоняюсь (но могу ошибаться), что роль и поведенческая маска это не про reasoning модели, а про соответствие шаблону.
Не «ты — эксперт », а «думай так» — альтернативный промтинг для LLM