AI大模型企业应用实战-Agents是什么?

2024-08-18 20:41:59 浏览数 (2)

0 前言

"Agents are not only going to change how everyone interacts with computers. They're also going to upend the software industry, bringing about the biggest revolution in computing since we went from typing commands to tapping on icons." — Bill Gates

智能体(Agent)不仅会改变每个人与计算机交互的方式。它们还将颠覆软件行业,带来自我们从键入命令到点击图标以来最大的计算革命。

-- 比尔盖茨

  • 无需为不同任务使用单独软件
  • 使用日常语言来命令你的设备
  • “代理”是人工智能的高级形式
  • 未来五年将成为现实
  • 人人都有的私人助理Agent
  • 应用在干行百业之中(医疗、教育、娱乐....)

1 Agents是啥?

Al Agents是基于LLM的能够自主理解、自主规划决策、执行复杂任务的智能体,Agents不是ChatGPT的升级版,它不仅告诉你“如何做”,更会帮你去做。若各种Copilot是副驾驶,那Agents就是主驾驶。

Agents = LLM 规划技能 记忆 工具使用。本质上Agents是一个LLM的编排与执行系统:

一个精简的Agents决策流程,一个循环一个任务:

2 LangChain 中的 Agents 咋实现?

  1. 提出需求/问题
  2. 问题 Prompt组合
  3. ReAct Loop
  4. 查找Memory
  5. 查找可用工具
  6. 执行工具并观察结果

如有必要,重复1~6,

  1. 得到最终结果

3 最简单的 Agents 实现

3.0 需求

  • 会做数学题
  • 不知道答案时,可搜索

3.1 安装LLM

使用通义千问模型:

代码语言:python代码运行次数:0复制
!pip install langchain==0.2.1  # 安装langchain
!pip install langchain-community==0.2.1  # 安装第三方集成
!pip install python-dotenv==1.0.1  # 使用 .env 文件来管理应用程序的配置和环境变量
!pip install dashscope==1.19.2  # 安装灵积模型库

定义.env文件,配置API-KEY:

代码语言:python代码运行次数:0复制
import os
from dotenv import find_dotenv, load_dotenv
from langchain_community.llms import Tongyi
from langchain_core.runnables import RunnableSequence
from langchain.prompts import PromptTemplate

load_dotenv(find_dotenv())
DASHSCOPE_API_KEY = os.environ["DASHSCOPE_API_KEY"]
代码语言:python代码运行次数:0复制
# 定义llm
llm = QwenTurboTongyi(temperature=1)

3.2 搭建工具

  • serpai是一个聚合搜索引擎,需安装谷歌搜索包及申请账号 https://serpapi.com/manage-api-key
  • llm-math,封装好的数学计算链
代码语言:python代码运行次数:0复制
# 安装谷歌搜索包
! pip install google-search-results
代码语言:python代码运行次数:0复制
import os 
os.environ["SERPAPI_API_KEY"] = "XXXX"

SERPAPI_API_KEY值即为你刚才注册的免费 Api Key:

代码语言:python代码运行次数:0复制
from langchain.agents import load_tools
tools = load_tools(["serpapi","llm-math"], llm=llm)

3.3 定义agent

使用小样本增强生成类型

代码语言:python代码运行次数:0复制
from langchain.agents import initialize_agent
from langchain.agents import AgentType

agent = initialize_agent(
    tools,
    llm,
    agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION,#这里有不同的类型
    verbose=True,#是否打印日志
)
代码语言:python代码运行次数:0复制
agent.run("请问现任的美国总统是谁?他的年龄的平方是多少?")

0 人点赞