快速构建 LangChain 应用(四)
四、Agent入门
到目前为止,我们创建的所有示例链的每一步都是在事先知道的情况下进行的。最后,我们将学习怎么使用LangChain的agent,在这个例子中,LLM将决定下一步采取哪些步骤。
注意:本文中我们仅展示OpenAI模型来创建的agent,迄今为止,本地化模型在这方面尚不成熟。
在构建Agent时,首先要决定它应该能够访问哪些工具。在这个例子中,我们将给代理提供两个工具:
- 我们刚刚创建的检索器。这将使它能够轻松回答有关 LangSmith 的问题。
- 一个搜索工具。这将使它能够轻松回答需要最新信息的问题。
首先,让我们将刚刚创建的检索器设置成一个工具:
1 | from langchain.tools.retriever import create_retriever_tool |
这里,我们将引入一个搜索工具Tavily。该工具的使用需要先在Tavily网站上进行注册,获得一个API key。然后将其加入到环境变量中。
1 | export TAVILY_API_KEY=... |
如果不想配置API key,也可以跳过这个创建步骤。
1 | from langchain_community.tools.tavily_search import TavilySearchResults |
然后,创建一个包含我们希望使用的工具的列表。
1 | tools = [retriever_tool, search] |
有了这个工具,我们可以创建一个Agent来使用它们。这里,我们将快速浏览一下这个过程 - 要深入了解更具体的内容,请查看代理入门文档。
首先,安装langchain hub
1 | pip install langchainhub |
接下来,我们就可以使用hub来拉取预定义的Prompt。
1 | from langchain_openai import ChatOpenAI |
现在,我们可以调用agent_executor并查看它的响应。例如,我们可以询问它关于 LangSmith 的问题:
1 | agent_executor.invoke({"input": "how can langsmith help with testing?"}) |
我们可以询问他气象问题:
1 | agent_executor.invoke({"input": "what is the weather in SF?"}) |
我们也可以跟他进行对话:
1 | chat_history = [HumanMessage(content="Can LangSmith help test my LLM applications?"), AIMessage(content="Yes!")] |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 AGI Explained!
评论