Tavily 搜索 API 是一个专为 AI 代理(如大型语言模型)而设计的搜索引擎。它能够快速提供实时、准确且事实性强的搜索结果。这使得 Tavily 成为可以嵌入到 AI 应用中的理想工具,提升信息获取的效率和准确性。
Tavily 搜索 API 提供了异步的原生调用方式,可以返回包括标题、URL、内容和答案在内的数据。API 可以根据需求设置不同的搜索深度和结果数量。通过与其他语言模型(如 OpenAI、Anthropic)结合使用,我们可以构建强大的搜索和回答系统。
在这部分,我们将展示如何集成 Tavily 搜索 API 并进行实际搜索操作。
首先,我们需要安装相关的 Python 包:
%pip install -qU "langchain-community>=0.2.11" tavily-python
我们需要获取 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")
实例化 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,
)
使用 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
我们可以将 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 时,应注意以下几点:
如果遇到问题欢迎在评论区交流。
—END—