引言
在当今这个信息时代,快速获取准确的信息比以往任何时候都更为重要。Tavily Search API是专为AI代理(如大型语言模型)设计的搜索引擎,能够提供实时、准确、和事实的检索结果。在这篇文章中,我们将深入探讨如何集成Tavily Search API作为信息检索器,并展示其在实际开发中的应用价值。
主要内容
1. 集成步骤
安装所需包
首先,我们需要安装langchain-community和tavily-python包。这两个包为我们提供了与Tavily API交互所需的工具。
%pip install -qU langchain-community tavily-python
设置API密钥
为了使用Tavily API,我们需要设置API密钥。可以通过getpass模块安全地输入密钥。
import getpass
import os
os.environ["TAVILY_API_KEY"] = getpass.getpass("Enter your Tavily API key: ")
实例化检索器
我们可以通过以下代码创建一个Tavily检索器实例,该实例会在搜索时返回最多三个相关文档。
from langchain_community.retrievers import TavilySearchAPIRetriever
# 使用API代理服务提高访问稳定性
retriever = TavilySearchAPIRetriever(k=3)
2. 使用示例
查询示例
以下代码展示了如何使用TavilySearchAPIRetriever进行一次查询,并输出结果。
query = "what year was breath of the wild released?"
results = retriever.invoke(query)
for doc in results:
print(f"Title: {doc.metadata['title']}\nSource: {doc.metadata['source']}\nContent: {doc.page_content[:100]}...\n")
3. 在链中使用
结合使用Tavily Search API和其他AI工具,可以构建出功能更为全面的应用。以下是一个将Tavily API与语言模型结合使用的链式示例。
from langchain_core.output_parsers import StrOutputParser
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.runnables import RunnablePassthrough
from langchain_openai import ChatOpenAI
prompt = ChatPromptTemplate.from_template(
"""Answer the question based only on the context provided.
Context: {context}
Question: {question}"""
)
llm = ChatOpenAI(model="gpt-3.5-turbo-0125")
def format_docs(docs):
return "\n\n".join(doc.page_content for doc in docs)
chain = (
{"context": retriever | format_docs, "question": RunnablePassthrough()}
| prompt
| llm
| StrOutputParser()
)
response = chain.invoke("how many units did breath of the wild sell in 2020")
print(response)
常见问题和解决方案
-
网络访问限制:在某些地区,访问API可能会遇到限制。这时可以考虑使用API代理服务来提高访问的稳定性。
-
API密钥安全:确保API密钥的安全存储,避免在公共代码仓库中明文出现。
总结和进一步学习资源
通过集成Tavily Search API,我们能够显著提升应用的信息检索能力,并轻松与其他AI组件结合使用,构建更强大的AI应用。对于想要深入了解的读者,建议参阅Tavily API的官方文档以及LangChain的概念指南。
参考资料
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
---END---