1.1 配置基础环境
在资源配置中, 30% A100 * 1
的选项,如果使用10% A100 * 1,无法运行。
1.2安装 lagent
# 创建目录以存放代码
mkdir -p /root/agent_camp3
cd /root/agent_camp3
git clone https://github.com/InternLM/lagent.git
cd lagent && git checkout 81e7ace && pip install -e . && cd ..
1.3 Lagent Web Demo 使用
我们将使用 Lagent 的 Web Demo 来体验 InternLM2.5-7B-Chat 的智能体能力。
首先,我们先使用 LMDeploy 部署 InternLM2.5-7B-Chat,并启动一个 API Server。
conda activate demo
lmdeploy serve api_server /share/new_models/Shanghai_AI_Laboratory/internlm2_5-7b-chat --model-name internlm2_5-7b-chat
然后,我们在另一个窗口中启动 Lagent 的 Web Demo。
cd /root/agent_camp3/lagent
conda activate demo
streamlit run examples/internlm2_agent_web_demo.py
在等待两个 server 都完全启动(如下图所示)后,我们在 本地 的 PowerShell 中输入如下指令来进行端口映射:
ssh -CNg -L 8501:127.0.0.1:8501 -L 23333:127.0.0.1:23333 root@ssh.intern-ai.org.cn -p <你的 SSH 端口号>
接下来,在本地浏览器中打开 localhost:8501.
1.4 配置和测试
修改模型名称一栏为 internlm2_5-7b-chat
,修改模型 ip一栏为127.0.0.1:23333
。
然后,我们在插件选择一栏选择 ArxivSearch
,并输入指令“帮我搜索一下 LeNet论文”。
最后,可以看到,模型已经回复了相关信息。
基于 Lagent 自定义智能体
使用 Lagent 自定义工具主要分为以下几步:
-
继承
BaseAction
类 -
实现简单工具的
run
方法;或者实现工具包内每个子工具的功能 -
简单工具的
run
方法可选被tool_api
装饰;工具包内每个子工具的功能都需要被tool_api
装饰
下面我们将实现一个调用 MagicMaker API 以完成文生图的功能。
首先,我们先来创建工具文件:
cd /root/agent_camp3/lagent
touch lagent/actions/magicmaker.py
最后,我们修改 `/root/agent_camp3/lagent/examples/internlm2_agent_web_demo.py` 来适配我们的自定义工具。
1. 在 `from lagent.actions import ActionExecutor, ArxivSearch, IPythonInterpreter` 的下一行添加 `from lagent.actions.magicmaker import MagicMaker`
2. 在第27行添加 `MagicMaker()`。
当运行streamlit run examples/internlm2_agent_web_demo.py
然后,我们再试一下“帮我搜索一下 MindSearch 论文”。