首页 > 其他分享 >本地部署modelscope-agent

本地部署modelscope-agent

时间:2023-12-13 17:35:42浏览次数:42  
标签:name 火锅 modelscope cityname agent 海底 adname amap 本地

本地部署modelscope-agent

部署流程

  1. 在modelscope社区创建一个自己的空间(假设name是LocalAgent),clone空间到本地(或云服务器如魔搭Notebook)

  2. git clone https://github.com/modelscope/modelscope-agent
    复制项目中的modelscop_agent文件夹到你刚才clone的空间文件夹LocalAgent里, 接着复制apps/agentfabric文件夹里的所有文件到文件夹LocalAgent里

  3. pip install -r requirements.txt # 注意我们本地目录里的requirement.txt依赖是缺少的(源自apps/agentfabric),需要再将modelscope-agent的requirement.txt内容贴过来。

  4. 需要torch环境:pip3 install torch torchvision torchaudio

  5. python app.py 缺什么模块补什么 --> No module named 'cv2' --> pip install opencv-contrib-python

  6. 发布的时候直接git push到创空间,修改readme --> app.py --> appBot.py

参考:https://modelscope.cn/headlines/article/278

app.py appBot.py 区别

app.py:
官方写的agent,就是帮我们创建agent的那个agent

appBot.py:
也就是我们自己创建agent的创空间发布页面

本地运行可以选择在环境变量配置大模型的apikey:DASHSCOPE_API_KEY='your apikey'

遇到的问题

问题
本地可以运行调试app.py,但是找不到builder_config.json。上传到创空间,发现发布页面(appBot.py)
依然没有变化,使用的是默认的build_config.json。

解决
修改源码项目目录下config_utils.py文件DEFAULT_AGENT_DIR :

# DEFAULT_AGENT_DIR = '/tmp/agentfabric'
DEFAULT_AGENT_DIR = './'# DEFAULT_AGENT_DIR = '/tmp/agentfabric'
DEFAULT_AGENT_DIR = './'

请注意
创空间重启操作,无法依据builder_config.json文件更新appBot.py发布页面,需要先下线再上线

modelscope-agent原理

1.tool检索
检索出和用户输入最相关的几个tool,减少llm的token消耗
2.知识库检索
将相关的知识检索出来,拼到prompt
3.将prompt输入llm
llm自行判断,如何使用外部工具。外部工具调用会获取一个结果,这个结果会再丢给llm,llm判断是结束整体调用,还是再做一个循环,判断下一步要调用什么工具。

Prompt示例

以下是一个prompt示例,包含两轮对话:

image-20231213171724513
|LLM inputs in round 1:
<|im_start|>system
You are a helpful assistant.<|im_end|>
<|im_start|>user
# 工具

## 你拥有如下工具:

amap_weather: amap_weather API。 获取对应城市的天气数据 输入参数: [{"name": "location", "description": "get temperature for a specific location", "required": true}]

amap_poi_query: amap_poi_query API。 获取高德poi信息 输入参数: [{"name": "keywords", "description": "Text information for the location to be retrieved", "required": true}]

## 当你需要调用工具时,请在你的回复中穿插如下的工具调用命令,可以根据需求调用零次或多次:

工具调用
Action: 工具的名称,必须是["amap_weather", "amap_poi_query"]之一
Action Input: 工具的输入
Observation: <result>工具返回的结果</result>
Answer: 根据Observation总结本次工具调用返回的结果,如果结果中出现url,请不要展示出。

```
[链接](url)
```

# 指令

你扮演AI-Agent,你的名字是日程规划小助手。一个全能的行程规划助手,从交通、住宿到美食,全方位为您打造专属的行程规划。
你具有下列具体功能:1. 理解并回应用户指令
2. 根据用户指定判断是否需要进行地点查询
3. 如果用户没有输入城市,默认为杭州
4. 随时与用户沟通,及时解遇到的问题。
下面你将开始扮演日程规划小助手,明白了请说“好的。”,不要说其他的。<|im_end|>
<|im_start|>assistant
好的。<|im_end|>
<|im_start|>user
(你正在扮演日程规划小助手,你可以使用工具:amap_weather,amap_poi_query)请帮我查询北京市天气<|im_end|>
<|im_start|>assistant
好的,北京市的天气查询结果如下:
Action: amap_weather
Action Input: {"location": "北京市"}
Observation: <result>北京市的天气是中雪温度是-2度。</result>
Answer: 北京市的天气是中雪,温度为-2度。<|im_end|>
<|im_start|>user
(你正在扮演日程规划小助手,你可以使用工具:amap_weather,amap_poi_query)杭州有哪些海底捞火锅?<|im_end|>
<|im_start|>assistant
好的,杭州的海底捞火锅查询结果如下:
Action: amap_poi_query
Action Input: {"keywords": "海底捞火锅 杭州"}
Observation: <result>[{'name': '海底捞外送(文泽和达城店)', 'pname': '浙江省', 'cityname': '杭州市', 'adname': '钱塘区', 'address': '2号大街文泽和达城3楼309(文泽路地铁站C2口旁)'}, {'nam
e': '海底捞火锅(奥莱金街店)', 'pname': '浙江省', 'cityname': '杭州市', 'adname': '西湖区', 'address': '转塘街道久耀商业中心1号楼四层407.408室'}, {'name': '海底捞创意手工坊(西田城店)',
'pname': '浙江省', 'cityname': '杭州市', 'adname': '余杭区', 'address': '金家渡路8号西田城F3层'}, {'name': '海底捞火锅(众安广场店)', 'pname': '浙江省', 'cityname': '杭州市', 'adname':
'萧山区', 'address': '北干街道众安广场2幢401-号商铺'}, {'name': '海底捞火锅(西子丁兰广场店)', 'pname': '浙江省', 'cityname': '杭州市', 'adname': '上城区', 'address': '丁兰街道大农港路1
218号西子丁兰广场3层02号商铺'}, {'name': '海底捞火锅(西湖工联cc店)', 'pname': '浙江省', 'cityname': '杭州市', 'adname': '上城区', 'address': '延安路292号工联大厦5层518号'}, {'name': '
海底捞火锅(西溪印象城店)', 'pname': '浙江省', 'cityname': '杭州市', 'adname': '余杭区', 'address': '五常大道西溪印象城二期1F、2F'}, {'name': '海底捞火锅(东城购物中心店)', 'pname': '浙
江省', 'cityname': '杭州市', 'adname': '上城区', 'address': '九沙大道399号地铁东城购物中心4楼'}, {'name': '海底捞火锅(大悦城店)', 'pname': '浙江省', 'cityname': '杭州市', 'adname': '拱
墅区', 'address': '隐秀路1号大悦城购物中心5层L5-B10'}, {'name': '海底捞火锅(金沙印象城店)', 'pname': '浙江省', 'cityname': '杭州市', 'adname': '钱塘区', 'address': '金沙大道97号金沙印
象城6层619室'}]</result>
Answer: 杭州的海底捞火锅有10家,分别是:海底捞外送(文泽和达城店)、海底捞火锅(奥莱金街店)、海底捞创意手工坊(西田城店)、海底捞火锅(众安广场店)、海底捞火锅(西子丁兰广场店)、海底捞火锅(西
湖工联cc店)、海底捞火锅(西溪印象城店)、海底捞火锅(东城购物中心店)、海底捞火锅(大悦城店)、海底捞火锅(金沙印象城店)。<|im_end|>
<|im_start|>user
(你正在扮演日程规划小助手,你可以使用工具:amap_weather,amap_poi_query)上海市天气<|im_end|>
<|im_start|>assistant

|LLM inputs in round 2:
<|im_start|>system
You are a helpful assistant.<|im_end|>
<|im_start|>user
# 工具

## 你拥有如下工具:

amap_weather: amap_weather API。 获取对应城市的天气数据 输入参数: [{"name": "location", "description": "get temperature for a specific location", "required": true}]

amap_poi_query: amap_poi_query API。 获取高德poi信息 输入参数: [{"name": "keywords", "description": "Text information for the location to be retrieved", "required": true}]

## 当你需要调用工具时,请在你的回复中穿插如下的工具调用命令,可以根据需求调用零次或多次:

工具调用
Action: 工具的名称,必须是["amap_weather", "amap_poi_query"]之一
Action Input: 工具的输入
Observation: <result>工具返回的结果</result>
Answer: 根据Observation总结本次工具调用返回的结果,如果结果中出现url,请不要展示出。

```
[链接](url)
```

# 指令

你扮演AI-Agent,你的名字是日程规划小助手。一个全能的行程规划助手,从交通、住宿到美食,全方位为您打造专属的行程规划。
你具有下列具体功能:1. 理解并回应用户指令
2. 根据用户指定判断是否需要进行地点查询
3. 如果用户没有输入城市,默认为杭州
4. 随时与用户沟通,及时解遇到的问题。
下面你将开始扮演日程规划小助手,明白了请说“好的。”,不要说其他的。<|im_end|>
<|im_start|>assistant
好的。<|im_end|>
<|im_start|>user
(你正在扮演日程规划小助手,你可以使用工具:amap_weather,amap_poi_query)请帮我查询北京市天气<|im_end|>
<|im_start|>assistant
好的,北京市的天气查询结果如下:
Action: amap_weather
Action Input: {"location": "北京市"}
Observation: <result>北京市的天气是中雪温度是-2度。</result>
Answer: 北京市的天气是中雪,温度为-2度。<|im_end|>
<|im_start|>user
(你正在扮演日程规划小助手,你可以使用工具:amap_weather,amap_poi_query)杭州有哪些海底捞火锅?<|im_end|>
<|im_start|>assistant
好的,杭州的海底捞火锅查询结果如下:
Action: amap_poi_query
Action Input: {"keywords": "海底捞火锅 杭州"}
Observation: <result>[{'name': '海底捞外送(文泽和达城店)', 'pname': '浙江省', 'cityname': '杭州市', 'adname': '钱塘区', 'address': '2号大街文泽和达城3楼309(文泽路地铁站C2口旁)'}, {'nam
e': '海底捞火锅(奥莱金街店)', 'pname': '浙江省', 'cityname': '杭州市', 'adname': '西湖区', 'address': '转塘街道久耀商业中心1号楼四层407.408室'}, {'name': '海底捞创意手工坊(西田城店)',
'pname': '浙江省', 'cityname': '杭州市', 'adname': '余杭区', 'address': '金家渡路8号西田城F3层'}, {'name': '海底捞火锅(众安广场店)', 'pname': '浙江省', 'cityname': '杭州市', 'adname':
'萧山区', 'address': '北干街道众安广场2幢401-号商铺'}, {'name': '海底捞火锅(西子丁兰广场店)', 'pname': '浙江省', 'cityname': '杭州市', 'adname': '上城区', 'address': '丁兰街道大农港路1
218号西子丁兰广场3层02号商铺'}, {'name': '海底捞火锅(西湖工联cc店)', 'pname': '浙江省', 'cityname': '杭州市', 'adname': '上城区', 'address': '延安路292号工联大厦5层518号'}, {'name': '
海底捞火锅(西溪印象城店)', 'pname': '浙江省', 'cityname': '杭州市', 'adname': '余杭区', 'address': '五常大道西溪印象城二期1F、2F'}, {'name': '海底捞火锅(东城购物中心店)', 'pname': '浙
江省', 'cityname': '杭州市', 'adname': '上城区', 'address': '九沙大道399号地铁东城购物中心4楼'}, {'name': '海底捞火锅(大悦城店)', 'pname': '浙江省', 'cityname': '杭州市', 'adname': '拱
墅区', 'address': '隐秀路1号大悦城购物中心5层L5-B10'}, {'name': '海底捞火锅(金沙印象城店)', 'pname': '浙江省', 'cityname': '杭州市', 'adname': '钱塘区', 'address': '金沙大道97号金沙印
象城6层619室'}]</result>
Answer: 杭州的海底捞火锅有10家,分别是:海底捞外送(文泽和达城店)、海底捞火锅(奥莱金街店)、海底捞创意手工坊(西田城店)、海底捞火锅(众安广场店)、海底捞火锅(西子丁兰广场店)、海底捞火锅(西
湖工联cc店)、海底捞火锅(西溪印象城店)、海底捞火锅(东城购物中心店)、海底捞火锅(大悦城店)、海底捞火锅(金沙印象城店)。<|im_end|>

标签:name,火锅,modelscope,cityname,agent,海底,adname,amap,本地
From: https://www.cnblogs.com/passion2021/p/17899549.html

相关文章

  • CentOS安装并配置Zabbix Agent
     #/bin/bash#Setupzabbixagent.#configurezabbix_agent.conf.#Checkzabbixagentprocess,andinstallzabbixagent.zabbix_num=`ps-ef|grep'zabbix_agentd:listener'|grep-vgrep|wc-l`if[$zabbix_num-gt1];thenecho'zabbixag......
  • 如何在本地跑IPA算法
    参考文章:https://blog.csdn.net/qq_45529538/article/details/1313110971)下载源码https://github.com/ipa320/ipa_coverage_planning 2)安装依赖sudoaptinstallros-noetic-libdlibros-noetic-opengmros-noetic-cob-navigationcoinor-* 3)编译catkin_make-DCATKIN_......
  • 使用git工具将本地文件上传到github仓库
    使用git工具将本地文件上传到github仓库一、基本步骤第一步:我们需要先创建一个本地的版本库(其实也就是一个文件夹)。第二步:在命令行中输入gitinit把这个文件夹变成Git可管理的仓库然后通过gitadd.("."表示当前文件夹下所有内容都提交,也可以通过gitaddFileName/FolderName......
  • gdb本地调试版本移植至ARM-Linux系统
    移植ncurses库本文使用的ncurses版本为ncurses-5.9.tar.gz下载地址:https://ftp.gnu.org/gnu/ncurses/ncurses-5.9.tar.gz 1.       将ncurses压缩包拷贝至Linux主机或使用wget命令下载并解压 tar-zxvf ncurses-5.9.tar.gz 2.       解压后进入到ncurses-5.9目录......
  • 【Android】Android清除本地数据缓存代码
    /**文件名:DataCleanManager.java*描述:主要功能有清除内/外缓存,清除数据库,清除sharedPreference,清除files和清除自定义目录*/importjava.io.File;importandroid.content.Context;importandroid.os.Environment;/***本应用数据清除管理器*/public......
  • 通过命令行启用 logcat 日志本地存储功能
    注意:本文基于Android12进行分析Qidi2023.12.06(MarkDown&Haroopad)0.背景在Android系统上进行开发时,为了分析bug,有些时候我们需要抓取开机日志。很多人知道,通过界面操作进入开发者选项就可以打开logcat日志的本地存储功能,从而很方便的抓取完整的开机日志。但......
  • IntelliJ IDEA无公网远程连接本地Mysql(提高开发效率!!!)
    IDEA作为Java开发最主力的工具,在开发过程中需要经常用到数据库,如mysql数据库,但是在IDEA中只能连接本地数据库,有时候需要访问其他地方如家里或者公司的数据库,将无法访问,内网的局限性导致我们只能在同一网络访问,无法跨网络访问,所以,本例将介绍如何在异地也可以实现远程连接......
  • 使用hardhat + ganache进行本地solidity开发
    hardhat是有本地开发网络的,但ganache是个有界面的程序,也是在本地模拟一个以太坊链,但是界面比较漂亮一些。hardhat.config.jsrequire("@nomicfoundation/hardhat-toolbox");/**@typeimport('hardhat/config').HardhatUserConfig*/module.exports={solidity:"0.8.19",......
  • NodeJS项目build成为本地镜像上传阿里云ACR
    先注册阿里云账号选择“容器镜像服务”->“个人实例”。由于是测试目的,个人版也可以接受。创建命名空间创建镜像仓库选择本地仓库-本示例会从本机推送镜像创建成功后,会有提示相关命令创建一个nodejs项目package.json{"name":"docker_web_app","versio......
  • .net core - 本地使用minikube搭建k8s - k8s(微服务学习) 一
    1.Docker-Desktop首先本地电脑需要安装docker-desktopDocker-Desktop的windows程序下载网址:docker-desktop2.K8s安装1.kubectl下载首先创建一个文件夹目录kubectl得安装可使用2种方式1.直接下载exe后放到该目录下载最新补丁版1.28: kubectl1.28.4。2.在创建目录......