>Parallel 是一个专为 LLM 和 AI 应用构建的实时网络搜索和内容提取平台。
ParallelMonitor 调用 Parallel 的 Monitor API 按重复周期(1小时到30天)安排查询,并通过 webhook 或轮询在相关新内容出现时通知您。适用于持续的竞争情报、监管跟踪或主题监控。
概述
集成详情
| 类 | 包 | 可序列化 | JS 支持 | 包最新版本 |
|---|---|---|---|---|
ParallelMonitor | langchain-parallel | ❌ | ❌ | <a href="https://pypi.org/project/langchain-parallel/" target="_blank"><img src="https://img.shields.io/pypi/v/langchain-parallel?style=flat-square&label=%20&color=orange" alt="PyPI - Latest version" noZoom height="100" class="rounded" /></a> |
设置
集成位于 langchain-parallel package.
pip install -U langchain-parallel
uv add langchain-parallel
凭证
前往 Parallel 注册并生成 API 密钥。在您的环境中设置 PARALLEL_API_KEY :
if not os.environ.get("PARALLEL_API_KEY"):
os.environ["PARALLEL_API_KEY"] = getpass.getpass("Parallel API key:\n")
实例化
from langchain_parallel import ParallelMonitor
client = ParallelMonitor()
创建监控器
frequency is <n><unit> 其中 unit 为 h, d, or w,结果持续时间位于 [1h, 30d] (e.g. "1h", "6h", "3d", "1w", "2w").
from langchain_parallel import MonitorWebhook
monitor = client.create(
query="Latest peer-reviewed papers on net-energy-gain fusion",
frequency="1d",
metadata={"label": "fusion-watch"},
# Optional: receive new events on a webhook endpoint.
# webhook=MonitorWebhook(
# url="https://example.com/parallel/webhook",
# event_types=["monitor.event.detected"],
# ),
)
print(monitor["monitor_id"], "—", monitor["status"])
有效的 event_types 为 monitor.event.detected, monitor.execution.completed和 monitor.execution.failed。省略该字段以接收全部三个。
检索、列出、删除
got = client.retrieve(monitor["monitor_id"])
monitors = client.list(limit=20)
deleted = client.delete(monitor["monitor_id"])
列出事件
list_events() 返回一个扁平 {"events": [...]} 列表。新创建的监控器通常在首次计划执行之前没有任何事件;调用方式对两种情况都适用。
events = client.list_events(monitor["monitor_id"], lookback_period="7d")
for ev in events.get("events", []):
print(ev["type"], ev.get("event_date"))
要检查单个事件组:
group = client.get_event_group(monitor["monitor_id"], event_group_id="...")
模拟事件
在配置 webhook 处理器时很有用。 simulate_event() 发送一个请求类型的合成事件(默认: monitor.event.detected)到监控器的 webhook。
client.simulate_event(monitor["monitor_id"], event_type="monitor.event.detected")
异步
每个 CRUD 和事件方法都有一个以 a:
monitor = await client.acreate(query="...", frequency="6h")
events = await client.alist_events(monitor["monitor_id"], lookback_period="7d")
await client.adelete(monitor["monitor_id"])
Webhook 签名验证
Webhook 投递使用 Standard Webhooks 方案进行签名(基于 <webhook-id>.<webhook-timestamp>.<body>的 HMAC-SHA256,base64 编码, v1,<sig> 格式,带有重放保护)。使用 verify_webhook:
from langchain_parallel import verify_webhook
ok = verify_webhook(
body,
webhook_id=request.headers["webhook-id"],
webhook_timestamp=request.headers["webhook-timestamp"],
webhook_signature=request.headers["webhook-signature"],
secret=os.environ["PARALLEL_WEBHOOK_SECRET"],
)
签名密钥在 Parallel 仪表板的组织 webhook 端点级别配置,而非按监控器配置。请参阅 webhook 设置 了解完整的投递协议。
响应格式
create() 和 retrieve() 返回一个监控器字典。 list_events() 返回一个扁平的事件包装。
# create() / retrieve()
{
"monitor_id": "mon_abc",
"status": "active",
"query": "...",
"frequency": "1d",
"metadata": {...},
"webhook": {"url": "...", "event_types": [...]},
"created_at": "2026-04-15T10:30:00Z",
# ... additional API-side fields
}
# list_events()
{
"events": [
{
"type": "event", # or "completion" / "error"
"event_date": "2026-04-15T10:30:00Z",
"event_group_id": "...",
# ... event-type-specific fields
},
],
}
API 参考
有关详细文档,请访问 ParallelMonitor API 参考或 监控 API 指南.