参考文档:Tutorial/agent at camp2 · InternLM/Tutorial · GitHub
参考视频:Lagent & AgentLego 智能体应用搭建_哔哩哔哩_bilibili
Lagent轻量级智能体框架Tutorial/agent/lagent.md at camp2 · InternLM/Tutorial · GitHub
AgentLego:Tutorial/agent/agentlego.md at camp2 · InternLM/Tutorial · GitHub
一.智能体的产生背景
大语言模型的局限性:幻觉(模型可能产生虚假信息,与现实严重不符)时效性(模型训练数据过时,无法反映最新趋势和信息)可靠性(面对复杂任务时,可能频繁发错误输出现象)
二.智能体组成
三.智能体范式
四.Lagent & AgentLego
1.Lagent:一个轻量级开源智能体框架,旨在让用户可以高效地构建基于大语言模型的智能体
支持多种智能体范式(如AutoGPT,ReWoo,ReAct)
支持多种工具(如谷歌搜索,Python解释器等)
2.AgentLego
一个多模态工具包,旨在像乐高积木,可以快速简便的拓展自定义工具,从而组装出自己的智能体,支持多个智能体框架,(如Lagent,LangChain,Transformers Agents)
3.两者的关系
Lagent 是一个智能体框架,而 AgentLego 与大模型智能体并不直接相关,而是作为工具包,在相关智能体的功能支持模块发挥作用。
五.实战部分:
1.环境配置
mkdir -p /root/agent
studio-conda -t agent -o pytorch-2.1.2
2.安装Lagent和AgentLego
cd /root/agent
conda activate agent
git clone https://gitee.com/internlm/lagent.git
cd lagent && git checkout 581d9fb && pip install -e . && cd ..
git clone https://gitee.com/internlm/agentlego.git
cd agentlego && git checkout 7769e0d && pip install -e . && cd ..
3.安装其他依赖(在这一步中,我们将会安装其他将要用到的依赖库,如 LMDeploy,可以执行如下命令:)
conda activate agent
pip install lmdeploy==0.3.0
4.准备Tutorial
cd /root/agent
git clone -b camp2 https://gitee.com/internlm/Tutorial.git
六.Lagent Web Demo
1.使用LMDeploy部署:
conda activate agent
lmdeploy serve api_server /root/share/new_models/Shanghai_AI_Laboratory/internlm2-chat-7b \
--server-name 127.0.0.1 \
--model-name internlm2-chat-7b \
--cache-max-entry-count 0.1
启动并使用 Lagent Web Demo
接下来我们按照下图指示新建一个 terminal 以启动 Lagent Web Demo。在新建的 terminal 中执行如下指令:
conda activate agent
cd /root/agent/lagent/examples
streamlit run internlm2_agent_web_demo.py --server.address 127.0.0.1 --server.port 7860
在等待 LMDeploy 的 api_server 与 Lagent Web Demo 完全启动后(如下图所示),在本地进行端口映射,将 LMDeploy api_server 的23333端口以及 Lagent Web Demo 的7860端口映射到本地。可以执行:
ssh -CNg -L 7860:127.0.0.1:7860 -L 23333:127.0.0.1:23333 root@ssh.intern-ai.org.cn -p 你的 ssh 端口号
用Lagent自定义工具(查询天气)
获取 API KEY
为了获得稳定的天气查询服务,我们首先要获取 API KEY。首先打开 开发文档 | 和风天气开发服务 后
注意,确保 1.1 节中的 LMDeploy 服务以及 1.2 节中的 Web Demo 服务已经停止(即 terminal 已关闭),否则会出现 CUDA Out of Memory 或是端口已占用的情况!
conda activate agent
lmdeploy serve api_server /root/share/new_models/Shanghai_AI_Laboratory/internlm2-chat-7b \
--server-name 127.0.0.1 \
--model-name internlm2-chat-7b \
--cache-max-entry-count 0.1
export WEATHER_API_KEY=24ef6780622a4b14b7b66b31ea593980
# 比如 export WEATHER_API_KEY=1234567890abcdef
conda activate agent
cd /root/agent/Tutorial/agent
streamlit run internlm2_weather_web_demo.py --server.address 127.0.0.1 --server.port 7860
七.直接使用 AgentLego
1.首先下载 demo 文件
cd /root/agent
wget http://download.openmmlab.com/agentlego/road.jpg
2.由于 AgentLego 在安装时并不会安装某个特定工具的依赖,因此我们接下来准备安装目标检测工具运行时所需依赖。
conda activate agent
pip install openmim==0.3.9
mim install mmdet==3.3.0
3.新建python文件 touch /root/agent/direct_use.py 以直接使用目标检测工具
接下来在执行 python /root/agent/direct_use.py
以进行推理。在等待 RTMDet-Large 权重下载并推理完成后,我们就可以看到如下输出以及一张位于 /root/agent 名为 road_detection_direct.jpg 的图片: