让您的聊天机器人具备工具集成能力:一步步指南
引言
在现代的技术发展中,聊天机器人已成为改善用户体验的关键工具。不仅能处理简单的对话,还可以通过集成其他系统和API执行复杂任务。本文旨在指导您如何为聊天机器人添加工具,使其能通过Tavily等工具进行Web搜索。
主要内容
创建环境
首先,确保您有Tavily帐户,并安装以下必要的Python包:
%pip install --upgrade --quiet langchain-community langchain-openai tavily-python
然后,设置环境变量OPENAI_API_KEY和TAVILY_API_KEY。可以使用.env文件:
import dotenv
dotenv.load_dotenv()
创建代理
目标是创建一个能够与用户对话并在需要时查找信息的代理。我们首先初始化Tavily和OpenAI聊天模型:
from langchain_community.tools.tavily_search import TavilySearchResults
from langchain_openai import ChatOpenAI
tools = [TavilySearchResults(max_results=1)]
chat = ChatOpenAI(model="gpt-3.5-turbo-1106", temperature=0)
设置一个支持会话历史记录的提示:
from langchain_core.prompts import ChatPromptTemplate
prompt = ChatPromptTemplate.from_messages(
[
("system", "You are a helpful assistant. You may not need to use tools for every query - the user may just want to chat!"),
("placeholder", "{messages}"),
("placeholder", "{agent_scratchpad}"),
]
)
组装我们的代理:
from langchain.agents import AgentExecutor, create_tool_calling_agent
agent = create_tool_calling_agent(chat, tools, prompt)
agent_executor = AgentExecutor(agent=agent, tools=tools, verbose=True)
运行代理
测试代理以处理简单查询和使用搜索工具查找相关信息。无需查找的简单对话:
from langchain_core.messages import HumanMessage
agent_executor.invoke({"messages": [HumanMessage(content="I'm Nemo!")]})
使用工具的复杂查询:
agent_executor.invoke(
{
"messages": [
HumanMessage(
content="What is the current conservation status of the Great Barrier Reef?"
)
],
}
)
# 使用API代理服务提高访问稳定性
常见问题和解决方案
- 网络访问问题:在使用Tavily或类似服务时,如果您处于网络限制地区,请考虑使用API代理服务以提高访问的稳定性。
- API密钥管理:确保将API密钥存储在安全的环境变量中,并且不要将其包含在源代码中。
总结和进一步学习资源
通过本文的指导,您学习了如何为聊天机器人添加工具,以便执行Web搜索等复杂功能。想要深入研究代理和工具的使用,可以参考以下资源:
参考资料
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
---END---