Разработка расширений
Расширение — это просто подкаталог в каталоге «extensions».
Веб-интерфейс взаимодействует с установленными расширениями следующим образом:
- выполняется скрипт расширения
install.py
, если он существует. - скрипты расширения в каталоге
scripts
выполняются как обычные пользовательские скрипты, за исключением: -
sys.path
расширен, чтобы включить каталог расширения, поэтому вы можете импортировать в него что угодно, не беспокоясь - вы можете использовать
scripts.basedir()
, чтобы получить текущий каталог расширения (поскольку пользователь может назвать его как угодно) - на страницу добавляются файлы javascript расширения в каталоге
javascript
- в настройки добавлены файлы локализации расширения в директории
localizations
; если есть две локализации с одинаковым названием, они не сливаются, одна заменяет другую. - на страницу добавлен файл расширения
style.css
- если расширение имеет файл
preload.py
в своем корневом каталоге, он загружается до разбора аргументов командной строки - если у расширения
preload.py
есть функцияpreload
, она вызывается, и парсер аргументов командной строки передается ей в качестве аргумента. Вот пример того, как использовать его для добавления аргумента командной строки:def preload(parser): parser.add_argument("--wildcards-dir", type=str, help="directory with wildcards", default=None)
О том, как разрабатывать пользовательские сценарии, которые обычно выполняют большую часть работы расширения, см. в разделе Разработка пользовательских сценариев.
Расширения локализации
Предпочтительный способ локализации проекта — создание расширения. Базовая файловая структура расширения должна быть следующей:
📁 webui root directory
┗━━ 📁 extensions
┗━━ 📁 webui-localization-la_LA <----- name of extension
┗━━ 📁 localizations <----- the single directory inside the extension
┗━━ 📄 la_LA.json <----- actual file with translations
Создайте репозиторий github с этой файловой структурой и попросите любого из людей, перечисленных в разделе «Соавторы», добавить ваше расширение в вики.
Если вашему языку требуется поддержка javascript/css или даже python, вы также можете добавить это в расширение.
install.py
install.py
— это скрипт, который запускается launch.py
, средством запуска, в отдельном процессе перед запуском webui, и он предназначен для установки зависимостей расширения. Он должен находиться в корневом каталоге расширения, а не в каталоге скриптов. Сценарий запускается с переменной среды PYTHONPATH
, установленной на путь веб-интерфейса, поэтому вы можете просто импортировать запуск
и использовать его функциональность:
import launch
if not launch.is_installed("aitextgen"):
launch.run_pip("install aitextgen==0.6.0", "requirements for MagicPrompt")