О чём урок
При работе с языковыми моделями довольно часто для стабильной работы достаточно хорошего prompt'а и правильных инструментов. Однако при работе со множеством уникальных сценариев ситуация может усложниться. В этом руководстве мы рассмотрим один из способов решения этой задачи. Мы представим концепцию рутин и передач управления, затем рассмотрим их реализацию и покажем, как их можно использовать для оркестрации нескольких агентов простым, мощным и контролируемым способом. Наконец, мы предоставляем пример репозитория, Swarm, который реализует эти идеи вместе с примерами. Начнем с настройки импортов. Понятие «рутины» не имеет строгого определения и вместо этого призвано охватить идею набора шагов. Конкретно, давайте определим рутину как список инструкций на естественном языке (который мы представим в виде system prompt'а), а также инструменты, необходимые для их выполнения. Рассмотрим пример. Ниже мы определили рутину для агента службы поддержки клиентов, предписывающую ему провести первичную оценку проблемы пользователя, а затем либо предложить решение, либо оформить возврат средств. Мы также определили необходимые функции execute_refund и look_up_item. Мы можем назвать это рутиной службы поддержки, агентом, ассистентом и т.д. – однако сама идея остается той же: набор шагов и инструменты для их выполнения. Основная сила рутин заключается в их простоте и надежности. Обратите внимание, что эти инструкции содержат условные операторы, очень похожие на конечный автомат или ветвление в коде. LLM могут довольно надежно обрабатывать такие случаи для малых и средних рутин, с дополнительным преимуществом «мягкого» следования – LLM может естественным образом направлять разговор, не заходя в тупики. Для выполнения рутины реализуем простой цикл, который: Получает ввод пользователя. Добавляет сообщение пользователя в messages. Вызывает модель. Добавляет ответ модели в messages. Как видите, это сейчас игнорирует вызовы функций, поэтому давайте добавим их. Модели требуют, чтобы функции были отформатированы как function schema. Для удобства мы можем определить вспомогательную функцию, которая преобразует функции Python в соответствующую function schema.
План урока
- Выполнение рутин
- Функции передачи управления
Урок входит в полный доступ. Полный текст и видео открываются после оплаты. Первые уроки каждого курса бесплатны.