Lagent & AgentLego 智能体应用搭建 实践作业
基础作业
(一)完成 Lagent Web Demo 使用
构建基础环境:
studio-conda -t agent -o pytorch-2.1.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 ..
使用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:
conda activate agent
cd /root/agent/lagent/examples
streamlit run internlm2_agent_web_demo.py --server.address 127.0.0.1 --server.port 7860

效果展示:

(二)完成 AgentLego 直接使用
agentlego可以作为工具直接使用来调用工具
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)
agent本身不携带工具,需下载安装:
这里安装目标检测工具
conda activate agent
pip install openmim==0.3.9
mim install mmdet==3.3.0

进阶作业
(一)完成 AgentLego WebUI 使用
修改webui的默认调用大模型20b版本降低到7b (第105行)
vim /root/agent/agentlego/webui/modules/agents/lagent_agent.py

使用LMDeploy启动api-server:

部署webui服务:

WebUI配置并调用:


选择目标检测工具:

效果测试:


(二)使用 AgentLego 实现自定义工具并完成调用
自定义过程:
1.继承 BaseTool 类
2.修改 default_desc 属性(工具功能描述)
3.如有需要,重载 setup 方法(重型模块延迟加载)
4.重载 apply 方法(工具功能实现)
1.创建工具文件:
touch /root/agent/agentlego/agentlego/tools/magicmaker_image_generation.py
2.修改 /root/agent/agentlego/agentlego/tools/init.py 文件,将我们的工具注册在工具列表中:
将 MagicMakerImageGeneration 通过 from .magicmaker_image_generation import MagicMakerImageGeneration 导入到了文件中,并且将其加入了 all 列表中。
3.将MagicMakerImageGeneration工具进行勾选后测试:



浙公网安备 33010602011771号