本文档由 AI 自动翻译。如有任何不准确之处,请参考 英文原版。
Endpoint 是插件对外暴露的 HTTP 接口,用于与外部系统集成。本文以 Neko Cat 项目为例,讲解其结构。完整的插件代码参考 GitHub 仓库。
分组定义
Endpoint 分组是多个 Endpoint 的集合。在 Dify 插件中创建新的 Endpoint 时,可能需要填写以下配置。
除了 Endpoint Name 之外,可通过编写分组的配置来添加表单项。保存后,即可看到该分组包含的多个接口,它们共用同一份配置。
settings (map[string] ProviderConfig):Endpoint 配置定义。
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):来自 werkzeug 的 Request 对象。
values (Mapping):从路径解析出的路径参数。
settings (Mapping):此 Endpoint 的配置信息。
- 返回
- 来自
werkzeug 的 Response 对象,支持流式响应。
- 不支持直接返回字符串。
示例代码:
注意事项
- Endpoint 仅在插件被调用时实例化,并非长期运行的服务。
- 开发 Endpoint 时注意安全性,避免执行危险操作。
- Endpoint 可用于处理 Webhook 回调,或为其他系统提供对接接口。
如果你刚接触插件开发,可先阅读 插件开发入门 和 开发者速查表。
相关资源
Last modified on June 24, 2026