1 AgentLego
1.1 AgentLego 是什么
AgentLego 是一个提供了多种开源工具 API 的多模态工具包,旨在像是乐高积木一样,让用户可以快速简便地拓展自定义工具,从而组装出自己的智能体。通过 AgentLego 算法库,不仅可以直接使用多种工具,也可以利用这些工具,在相关智能体框架(如 Lagent,Transformers Agent 等)的帮助下,快速构建可以增强大语言模型能力的智能体。
AgentLego 有提供如下工具:
通用能力 | 语音相关 | 图像处理 | AIGC |
---|---|---|---|
计算器 谷歌搜索 | 文本 -> 音频(TTS)、音频 -> 文本(STT) | 描述输入图像、识别文本(OCR) 、视觉问答(VQA、人体姿态估计、人脸关键点检测、图像边缘提取(Canny)、深度图生成、生成涂鸦(Scribble)、检测全部目标、检测给定目标、SAM (分割一切、分割给定目标) 等等 | 文生图、图像拓展、删除给定对象、替换给定对象、根据指令修改 等等 |
1.2 AgentLego与Lagent关系
Agent 与 Lagent 基础知识详情可见:Lagent:轻松制作属于你自己的智能体 Agent
Lagent 是一个智能体框架,而 AgentLego 与大模型智能体并不直接相关,而是作为工具包,在相关智能体的功能支持模块发挥作用。
两者之间的关系可以用下图来表示:
2 AgentLego 使用
2.1 环境配置
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 ..
安装其他依赖
pip install lmdeploy==0.3.0
2.2 直接使用 AgentLego
首先下载 demo 图片:
cd /root/agent
wget http://download.openmmlab.com/agentlego/road.jpg
由于 AgentLego 在安装时并不会安装某个特定工具的依赖,因此我们接下来准备安装目标检测工具运行时所需依赖。
AgentLego 所实现的目标检测工具是基于 mmdet (MMDetection) 算法库中的 RTMDet-Large 模型,因此我们首先安装 mim,然后通过 mim 工具来安装 mmdet。这一步所需时间可能会较长,请耐心等待。
conda activate agent
pip install openmim==0.3.9
mim install mmdet==3.3.0
- 在安装完成后,可能会观察到以下现象(如下图所示),但请放心,这是正常现象,这并不会影响到我们的使用
- 如果报错:ModuleNotFoundError: No module named ‘cv2’,安装即可
pip install opencv-python
2.3 作为智能体工具使用
2.3.1 修改相关文件加粗样式
由于 AgentLego 算法库默认使用 InternLM2-Chat-20B 模型,因此我们首先需要修改 /root/agent/agentlego/webui/modules/agents/lagent_agent.py 文件的第 105行位置,将 internlm2-chat-20b 修改为 internlm2-chat-7b,即
def llm_internlm2_lmdeploy(cfg):url = cfg['url'].strip()llm = LMDeployClient(
- model_name='internlm2-chat-20b',
+ model_name='internlm2-chat-7b',url=url,meta_template=INTERNLM2_META,top_p=0.8,top_k=100,temperature=cfg.get('temperature', 0.7),repetition_penalty=1.0,stop_words=['<|im_end|>'])return llm
其中红色表示要删除的内容,绿色表示要添加的内容。
2.3.2 使用 LMDeploy 部署
由于 AgentLego 的 WebUI 需要用到 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
2.3.3 启动 AgentLego WebUI
接下来我们按照下图指示新建一个 terminal 以启动 AgentLego WebUI。在新建的 terminal 中执行如下指令:
conda activate agent
cd /root/agent/agentlego/webui
python one_click.py
在等待 LMDeploy 的 api_server 与 AgentLego WebUI 完全启动后(如下图所示),在本地进行端口映射,将 LMDeploy api_server 的23333端口以及 AgentLego WebUI 的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 端口号