В этом документе на примере проекта Neko Cat объясняется структура эндпоинтов внутри плагина. Эндпоинты — это HTTP-интерфейсы, которые предоставляет плагин; они используются для интеграции с внешними системами. Полный код плагина смотрите в репозитории GitHub.

Определение группы

Группа Endpoint — это набор из нескольких Endpoints. При создании нового Endpoint в плагине Интеллос вам может понадобиться заполнить следующую конфигурацию.
Помимо Endpoint Name, вы можете добавлять новые элементы формы, прописывая конфигурацию группы. После нажатия кнопки сохранения вы увидите несколько интерфейсов, которые она содержит, — все они будут использовать одну и ту же конфигурацию.
Помимо Endpoint Name, вы можете добавлять новые элементы формы, прописывая конфигурацию группы

Структура

  • settings (map[string] ProviderConfig): определение конфигурации эндпоинта.
  • endpoints (list[string], обязательно): указывает на конкретные определения интерфейсов endpoint.

Определение интерфейса

  • path (string): следует стандарту интерфейсов Werkzeug.
  • method (string): метод интерфейса, поддерживаются только HEAD, GET, POST, PUT, DELETE, OPTIONS.
  • extra (object): конфигурация помимо базовых сведений.
    • python (object)
      • source (string): исходный код, реализующий этот интерфейс.

Реализация интерфейса

Вам нужно реализовать подкласс, наследующий от dify_plugin.Endpoint, и реализовать метод _invoke.
  • Входные параметры
    • r (Request): объект Request из werkzeug.
    • values (Mapping): параметры пути, разобранные из path.
    • settings (Mapping): конфигурация для данного Endpoint.
  • Возвращаемое значение
    • Объект Response из werkzeug, поддерживает потоковые ответы.
    • Прямой возврат строки не поддерживается.
Пример кода:

Примечания

  • Эндпоинты создаются только при вызове плагина; это не постоянно работающие сервисы.
  • При разработке эндпоинтов уделяйте внимание безопасности и избегайте выполнения опасных операций.
  • Эндпоинты можно использовать для обработки вебхук-колбэков или для предоставления интерфейсов, к которым подключаются другие системы.
Если вы только осваиваете разработку плагинов, рекомендуем сначала прочитать Начало работы с разработкой плагинов и Шпаргалку разработчика.

Дополнительные материалы


Редактировать эту страницу | Сообщить о проблеме