Ознакомьтесь с нашим постом в блоге Длинный контекстный промптинг для Claude 2.1, чтобы увидеть пример высокоэффективного предварительного заполнения.


Зачем предварительно заполнять ответ Claude?

Предварительное заполнение ответа Claude дает несколько ключевых преимуществ:

  1. Повышенная управляемость: Предоставляя некоторый начальный текст, от которого Claude может продолжить, вы можете направить ответ Claude в желаемом направлении. Это особенно полезно, когда вы хотите, чтобы Claude сосредоточился на определенной теме, сгенерировал определенный тип контента или вел себя определенным образом.
  2. Контроль формата вывода: Предварительное заполнение позволяет указать точный формат, который вы хотите, чтобы Claude использовал для вывода. Это особенно удобно при работе со структурированными форматами данных, такими как JSON или XML. Для получения более подробной информации см. наше руководство по контролю формата вывода.
  3. Поддержание согласованности персонажа: В ролевых сценариях предварительное заполнение ответа Claude может помочь Claude оставаться в образе на протяжении длительного разговора. Постоянно напоминая Claude о его роли в сообщении Assistant, вы можете лучше гарантировать, что Claude сохранит желаемую личность. Для получения дополнительной информации см. как сохранить Claude в образе.

Как предварительно заполнить ответ Claude

Чтобы предварительно заполнить ответ Claude, просто включите желаемый начальный текст в сообщение Assistant при выполнении запроса к API. Вот пример промпта:

РольХороший промпт
UserПожалуйста, извлеките название, размер, цену и цвет из этого описания продукта и выведите их в объекте JSON.

<description>SmartHome Mini - это компактный помощник для умного дома, доступный в черном или белом цвете всего за $49.99. При ширине всего 5 дюймов он позволяет управлять освещением, термостатами и другими подключенными устройствами с помощью голоса или приложения, независимо от того, где вы его разместите в своем доме. Этот доступный маленький хаб обеспечивает удобное управление вашими умными устройствами без помощи рук.</description>
Assistant (prefill){

В этом примере, начиная сообщение Assistant с {, мы ограничиваем вывод Claude остальной частью запрошенной схемы JSON.

РольОтвет
Assistant (ответ Claude)“name”: “SmartHome Mini”,
“size”: “5 inches wide”,
“price”: “$49.99”,
“colors”: [
“black”,
“white”
]
}

Вот как приведенный выше промпт будет выглядеть в коде в формате Messages API:

Python
import anthropic

client = anthropic.Anthropic(
    # defaults to os.environ.get("ANTHROPIC_API_KEY")
    api_key="my_api_key",
)
message = client.messages.create(
    model="claude-2.1",
    max_tokens=1000,
    temperature=0,
    messages=[
        {
            "role": "user",
            "content": "Пожалуйста, извлеките название, размер, цену и цвет из этого описания продукта и выведите их в объекте JSON.\n\n<description>SmartHome Mini - это компактный помощник для умного дома, доступный в черном или белом цвете всего за $49.99. При ширине всего 5 дюймов он позволяет управлять освещением, термостатами и другими подключенными устройствами с помощью голоса или приложения, независимо от того, где вы его разместите в своем доме. Этот доступный маленький хаб обеспечивает удобное управление вашими умными устройствами без помощи рук.\n</description>"
        }
        {
            "role": "assistant",
            "content": "{"
        }
    ]
)
print(message.content)

Дополнительные ресурсы

  • Методы инженерии промптов: Изучите другие стратегии оптимизации ваших промптов и улучшения производительности Claude.
  • Anthropic cookbook: Просмотрите коллекцию блокнотов Jupyter с фрагментами кода для копирования, демонстрирующими высокоэффективные и продвинутые методы, интеграции и реализации с использованием Claude.
  • Библиотека промптов: Вдохновляйтесь подборкой промптов для различных задач и вариантов использования.