无法主动更新自己的知识,导致出现事实幻觉这是大模型常见的问题。遇到这个问题,你可以让大模型先在本地知识库中进行搜索,检查一下提示中的信息的真实性,如果真实,再进行输出;如果不真实,则进行修正。如果本地知识库找不到相应的信息,可以调用工具进行外部搜索,来检查提示信息的真实性。而代理就是帮助你验证和调用工具的助手。
在LangChain中使用代理,我们只需要理解下面三个元素。
- 大模型:提供逻辑的引擎,负责生成预测和处理输入。
- 与之交互的外部工具:可能包括数据清洗工具、搜索引擎、应用程序等。
- 控制交互的代理:调用适当的外部工具,并管理整个交互过程的流程。
ReAct框架
比如说,你在运营花店的过程中,经常会经历天气变化而导致的鲜花售价变化,那么,每天早上你会如何为你的鲜花定价? 也许你会告诉我,我会去Google上面查一查今天的鲜花成本价啊(行动),也就是我预计的进货的价格,然后我会根据这个价格的高低(观察),来确定我要加价多少(思考),最后计算出一个售价(行动)
使用LangChain和SerpAPI构建智能代理的操作指引
在现代应用中,智能代理可以帮助我们快速获取信息并执行复杂的计算。本文将指导你通过使用LangChain和SerpAPI,构建一个智能代理,来获取市场上玫瑰花的平均价格并计算加价后的售价。
1. 安装必要的包
首先,你需要安装google-search-results包,以便使用SerpAPI进行搜索。打开你的命令行终端,输入以下命令:
pip install google-search-results
2. 设置API密钥
接下来,确保你有OpenAI和SerpAPI的API密钥。将API密钥设置为环境变量,以便在代码中使用。使用以下代码:
import os os.environ["OPENAI_API_KEY"] = 'Your OpenAI API Key'
os.environ["SERPAPI_API_KEY"] = 'Your SerpAPI API Key'
请确保替换'Your OpenAI API Key'和'Your SerpAPI API Key'为你自己的API密钥。
3. 导入库
然后,导入所需的库。你需要LangChain库中相关的模块:
from langchain.agents import load_tools
from langchain.agents import initialize_agent
from langchain.agents import AgentType
from langchain.llms import OpenAI
4. 加载语言模型
接下来,加载用于控制代理的语言模型。这里我们将使用OpenAI的语言模型,并设置温度(temperature)为0,以确保输出更稳定的结果:
llm = OpenAI(temperature=0)
5. 加载工具
现在,我们需要加载将要使用的工具,包括SerpAPI(用于调用Google搜索)和llm-math(用于进行数学计算):
tools = load_tools(["serpapi", "llm-math"], llm=llm)
6. 初始化代理
最后,使用加载的工具、语言模型和代理类型来初始化代理。我们将使用ZERO_SHOT_REACT_DESCRIPTION类型的代理,该代理能够自动形成思考与行动的链条:
agent = initialize_agent(tools, llm, agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION, verbose=True)
7. 运行代理
现在,我们可以使用代理来回答问题。假设我们想知道目前市场上玫瑰花的平均价格并计算加价15%后的售价。我们可以运行以下命令:
result = agent.run("目前市场上玫瑰花的平均价格是多少?如果我在此基础上加价15%卖出,应该如何定价?") print(result)
8. 结果分析
智能代理将自动执行以下步骤:
- 搜索: 代理会在网上查找玫瑰花的平均价格。
- 计算: 一旦获得价格,代理将计算加价15%后的售价。
- 返回结果: 最终,代理将输出加价后的售价。