RAGFlow Tavily工具:AI驱动的智能搜索服务

RAGFlow Tavily工具:AI驱动的智能搜索服务

【免费下载链接】ragflow RAGFlow是一个基于深度文档理解的开源RAG(检索增强生成)引擎。 【免费下载链接】ragflow 项目地址: https://gitcode.com/GitHub_Trending/ra/ragflow

工具概述

Tavily工具是RAGFlow中基于AI的智能搜索服务,专为大语言模型(LLM)优化,提供高效、快速且持久的搜索结果。该工具支持两种核心功能:网页搜索和内容提取,分别通过TavilySearchTavilyExtract两个类实现。

核心功能与实现

1. 智能搜索(TavilySearch)

该功能允许用户通过关键词执行精准搜索,支持领域过滤和结果定制。关键参数包括:

  • query:搜索关键词(最多5个词)
  • topic:搜索类别(general/news)
  • include_domains/exclude_domains:域名过滤列表
  • search_depth:搜索深度(basic/advanced)

实现代码位于TavilySearch类,核心调用逻辑:

self.tavily_client = TavilyClient(api_key=self._param.api_key)
res = self.tavily_client.search(**kwargs)
self._retrieve_chunks(res["results"],
                      get_title=lambda r: r["title"],
                      get_url=lambda r: r["url"],
                      get_content=lambda r: r["raw_content"] if r["raw_content"] else r["content"],
                      get_score=lambda r: r["score"])

2. 内容提取(TavilyExtract)

该功能支持从指定URL提取结构化内容,支持多种格式输出。关键参数包括:

  • urls:目标URL列表(逗号分隔)
  • extract_depth:提取深度(basic/advanced)
  • format:输出格式(markdown/text)

实现代码位于TavilyExtract类,核心调用逻辑:

self.tavily_client = TavilyClient(api_key=self._param.api_key)
res = self.tavily_client.extract(**kwargs)
self.set_output("json", res["results"])

应用场景与示例

1. 市场调研工作流

market_generate_seo_blog.json模板中,Tavily工具用于:

  1. 搜索行业趋势关键词
  2. 提取竞品网站内容
  3. 整合市场数据生成报告

2. 技术文档检索

technical_docs_qa.json模板中,工具配置示例:

{
  "tavily:0": {
    "component": "TavilySearch",
    "parameters": {
      "query": "{sys.query}",
      "topic": "general",
      "include_domains": ["github.com", "readthedocs.io"]
    }
  }
}

配置与使用指南

参数配置

工具参数定义在TavilySearchParamTavilyExtractParam类中,包括数据验证逻辑:

def check(self):
    self.check_valid_value(self.topic, "Tavily topic: should be in 'general/news'", ["general", "news"])
    self.check_valid_value(self.search_depth, "Tavily search depth should be in 'basic/advanced'", ["basic", "advanced"])

环境变量

  • COMPONENT_EXEC_TIMEOUT:组件执行超时时间(默认12秒)
  • TAVILY_API_KEY:API密钥(需用户自行配置)

使用示例

  1. 基础搜索调用:
tool = TavilySearch()
result = tool.invoke(query="ragflow latest features", topic="news", max_results=5)
  1. 内容提取调用:
tool = TavilyExtract()
result = tool.invoke(urls="https://gitcode.com/GitHub_Trending/ra/ragflow", format="markdown")

最佳实践

搜索优化技巧

  1. 使用精准关键词(3-5个词)
  2. 合理设置搜索深度:
    • basic:快速获取概述信息
    • advanced:深度研究场景
  3. 利用领域过滤提高结果相关性

性能优化

  • 控制单次搜索结果数量(建议1-10条)
  • 合理设置超时时间(复杂查询建议延长至30秒)
  • 批量提取URL时控制并发数量

总结与扩展

Tavily工具通过agent/tools/tavily.py实现了高效的AI驱动搜索能力,为RAGFlow提供了强大的外部知识获取渠道。结合不同的agent模板,可快速构建行业解决方案,如市场分析、技术调研、客户支持等场景。

未来扩展方向包括:

  1. 多语言搜索支持
  2. 搜索结果自动摘要
  3. 搜索历史缓存机制

更多使用示例可参考agent/test/dsl_examples/目录下的工作流定义文件。

【免费下载链接】ragflow RAGFlow是一个基于深度文档理解的开源RAG(检索增强生成)引擎。 【免费下载链接】ragflow 项目地址: https://gitcode.com/GitHub_Trending/ra/ragflow

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值