AI代理学习笔记及实践分享|青训营

67 阅读3分钟

无法主动更新自己的知识,导致出现事实幻觉这是大模型常见的问题。遇到这个问题,你可以让大模型先在本地知识库中进行搜索,检查一下提示中的信息的真实性,如果真实,再进行输出;如果不真实,则进行修正。如果本地知识库找不到相应的信息,可以调用工具进行外部搜索,来检查提示信息的真实性。而代理就是帮助你验证和调用工具的助手。
在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%后的售价。
  • 返回结果: 最终,代理将输出加价后的售价。