技术背景介绍
Tavily 搜索 API 是一个专为 AI 代理(如大型语言模型)而设计的搜索引擎。它能够快速提供实时、准确且事实性强的搜索结果。这使得 Tavily 成为可以嵌入到 AI 应用中的理想工具,提升信息获取的效率和准确性。
核心原理解析
Tavily 搜索 API 提供了异步的原生调用方式,可以返回包括标题、URL、内容和答案在内的数据。API 可以根据需求设置不同的搜索深度和结果数量。通过与其他语言模型(如 OpenAI、Anthropic)结合使用,我们可以构建强大的搜索和回答系统。
代码实现演示(重点)
在这部分,我们将展示如何集成 Tavily 搜索 API 并进行实际搜索操作。
1. 安装所需包
首先,我们需要安装相关的 Python 包:
%pip install -qU "langchain-community>=0.2.11" tavily-python
2. 设置 API 凭据
我们需要获取 Tavily API 密钥,可以通过访问官网注册获取。然后设置 API 密钥:
import os
import getpass
if not os.environ.get("TAVILY_API_KEY"):
os.environ["TAVILY_API_KEY"] = getpass.getpass("Tavily API key:\n")
3. 实例化 Tavily 搜索工具
实例化 Tavily 搜索工具,包括设置最大结果数、搜索深度等参数:
from langchain_community.tools import TavilySearchResults
tool = TavilySearchResults(
max_results=5,
search_depth="advanced",
include_answer=True,
include_raw_content=True,
include_images=True,
)
4. 进行搜索调用
使用 Tavily 搜索工具执行搜索操作:
result = tool.invoke({"query": "What happened at the last wimbledon"})
for item in result:
print(f"URL: {item['url']}")
print(f"Content: {item['content']}\n")
结果输出示例:
URL: https://www.theguardian.com/sport/live/2023/jul/16/wimbledon-mens-singles-final-2023-carlos-alcaraz-v-novak-djokovic-live?page=with:block-64b3ff568f08df28470056bf
Content: Carlos Alcaraz recovered from a set down to topple Djokovic 1-6, 7-6(6), 6-1, 3-6, 6-4 and win his first Wimbledon title in a battle for the ages
5. 与语言模型结合
我们可以将 Tavily 搜索工具与其他语言模型结合使用,构建更智能的搜索与回答系统。例如,结合 OpenAI 的 GPT 模型:
import openai
# 使用稳定可靠的API服务
client = openai.OpenAI(
base_url='https://yunwu.ai/v1',
api_key='your-api-key'
)
llm_with_tools = client.bind_tools([tool])
response = llm_with_tools.invoke({"query": "who won the last women's singles wimbledon"})
print(response)
应用场景分析
Tavily 搜索 API 可以广泛应用于以下场景:
- 智能问答系统:与大型语言模型集成,为用户提供实时的、准确的回答。
- 资讯聚合平台:快速汇总最新的新闻和信息。
- 研究工具:帮助研究人员高效地进行文献检索。
实践建议
在实际使用 Tavily 搜索 API 时,应注意以下几点:
- API 配额管理:合理规划和监控 API 调用次数,避免超过配额。
- 搜索深度设置:根据具体需求调整搜索深度,以平衡结果质量与响应速度。
- 结合其他工具:充分利用 Tavily 与其他语言模型结合的优势,提升系统的智能化水平。
如果遇到问题欢迎在评论区交流。
—END—