Разработка расширений

:robot: This page have been translated automatically. If you want to improve this translation and remove this warning, see project's repository

Расширение — это просто подкаталог в каталоге «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")

results matching ""

    No results matching ""