通过Tavily Search API实现实时精准的搜索功能
·
技术背景介绍
随着大型语言模型(LLM)的发展与应用,实时获取准确的信息变得尤为重要。Tavily Search API 专为 AI 代理(如 LLM)设计,提供快速、实时且可靠的搜索结果。此API可以极大地提高AI应用的实用性与实效性。
核心原理解析
Tavily Search API 的设计目标是为AI模型提供高效、准确的信息检索能力。它通过对查询进行分析并访问多个信息源,提供实时的搜索结果,包括标题、URL、内容和答案。该API支持异步调用,适合高并发场景,并且每月提供1000次免费搜索。
代码实现演示
在下面的代码示例中,我们将展示如何集成 Tavily Search API,以便在Python环境中进行实时搜索。
环境准备
首先,我们需要安装相关的Python包:
%pip install -qU "langchain-community>=0.2.11" tavily-python
然后,我们需要设置 Tavily API 的密钥:
import getpass
import os
if not os.environ.get("TAVILY_API_KEY"):
os.environ["TAVILY_API_KEY"] = getpass.getpass("Tavily API key:\n")
实例化 Tavily 搜索工具
通过以下代码可以实例化 Tavily 的搜索工具:
from langchain_community.tools import TavilySearchResults
tool = TavilySearchResults(
max_results=5, # 返回最多5个查询结果
search_depth="advanced", # 采用深入搜索
include_answer=True, # 包括答案在结果中
include_raw_content=True, # 包括原始内容
include_images=True # 包括图像
)
执行搜索查询
示例代码展示了如何使用 Tavily 搜索工具进行查询并获取结果:
# 使用自然语言进行查询
results = tool.invoke({"query": "What happened at the last wimbledon"})
print(results)
在链式调用中使用 Tavily
我们可以将 Tavily 搜索工具与其他 LLM 工具结合使用来构建一个完整的搜索链:
from langchain_openai import ChatOpenAI
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.runnables import RunnableConfig, chain
llm = ChatOpenAI(model="gpt-4o-mini")
prompt = ChatPromptTemplate(
[
("system", "You are a helpful assistant."),
("human", "{user_input}"),
]
)
llm_with_tools = llm.bind_tools([tool])
llm_chain = prompt | llm_with_tools
@chain
def tool_chain(user_input: str, config: RunnableConfig):
input_ = {"user_input": user_input}
ai_msg = llm_chain.invoke(input_, config=config)
tool_msgs = tool.batch(ai_msg.tool_calls, config=config)
return llm_chain.invoke({**input_, "messages": [ai_msg, *tool_msgs]}, config=config)
tool_chain.invoke("who won the last womens singles wimbledon")
应用场景分析
Tavily Search API 可以应用于各种场景,例如:
- 实时新闻获取
- 数据分析与研究
- 大型语言模型的信息补充
实践建议
在使用 Tavily API 时,我们建议根据实际需求调整搜索深度、结果数量等参数。此外,结合其他AI工具可以创造更强大的应用方案。
如果遇到问题欢迎在评论区交流。
—END—
更多推荐


所有评论(0)