Ето подробно ръководство за AI модула на Backdrop CMS и употребата на изкуствен интелект (AI) в разработката, базирано на видеото: https://www.youtube.com/live/ClKSnLRRti0
Общ преглед и цели на AI модула
AI модулът за Backdrop CMS е разработен от Джъстин Кайзер с цел да автоматизира и улесни задачите за съдържателните редактори, които те намират за отегчителни. Модулът е преработен (back-ported) от съществуващ модул за Drupal 10, фокусиран върху OpenAI.
Основните цели на модула включват автоматизиране на:
- Създаване на резюмета.
- Добавяне на тагове към статии.
- Добавяне на алтернативен текст (alt text) към изображения.
Този конкретен модул е по-малък от модула на Drupal, тъй като се фокусира единствено върху използването на OpenAI и поддържа само Pinecone като бекенд за векторна база данни. Модулът на Drupal е по-гъвкав и поддържа множество AI бекендове.
Инсталиране и Конфигуриране
Инсталация на модула
Модулът може да бъде инсталиран от хранилището за модули на Backdrop CMS. За демонстрация може да се използва тестова среда на Backdrop CMS. Инсталацията изисква няколко зависимости:
- Key module
- Plugin Manager module (изисква се от Key module)
При първоначално активиране се препоръчва да се включат само Plugin Manager и основният OpenAI модул.
Конфигуриране на OpenAI API ключ
След активиране на модула, той изисква конфигуриране на OpenAI API ключ.
- Набавяне на ключ: Ако все още нямате ключ, може да отидете на платформата на OpenAI, за да се регистрирате и получите такъв. Инструкции за това са налични, например, в уикито на OpenAI модула.
-
Конфигуриране чрез Key module:
- Отидете в настройките на Key module и добавете "OpenAI key", избирайки режим "Authentication and configuration".
- Внимавайте за празни интервали: Уверете се, че няма празни интервали във вашия ключ, когато го поставяте, тъй като това ще попречи на работата му.
- Предишни проблеми с дължината на ключове са били отстранени.
- След като ключът и ключът на организацията са създадени в Key module, трябва да се върнете към екрана за конфигурация на OpenAI модула и да ги запазите.
- Проверка: Ако конфигурацията е успешна, на екрана за конфигурация на OpenAI ще се покажат наличните модели. Ако не се появят, това означава, че има проблем с ключа или ключа на организацията.
Допълнителни модули
- Devel module: Препоръчително е да се активира и Devel module, макар че за разлика от Key и Plugin Manager, той не се изтегля автоматично.
- След като основният OpenAI модул е конфигуриран, можете да активирате и другите подмодули.
Функционалности на AI модула
Модулът предлага различни подмодули и функционалности:
Explorer (еднократен чат)
Това е прост интерфейс за еднократен чат с OpenAI.
- Използване: Можете да въведете един въпрос и да получите отговор в предоставеното поле.
- Настройки: Могат да се избират модели (напр. GPT-4 mini за по-ниски разходи), температура и брой токени (напр. 1000 или 1500).
- Пример: Въвеждане на "Backdrop CMS" изпраща заявка и очаква отговор.
Text-to-Speech
Тази функция позволява преобразуване на текст в MP3 аудио файл.
- Процес: Взима предоставения текст и го конвертира в MP3, използвайки един от гласовете на OpenAI. Генерираният файл се съхранява в управляваните файлове (managed files) на сайта.
- Потенциални приложения: Въпреки че сама по себе си може да не изглежда много полезна, тази възможност може да бъде разширена в други модули. Например, качване на аудио запис на интервю и автоматично генериране на текст за блог пост.
Генериране на съдържание (Nodes)
Този подмодул позволява генериране на множество възли (nodes) със съдържание.
- Настройки: Можете да зададете брой възли (напр. 5), максимален брой думи за заглавието, модел (напр. GPT-4 mini) и брой токени (напр. 1500).
- Производителност: Генерирането на съдържание може да бъде бавно – например, 30 възела могат да отнемат 30 секунди или повече.
- Известни проблеми: Понякога генерираните заглавия съдържат звездички (*), което изисква корекция в подканата или в кода на модула.
Генериране на изображения (DALL-E)
Модулът може да генерира изображения въз основа на текстови подкани.
- Използване: Въвеждате описание на изображението, което искате да създадете (напр. "рожден ден с черен бебе дракон").
- Съвет: Добавянето на думи като "cartoonish" (карикатурен) в подканата може да помогне за желания стил.
- Производителност: Тази функция обикновено отнема повече време от генерирането на възли.
- Резултат: Генерираното изображение се добавя към управляваните файлове на сайта.
Log Analyzer
Тази функция е полезна за разработчици, като предоставя обяснения за съобщенията в логовете на системата.
- Процес: Изпраща съобщението от лога към AI и получава обратно обяснение за неговото значение. Това спестява ръчно копиране и търсене в ChatGPT или Google.
Интеграция с CKEditor
AI модулът интегрира няколко функционалности директно в CKEditor, за да помага на съдържателните редактори.
- Настройки: За да използвате тези функции, трябва да добавите съответния бутон към активната лента с инструменти на CKEditor, чрез конфигурацията на текстовия формат.
-
Функционалности:
- Summarize text (Резюмиране на текст)
- Suggest content title (Предлагане на заглавие на съдържанието)
- Suggest taxonomy (Предлагане на таксономия)
- Използване: Въвеждате текст в тялото на полето, кликвате върху бутона, въвеждате подкана и получавате отговор обратно в тялото на полето.
- Форматиране: Отговорът може да изглежда "неподреден", но може да се реформатира, като се маркира целият текст и се използва функцията за реформатиране.
- Ограничения: В момента настройките за тези функции са кодирани, включително подканите и избора на модел. Бъдеща цел е да се добави конфигурационна страница за тях.
Alt Text за изображения
Тази функция автоматично генерира алтернативен текст за изображения, което е много ценна възможност.
- Използване: Когато добавяте изображение (от нулата или от медийната библиотека), под полето за алтернативен текст се появява бутон "Generate alt text".
- Процес: Модулът взима изображението и го изпраща на GPT-4o Vision, което връща описание на изображението като alt text.
- Интеграция: Работи и в CKEditor.
- Ограничения: В момента няма контрол върху детайлността на генерирания алт текст. Бъдеща цел е да се добави конфигурационна страница за редактиране на подканата и модела, използван за генериране на алт текст. Текущата подкана е същата като тази в новия модул на Drupal.
Embeddings
Този подмодул е предшественик за модул за AI търсене, но частта за самото AI търсене все още не е разработена.
Използване на AI (Chat GPT) в разработката на модули
Джъстин Кайзер и Тим Ерик споделят своя опит с използването на AI, по-специално Chat GPT, за подпомагане на разработката на модули:
Общ подход
- Инструменти: Джъстин използва PHPStorm (или VS Code) и Chat GPT 4o (или генеричния GPT). Тим използва Chat GPT за итеративен процес на разработка, като започва с обща заявка и постепенно я подобрява.
- Итерация: Честото подаване на код, получаване на предложения, тестване, получаване на грешки и подаване на грешките обратно на AI е ключово.
Портиране на Drupal модули
- Странично сравнение: При портиране на модул от Drupal 7 или Drupal 10, Джъстин стартира инсталация на Drupal със съответния модул, за да види как изглежда и какво прави, преди да започне портирането към Backdrop.
-
Конвертиране на файлове:
-
Info файл: Копира
infoфайла на Drupal 10 в Chat GPT и го моли да го конвертира за Backdrop CMS. -
Module файл: Прилага същия подход и за
moduleфайла. -
Меню и рутиране: Файловете като
links.menu.yamlи routing файловете от Drupal 10 се конвертират в меню куки (menu hooks) за Backdrop (или Drupal 7) чрез Chat GPT. -
Форми: Настройките на формите също могат да бъдат преобразувани във форми за настройки в
moduleфайла.
-
Info файл: Копира
- Рефакторинг: Често се идентифицират преизползваеми компоненти. Например, клас за обработка на изображения може да се превърне в метод в по-голям клас за OpenAI API.
- Отстраняване на грешки (Debugging): AI обикновено предоставя решения, които са "почти" готови, но често изискват допълнително отстраняване на грешки, особено що се отнася до специфични структури на фреймуърка (напр. масиви на формите в Backdrop).
Интеракция с Chat GPT
- Директна употреба: Копиране и поставяне на код директно в уеб браузъра или самостоятелното приложение на Chat GPT.
-
Предоставяне на контекст:
-
Документация: Подаване на линкове към документация, например за специфични куки на Backdrop (като
hook_field_widget_form_alter). - Примери за код: Включване на съществуващи имплементации на куки от ядрото или други модули, за да помогнете на AI да разбере контекста.
- Качване на файлове: Възможно е да се качват множество файлове или дори скрийншоти на уебсайта, за да се поискат CSS промени или преместване на елементи.
- Съобщения за грешки: Копиране и поставяне на точни съобщения за грешки, за да може AI да предложи корекции и обяснения за тях.
-
Документация: Подаване на линкове към документация, например за специфични куки на Backdrop (като
-
Итеративен процес:
- AI предоставя код, вие го имплементирате, получавате грешка, връщате грешката на AI, и то предлага актуализиран код.
- Понякога AI може да "заседне" на конкретен отговор или да започне да повтаря решения, което налага стартиране на нов чат.
-
Подобряване на кода:
-
Можете да поискате от AI да направи кода по-ефективен (напр. да опрости вложени
ifконструкции). - Ако има неразбираем код, може да го поставите и да поискате обяснение.
- Важно е да изисквате пълен код, а не само фрагменти. AI може също да посочва точно местата, където е направило промени.
-
Можете да поискате от AI да направи кода по-ефективен (напр. да опрости вложени
Съвети и добри практики
- Неточности на AI: AI не е перфектно. Винаги преглеждайте изхода му и не разчитайте изцяло на него. Разглеждайте го като сътрудник, а не като окончателен генератор на код.
-
Специфични изисквания:
- Винаги споменавайте изискванията за PHP версия (напр. OpenAI SDK изисква PHP 8.2 или по-нова).
- Посочвайте специфични конвенции на Backdrop (напр. не използвайте синтаксис за къси масиви в ядрото).
- Дефинирайте предварително типовете съдържание и полетата, преди да ги използвате в AI заявките.
-
Управление на зависимости: AI модулът използва
composer.jsonфайл за своите зависимости. За да избегнете конфликти при използване на множество модули със собствени Composer зависимости, може да използвате Composer Manager module. - Разделяне на задачите: При работа с по-сложни модули, концентрирайте се върху индивидуални функции или по-малки части, вместо да се опитвате да обработвате целия модул наведнъж.
- Нов чат: Ако разговорът с AI стане твърде отклонен или зацикли, започнете нов чат, за да изчистите предишната памет.
Важно предупреждение: За да работи OpenAI модулът, PHP версията на сървъра трябва да е 8.2 или по-висока. Това е причината демо сайтът да не е работил по време на презентацията. Проверете README файла на модула за най-актуална информация относно PHP изискванията.