← Claude на русском
Перевод с разбором · для Вани
Адаптировал Claude Opus 4.7 (ИИ) на основе документации Anthropic. Полная версия — в docs/use-examples.html.

Примеры (few-shot)

Адаптация для Вани · 2026-04-23

Зачем тебе это нужно

Для структурированных задач — парсинг заявки, формирование сметы, классификация типа лестницы — примеры работают лучше любого словесного описания формата. Описание говорит, как должно быть; пример показывает, как это выглядит. Для твоего кода-потребителя JSON это критично.

Техника называется few-shot (или multishot) — несколько пар вход-выход прямо в промпте. Противоположное zero-shot: просим без примеров.

Три свойства хорошего набора примеров

Оптимум — 3–5 примеров. Больше — риск переобучения на них.

Как это выглядит в промпте парсинга заявки

Ты парсер заявок на деревянные лестницы. Возвращай JSON по схеме.

<examples>
  <example>
    <input>Здравствуйте, нужна лестница на 2 этаж, из дуба. Высота пролёта около 2.8 м.</input>
    <output>{"floors": 2, "wood_type": "oak", "approx_run_length_mm": 2800, "notes": ""}</output>
  </example>
  <example>
    <input>Хочу винтовую лестницу, сосна, диаметр 1.6м</input>
    <output>{"floors": null, "wood_type": "pine", "approx_run_length_mm": null, "notes": "винтовая, диаметр 1.6 м"}</output>
  </example>
  <example>
    <input>Надо лестницу</input>
    <output>{"floors": null, "wood_type": "unknown", "approx_run_length_mm": null, "notes": "данных недостаточно"}</output>
  </example>
</examples>

Заявка клиента:
{{USER_MESSAGE}}

Что здесь происходит: три разных типа заявки — детальная, частичная, почти пустая. Показываем модели, как реагировать на каждую. {{USER_MESSAGE}} — подстановка из твоего Kotlin-кода.

Как подставить пример в Kotlin

val prompt = promptTemplate
    .replace("{{USER_MESSAGE}}", order.rawText.trim())

val response = openAi.chatCompletion {
    model = "gpt-5.4-mini"
    messages {
        system(prompt)
        user("Верни JSON по схеме.")
    }
}
val json = response.choices.first().message.content
val parsed = Json.decodeFromString<ParsedOrder>(json)

Что здесь происходит: шаблон промпта читается из файла, в нём подставляется реальный текст заявки, запрос уходит в LLM, ответ парсится через kotlinx.serialization в data class. Модель возвращает чистый JSON — потому что так показано в примерах.

Частые ошибки

Что это значит для твоей системы

Полная версия — в docs/use-examples.html.