Глава 2: Четкость и Прямота
Глава 2: Четкость и Прямота
Настройка
Запустите следующую ячейку настройки, чтобы загрузить ваш ключ API и установить вспомогательную функцию get_completion.
Урок
Claude лучше всего реагирует на четкие и прямые инструкции.
Думайте о Claude как о любом другом человеке, который только что устроился на работу. Claude не имеет контекста относительно того, что делать, кроме того, что вы ему буквально говорите. Как и при первом инструктаже человека по выполнению задачи, чем подробнее вы объясните Claude, что именно вы хотите, тем лучше и точнее будет его ответ."
Если сомневаетесь, следуйте Золотому Правилу Четких Запросов: - Покажите свой prompt коллеге или другу и попросите их самих следовать инструкциям, чтобы увидеть, смогут ли они получить желаемый результат. Если они запутаются, Claude запутается.
Примеры
Давайте рассмотрим такую задачу, как написание стихов. (Игнорируйте любые несоответствия слогов — LLM пока не очень хорошо считают слоги.)
# Запрос
PROMPT = "Write a haiku about robots."
# Вывод ответа Claude
print(get_completion(PROMPT))
Это хайку достаточно хорошее, но пользователи могут захотеть, чтобы Claude переходил непосредственно к стихотворению без преамбулы «Вот хайку».
Как этого добиться? Мы просто просим об этом!
# Запрос
PROMPT = "Write a haiku about robots. Skip the preamble; go straight into the poem."
# Вывод ответа Claude
print(get_completion(PROMPT))
Вот еще один пример. Давайте спросим Claude, кто лучший баскетболист всех времен. Ниже вы можете увидеть, что хотя Claude перечисляет несколько имен, он не дает однозначного ответа «лучший».
# Запрос
PROMPT = "Who is the best basketball player of all time?"
# Вывод ответа Claude
print(get_completion(PROMPT))
Можем ли мы заставить Claude принять решение и выбрать лучшего игрока? Да! Просто спросите!
# Запрос
PROMPT = "Who is the best basketball player of all time? Yes, there are differing opinions, but if you absolutely had to pick one player, who would it be?"
# Вывод ответа Claude
print(get_completion(PROMPT))
Если вы хотите поэкспериментировать с примерами запросов из этого урока, не меняя ничего выше, прокрутите до конца блокнота урока, чтобы посетить Игровую площадку для примеров.
Упражнения
Упражнение 2.1 - Испанский
Измените SYSTEM_PROMPT, чтобы Claude выдавал свой ответ на испанском языке.
# Системный prompt - это единственное поле, которое вы должны изменить
SYSTEM_PROMPT = "[Replace this text]"
# Запрос
PROMPT = "Hello Claude, how are you?"
# Получение ответа Claude
response = get_completion(PROMPT, SYSTEM_PROMPT)
# Функция для оценки правильности выполнения упражнения
def grade_exercise(text):
return "hola" in text.lower()
# Вывод ответа Claude и соответствующей оценки
print(response)
print("\n--------------------------- GRADING ---------------------------")
print("This exercise has been correctly solved:", grade_exercise(response))
❓ Если хотите получить подсказку, запустите ячейку ниже!
from hints import exercise_2_1_hint; print(exercise_2_1_hint)
Упражнение 2.2 - Только один игрок
Измените PROMPT так, чтобы Claude вообще не уклонялся от ответа и отвечал ТОЛЬКО именем одного конкретного игрока, без каких-либо других слов или знаков препинания.
# Запрос - это единственное поле, которое вы должны изменить
PROMPT = "[Replace this text]"
# Получение ответа Claude
response = get_completion(PROMPT)
# Функция для оценки правильности выполнения упражнения
def grade_exercise(text):
return text == "Michael Jordan"
# Вывод ответа Claude и соответствующей оценки
print(response)
print("\n--------------------------- GRADING ---------------------------")
print("This exercise has been correctly solved:", grade_exercise(response))
❓ Если хотите получить подсказку, запустите ячейку ниже!
from hints import exercise_2_2_hint; print(exercise_2_2_hint)
Упражнение 2.3 - Напишите рассказ
Измените PROMPT так, чтобы Claude ответил как можно более длинным ответом. Если ваш ответ превышает 800 слов, ответ Claude будет оценен как правильный.
# Запрос - это единственное поле, которое вы должны изменить
PROMPT = "[Replace this text]"
# Получение ответа Claude
response = get_completion(PROMPT)
# Функция для оценки правильности выполнения упражнения
def grade_exercise(text):
trimmed = text.strip()
words = len(trimmed.split())
return words >= 800
# Вывод ответа Claude и соответствующей оценки
print(response)
print("\n--------------------------- GRADING ---------------------------")
print("This exercise has been correctly solved:", grade_exercise(response))
❓ Если хотите получить подсказку, запустите ячейку ниже!
from hints import exercise_2_3_hint; print(exercise_2_3_hint)
Поздравляем!
Если вы решили все упражнения до этого момента, вы готовы перейти к следующей главе. Успешных запросов!
Игровая площадка для примеров
Это область, где вы можете свободно экспериментировать с примерами запросов, показанными в этом уроке, и настраивать запросы, чтобы увидеть, как это может повлиять на ответы Claude.
# Запрос
PROMPT = "Write a haiku about robots."
# Вывод ответа Claude
print(get_completion(PROMPT))
# Запрос
PROMPT = "Write a haiku about robots. Skip the preamble; go straight into the poem."
# Вывод ответа Claude
print(get_completion(PROMPT))
# Запрос
PROMPT = "Who is the best basketball player of all time?"
# Вывод ответа Claude
print(get_completion(PROMPT))
# Запрос
PROMPT = "Who is the best basketball player of all time? Yes, there are differing opinions, but if you absolutely had to pick one player, who would it be?"
# Вывод ответа Claude
print(get_completion(PROMPT))