Skip to main content
Parallel 是一个专为 LLM 和 AI 应用设计的实时网络搜索和内容提取平台。
ParallelWebSearchTool 提供对 Parallel 搜索 API 的访问,将传统的搜索 → 抓取 → 提取流程简化为单个 API 调用,返回结构化的、针对 LLM 优化的结果。

概述

集成详情

工具功能

  • 实时网络搜索:访问当前网络信息
  • 结构化结果:返回压缩的、针对 LLM 优化的摘录
  • 灵活输入:支持自然语言目标或特定搜索查询
  • 领域过滤:通过源策略包含或排除特定领域
  • 可定制输出:控制结果数量(1-40)和摘录长度(最小 100 字符)
  • 丰富元数据:可选的搜索时间、结果数量和查询信息
  • 异步支持:完整的 async/await 支持及适当的执行器处理
  • 错误处理:全面的错误处理及详细的错误消息

设置

该集成位于 langchain-parallel 包中。

凭据

前往 Parallel 注册并生成 API 密钥。完成后,设置 PARALLEL_API_KEY 环境变量:

实例化

此处展示如何实例化 ParallelWebSearchTool 的实例。该工具可以使用 API 密钥和基础 URL 参数进行配置:

调用

直接使用参数调用

您可以使用 objective(自然语言描述)或特定的 search_queries 来调用该工具。该工具支持各种配置选项,包括领域过滤和元数据收集:

使用 ToolCall 调用

我们也可以使用模型生成的 ToolCall 来调用该工具,在这种情况下将返回 ToolMessage

异步用法

该工具支持完整的 async/await 操作,以便在异步应用中获得更好的性能:

参数详情和验证

该工具执行全面的输入验证,并支持以下参数:

必需参数

必须提供以下至少一项:
  • objective:自然语言描述(最大 5000 个字符)
  • search_queries:搜索查询列表(最多 5 个查询,每个 200 个字符)

可选参数:

  • max_results:返回的结果数量(1-40,默认:10)
  • excerpts:摘录设置字典(例如,{"max_chars_per_result": 1500}
  • mode:搜索模式 - ‘one-shot’ 用于全面结果,‘agentic’ 用于节省 token 的结果
  • source_policy:域过滤,包含 include_domains 和/或 exclude_domains 列表
  • fetch_policy:缓存控制字典(例如,{"max_age_seconds": 86400, "timeout_seconds": 60}
  • include_metadata:包含搜索时间和统计信息(默认:True)
  • timeout:请求超时秒数(可选)

错误处理:

该工具为验证失败和 API 错误提供详细的错误消息。

链式调用

我们可以通过首先将其绑定到 工具调用模型 然后调用它来在链中使用我们的工具:
👉 阅读 OpenAI 聊天模型集成文档

最佳实践

  • 使用具体目标:更具体的目标能带来更好、更有针对性的结果
  • 应用领域过滤:使用 source_policy 专注于权威来源或排除不可靠的域
  • 包含元数据:设置 include_metadata: True 用于调试和性能优化
  • 优雅处理错误:该工具为验证和 API 失败提供详细的错误消息
  • 使用异步以提高性能:在异步应用中使用 ainvoke() 以获得更好的性能

响应格式

该工具返回一个具有如下格式的 structured dictionary:

API 参考

有关所有功能和配置选项的详细文档,请前往 ParallelWebSearchTool API 参考或 Parallel 搜索参考