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工具进行勾选后测试:

posted @ 2024-04-24 00:34  echohao123  阅读(58)  评论(0)    收藏  举报