[让您的聊天机器人具备工具集成能力:一步步指南]

93 阅读2分钟

让您的聊天机器人具备工具集成能力:一步步指南

引言

在现代的技术发展中,聊天机器人已成为改善用户体验的关键工具。不仅能处理简单的对话,还可以通过集成其他系统和API执行复杂任务。本文旨在指导您如何为聊天机器人添加工具,使其能通过Tavily等工具进行Web搜索。

主要内容

创建环境

首先,确保您有Tavily帐户,并安装以下必要的Python包:

%pip install --upgrade --quiet langchain-community langchain-openai tavily-python

然后,设置环境变量OPENAI_API_KEYTAVILY_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代理服务提高访问稳定性

常见问题和解决方案

  1. 网络访问问题:在使用Tavily或类似服务时,如果您处于网络限制地区,请考虑使用API代理服务以提高访问的稳定性。
  2. API密钥管理:确保将API密钥存储在安全的环境变量中,并且不要将其包含在源代码中。

总结和进一步学习资源

通过本文的指导,您学习了如何为聊天机器人添加工具,以便执行Web搜索等复杂功能。想要深入研究代理和工具的使用,可以参考以下资源:

参考资料

  1. Tavily API Docs
  2. LangChain Documentation

如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!

---END---