⚠️ 本文档由 AI 自动翻译。如有任何不准确之处,请参考英文原版。
Endpoint
本文档以 Neko Cat 项目为例,介绍插件中 Endpoint 的结构。Endpoint 是插件暴露的 HTTP 接口,可用于与外部系统集成。完整的插件代码请参考 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 回调或为其他系统提供连接接口。
相关资源
- 插件开发基本概念 - 了解插件开发的整体架构。
- Neko Cat 示例 - 扩展插件开发示例。
- 通用规范定义 - 了解 ProviderConfig 等通用结构。
- 开发 Slack Bot 插件示例 - 另一个插件开发示例。
- 插件开发入门 - 从零开始开发插件。
- 反向调用 Dify 服务 - 了解如何使用反向调用功能。
Edit this page | Report an issue