orgtinal: tdcktz Author: 老文 Type: tool
这是一个为Dify工作流设计的Server-Sent Events (SSE) 请求工具插件。它允许你在Dify工作流中建立长连接,接收服务器实时推送的事件流数据,并提供流式输出和最终汇总结果。
当前支持两种sse请求方式:
- 通用SSE 请求,会返回所有事件
- Dify Chatflow SSE 请求,仅仅会返回关键事件也就是最后节点大模型的直接回复内容,那些切块事件不会都返回。
在进行工作流时候,需要调用一些接口,但是这些接口返回的是一个流,需要实时接收数据,所以需要一个插件来支持。
- 🔗 长连接支持: 建立并维护SSE长连接
- 📡 实时数据流: 接收服务器推送的实时事件数据
- 🔐 多种认证方式: 支持Bearer Token、API Key等认证方式
- ⚙️ 灵活配置: 自定义Headers、查询参数、超时设置等
- 🔄 自动重连: 连接失败时自动重试机制
- 📊 流式输出: 实时输出接收到的事件,同时提供最终汇总
- 🛡️ 错误处理: 完善的错误处理和状态监控
在Dify工作流中添加SSE请求工具,配置以下参数:
URL: https://your-sse-server.com/stream
认证类型: none
超时时间: 30
最大事件数: 100
最大持续时间: 300
URL: https://api.example.com/sse/events
认证类型: bearer
认证令牌: your-bearer-token
请求头: |
Content-Type: application/json
X-Custom-Header: custom-value
查询参数: |
stream: true
topic: updates
参数名 | 类型 | 必需 | 默认值 | 说明 |
---|---|---|---|---|
url |
string | ✅ | - | SSE服务器端点URL |
headers |
string | ❌ | - | 自定义HTTP头,每行一个,格式:key: value |
query_params |
string | ❌ | - | URL查询参数,每行一个,格式:key: value |
auth_type |
select | ❌ | none | 认证类型:none/bearer/api_key |
auth_token |
string | ❌ | - | 认证令牌或API密钥 |
auth_header |
string | ❌ | Authorization | API密钥认证的头名称 |
timeout |
number | ❌ | 30 | 连接超时时间(秒) |
max_events |
number | ❌ | 100 | 最大接收事件数 |
max_duration |
number | ❌ | 300 | 最大连接持续时间(秒) |
retry_attempts |
number | ❌ | 3 | 连接失败重试次数 |
{
"type": "event",
"event_number": 1,
"event_type": "message",
"data": "实时接收的数据",
"event_id": "event-123",
"timestamp": "2024-01-01T12:00:00Z"
}
{
"type": "summary",
"status": "completed",
"total_events": 50,
"connection_duration": 25.5,
"events": [...],
"summary": "SSE连接成功,接收到50个事件,耗时25.5秒",
"timestamp": "2024-01-01T12:00:25Z"
}
{
"type": "error",
"status": "failed",
"error": "连接超时",
"timestamp": "2024-01-01T12:00:30Z"
}
- SSE协议支持: 完整实现SSE协议规范
- 事件解析: 支持
data:
、event:
、id:
、retry:
字段 - 流式处理: 使用httpx的stream模式处理长连接
- 异步支持: 支持异步事件处理和超时控制
httpx>=0.25.0
: HTTP客户端,支持流式请求dify_plugin>=0.2.0
: Dify插件框架
URL: https://api.openai.com/v1/chat/completions
认证类型: bearer
认证令牌: sk-your-openai-api-key
请求头: |
Content-Type: application/json
查询参数: |
stream: true
model: gpt-3.5-turbo
URL: https://your-log-server.com/logs/stream
认证类型: api_key
认证令牌: your-api-key
认证头名称: X-API-Key
查询参数: |
level: info
service: web-app
最大事件数: 1000
最大持续时间: 600
欢迎提交Issue和Pull Request来改进这个插件!
MIT License