Упражнение: чат
Чему научитесь
Видео 3:54
К концу упражнения вы сможете:
- собрать бесконечный цикл чата в ячейке Jupyter;
- сохранять историю так, чтобы Claude опирался на прошлые ответы.
На странице урока только видео. Ниже — его содержание по субтитрам.
Смотреть урок на Skilljar Chat exercise · 3:54Задача
Короткое упражнение, чтобы убедиться, что всё пока понятно. Нужно собрать очень маленький чат-бот, который работает прямо в Jupyter-ноутбуке. Устроен он так:
- при запуске ячейки пользователь вводит текст через встроенную функцию
input; - введённый текст добавляется в список сообщений;
- список сообщений уходит в API через функцию
chatиз прошлого урока; - Claude возвращает сгенерированный текст, и его тоже добавляют в список сообщений;
- текст печатается, и цикл возвращается к первому шагу.
Как это должно работать
В ролике автор сначала запускает готовое (спрятанное) решение. Ячейка сразу просит ввод. Он пишет «what's one plus one», видит свою реплику и ответ Claude, и ячейка снова просит ввод. Дальше он пишет «add two to that answer» — и Claude отвечает, что если к прошлому ответу, двум, прибавить два, получится четыре. Значит, история разговора сохраняется. Цикл идёт бесконечно, пока его не прервать: кнопка interrupt в ноутбуке и клавиша Escape.
Подсказка
Если вы не знакомы с функцией input, автор даёт шаблон: в начале пустой список сообщений, затем цикл while True, который крутится вечно. Внутри цикла пользователь вводит текст через input, и строка попадает в переменную user_input. Дальше в шаблоне идут комментарии — шаги, которые нужно дописать.
Здесь в ролике предлагают поставить видео на паузу и попробовать решить самим.
Решение
Достаточно пройти по комментариям шаблона:
- добавить
user_inputв список черезadd_user_message; - вызвать Claude через
chat, передав список сообщений, и получить ответ; - добавить ответ в список как сообщение ассистента через
add_assistant_message; - напечатать ответ. По желанию — между разделителями из дефисов, чтобы пользователю было видно, что этот текст сгенерировал ИИ.
messages = []
while True:
user_input = input()
add_user_message(messages, user_input)
answer = chat(messages)
add_assistant_message(messages, answer)
print("---")
print(answer)
print("---")
Проверка: автор запускает ячейку, спрашивает «what's one plus one», получает ответ, затем пишет «add two more» и видит, что прибавить два к «один плюс один» — получится четыре. Простой чат-бот с циклом готов.
Дальше
Следующий урок — system prompt: как задать тон и роль ответа отдельно от реплик.
Оригинал урока: Chat exercise.