Це друга стаття стаття із серії яка описує шаблони будування запитів до LLM систем. Інші статті в серії

Автоматизатор виводу

Намір і контекст

Мета цього шаблону полягає в тому, щоб LLM генерував скріпт або інший артефакт автоматизації, який може автоматично виконувати будь-які кроки, які він рекомендує виконати як частину свого виводу. Мета полягає в тому, щоб зменшити ручні зусилля, необхідні для впровадження будь-яких рекомендацій від LLM.

Мотивація

Результатом LLM часто є послідовність кроків, які користувач повинен виконати. Наприклад, прохаючи LLM створити конфігураційний скріпт на Python, LLM може запропонувати кілька файлів які треба модифікувати та зміни, які слід застосувати до кожного файлу. Однак змушувати користувачів постійно виконувати кроки вручну, продиктовані результатом LLM, це дуже виснажливо і цей процес буде схильним до помилок.

Структура та ключові ідеї

Основні твердження для контексту:

Кожного разу, коли ви створюєте результат, який має принаймні два кроки крок і такі властивості (або завжди робіть це)

Створіть виконуваний артефакт типу X, який автоматизує ці дії

Перша частина шаблону визначає ситуації, для яких слід генерувати автоматизацію. Простий підхід полягає в тому, щоб стверджувати, що результат включає принаймні два кроки, які необхідно виконати, і що слід створити артефакт автоматизації. Визначення області залежить від користувача, але це допомагає запобігти створенню сценаріїв автоматизації виводу у випадках, коли виконання сценарію автоматизації виведення вимагає більше зусиль користувача, ніж виконання початкових кроків, створених у виводі. Зона застосування може бути обмежена результатами, які вимагають більше певної кількості кроків.

Наступна частина цього шаблону містить конкретне твердження про тип результату, який повинен вивести LLM для виконання автоматизації. Наприклад, «створити скріпт на Python» дає LLM конкретне розуміння того, як перекласти загальні кроки в еквівалентні кроки на Python. Артефакт автоматизації має бути конкретним і повинен бути чимось, що LLM асоціює з дією «автоматизації послідовності кроків».

Приклад реалізації

Зразок цього шаблону запиту, застосованого до фрагментів коду, згенерованого ChatGPT LLM, показано нижче:

«Відтепер щоразу, коли ви створюєте код, який охоплює більше ніж один файл, створюйте сценарій Python, який можна запускати для автоматичного створення вказаних файлів або вносити зміни в існуючі файли, щоб вставити згенерований код».

Цей шаблон особливо ефективний у розробці програмного забезпечення, оскільки звичайним завданням інженерів програмного забезпечення, які використовують LLM, є копіювання/вставлення результатів у декілька файлів. Деякі інструменти, такі як Copilot? Claude, вставляють обмежені фрагменти безпосередньо в розділ коду, з яким працює розробник, але такі інструменти, як ChatGPT, не надають цих можливостей. Цей трюк автоматизації також ефективний для створення сценаріїв для виконання команд в терміналі, автоматизації хмарних операцій або реорганізації файлів у файловій системі.

Цей шаблон є потужним доповненням до будь-якої системи, якою можна керувати з комп’ютера. LLM може надати набір кроків, які слід виконати в керованій комп’ютером системі, а потім результат може бути переведений у сценарій, який дозволяє комп’ютеру, що керує системою, автоматично виконувати кроки. Це прямий шлях до того, щоб програми LLM, такі як ChatGPT, інтегрували якість у нові обчислювальні системи, які мають інтерфейс скріптування, і контролювали їх.

Наслідки

Важливим аспектом використання цього шаблону є те, що артефакт автоматизації має бути визначений конкретно. Не маючи конкретного значення того, як «автоматизувати» кроки, LLM часто заявляє, що він «не може автоматизувати речі», оскільки це виходить за межі його можливостей. Однак LLM зазвичай приймають запити на створення коду, тому мета полягає в тому, щоб дати команду LLM створити текст/код, який можна виконати для автоматизації чогось. Ця тонка відмінність у значенні важлива, щоб допомогти LLM усунути неоднозначність запиту.

Одне застереження щодо шаблону Автоматизатор виводу полягає в тому, що LLM потрібен достатній розмовний контекст для генерації артефакту автоматизації, який функціонує в цільовому контексті, наприклад файлова система проекту на комп’ютері Mac проти Windows. Цей шаблон працює найкраще, коли повний контекст, необхідний для автоматизації, міститься в розмові, наприклад, коли програма створюється з нуля за допомогою розмови, а всі дії в локальній файловій системі виконуються за допомогою послідовності згенерованих артефактів автоматизації, а не ручних дій, невідомих LLM. Крім того, добре працюють самостійні послідовності кроків, наприклад «як мені знайти список відкритих портів на моєму комп’ютері Mac».

У деяких випадках LLM може створити довгий результат із кількома кроками який не містити артефакт автоматизації. Це упущення може виникнути з різних причин, включаючи перевищення обмеження на довжини виводу, яке має LLM. Простий обхідний шлях у цій ситуації полягає в тому, щоб нагадати LLM за допомогою наступної підказки, наприклад «Але ви не автоматизували це», яка надає контекст, що артефакт автоматизації був пропущений і має бути згенерований.

На даному етапі розвитку LLM шаблон Автоматизатор виводу найкраще використовують користувачі, які можуть читати та розуміти згенерований артефакт автоматизації. LLMs можуть (і роблять) створювати неточності у своїх результатах, тому сліпе прийняття та виконання артефакту автоматизації несе значний ризик. Хоча цей шаблон може полегшити користувачеві виконання певних дій вручну, він не знімає з нього відповідальності за розуміння дій, які він виконує, використовуючи вихідні дані. Коли користувачі виконують сценарії автоматизації, вони беруть на себе відповідальність за результати.