Lagent & AgentLego 智能体应用搭建学习笔记

一、Lagent & AgentLego智能体简介:

抛出问题:为什么要有智能体?为了解决大模型的一些痛点问题

什么是智能体:

智能体的组成和经典智能体范式:

Lagent简介:

AgentLego简介:

两者关系:

二、项目实践:

环境配置:

创建开发机:选择镜像为 Cuda12.2-conda,并选择 GPU 为30% A100

进入开发机后,配置一个环境以同时满足 Lagent 和 AgentLego 运行时所需依赖。这里我们使用开发机的Terminal

在开始配置环境前,先创建一个用于存放 Agent 相关文件的目录:

mkdir -p /root/agent

配置conda环境:

studio-conda -t agent -o pytorch-2.1.2

安装 Lagent 和 AgentLego:

官方解释:Lagent 和 AgentLego 都提供了两种安装方法,一种是通过 pip 直接进行安装,另一种则是从源码进行安装。为了方便使用 Lagent 的 Web Demo 以及 AgentLego 的 WebUI,我们选择直接从源码进行安装。 此处附上源码安装的相关帮助文档:

安装命令:

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 ..

GPT总结命令:

命令执行结果:

安装其他依赖:会用到lmdeploy

conda activate agent
pip install lmdeploy==0.3.0

准备 Tutorial:后续的 Demo 需要用到 tutorial 已经写好的脚本

cd /root/agent
git clone -b camp2 https://gitee.com/internlm/Tutorial.git

GPT命令解释:

(一)Lagent Web Demo:

使用 LMDeploy 部署:

 Lagent 的 Web Demo 需要用到 LMDeploy 所启动的 api_server,之后会在 vscode terminal 中执行如下代码使用 LMDeploy 启动一个 api_server。

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:

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端口映射到本地。

Win+X选择以管理员方式打开PowerShell,执行命令:

ssh -CNg -L 7860:127.0.0.1:7860 -L 23333:127.0.0.1:23333 root@ssh.intern-ai.org.cn -p 你的 ssh 端口号

ssh端口号获得方式:

之后要求输入密码进行连接。

接下来在本地的浏览器页面中打开 http://localhost:7860 以使用 Lagent Web Demo。首先输入模型 IP 为 127.0.0.1:23333,在输入完成后按下回车键以确认。并选择插件为 ArxivSearch,以让模型获得在 arxiv 上搜索论文的能力。然后以输入“请帮我搜索 InternLM2 Technical Report” 以让模型搜索书生·浦语2的技术报告。效果如下图所示:可以看到模型正确输出了 InternLM2 技术报告的相关信息

至于最下面一些不相关答案,官方解释是:“尽管还输出了其他论文,但这是由 arxiv 搜索 API 的相关行为导致的”

至此,demo跑通完成。

(二)直接使用 AgentLego:

下载Demo文件:

cd /root/agent
wget http://download.openmmlab.com/agentlego/road.jpg

先准备安装目标检测工具运行时所需依赖:

AgentLego 所实现的目标检测工具是基于 mmdet (MMDetection) 算法库中的 RTMDet-Large 模型,首先安装 mim,然后通过 mim 工具来安装 mmdet:

conda activate agent
pip install openmim==0.3.9
mim install mmdet==3.3.0

使用touch命令在/root/agent/创建一个命名为direct_use.py的空文件脚本:

touch /root/agent/direct_use.py

填入代码:

import re

import cv2
from agentlego.apis import load_tool

# load tool
tool = load_tool('ObjectDetection', device='cuda')

# apply tool
visualization = tool('/root/agent/road.jpg')
print(visualization)

# visualize
image = cv2.imread('/root/agent/road.jpg')

preds = visualization.split('\n')
pattern = r'(\w+) \((\d+), (\d+), (\d+), (\d+)\), score (\d+)'

for pred in preds:
    name, x1, y1, x2, y2, score = re.match(pattern, pred).groups()
    x1, y1, x2, y2, score = int(x1), int(y1), int(x2), int(y2), int(score)
    cv2.rectangle(image, (x1, y1), (x2, y2), (0, 255, 0), 1)
    cv2.putText(image, f'{name} {score}', (x1, y1), cv2.FONT_HERSHEY_SIMPLEX, 0.8, (0, 255, 0), 1)

cv2.imwrite('/root/agent/road_detection_direct.jpg', image)

运行文件脚本进行推理,等待 RTMDet-Large 权重下载并推理完成后,就可以看到如下输出以及一张位于 /root/agent 名为 road_detection_direct.jpg 的图片

python /root/agent/direct_use.py


至此Demo跑通完成。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值