技术背景介绍

随着大型语言模型(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—

Logo

中国智能体开发者社区,聚焦智能体与大模型开发,提供前沿资讯、实用工具链、开源项目及行业案例。通过技术沙龙、开发者大赛等活动,促进经验交流与协作,助力开发者快速构建创新智能应用。

更多推荐