本地部署modelscope-agent
本地部署modelscope-agent
部署流程
-
在modelscope社區(qū)創(chuàng)建一個(gè)自己的空間(假設(shè)name是LocalAgent),clone空間到本地(或云服務(wù)器如魔搭Notebook)
-
git clone https://github.com/modelscope/modelscope-agent
復(fù)制項(xiàng)目中的modelscop_agent文件夾到你剛才clone的空間文件夾LocalAgent里, 接著復(fù)制apps/agentfabric文件夾里的所有文件到文件夾LocalAgent里 -
pip install -r requirements.txt# 注意我們本地目錄里的requirement.txt依賴(lài)是缺少的(源自apps/agentfabric),需要再將modelscope-agent的requirement.txt內(nèi)容貼過(guò)來(lái)。 -
需要torch環(huán)境:
pip3 install torch torchvision torchaudio -
python app.py缺什么模塊補(bǔ)什么 --> No module named 'cv2' --> pip install opencv-contrib-python -
發(fā)布的時(shí)候直接
git push到創(chuàng)空間,修改readme --> app.py --> appBot.py
參考:https://modelscope.cn/headlines/article/278
app.py appBot.py 區(qū)別
app.py:
官方寫(xiě)的agent,就是幫我們創(chuàng)建agent的那個(gè)agent
appBot.py:
也就是我們自己創(chuàng)建agent的創(chuàng)空間發(fā)布頁(yè)面
本地運(yùn)行可以選擇在環(huán)境變量配置大模型的apikey:DASHSCOPE_API_KEY='your apikey'
遇到的問(wèn)題
問(wèn)題:
本地可以運(yùn)行調(diào)試app.py,但是找不到builder_config.json。上傳到創(chuàng)空間,發(fā)現(xiàn)發(fā)布頁(yè)面(appBot.py)
依然沒(méi)有變化,使用的是默認(rèn)的build_config.json。
解決:
修改源碼項(xiàng)目目錄下config_utils.py文件DEFAULT_AGENT_DIR :
# DEFAULT_AGENT_DIR = '/tmp/agentfabric'
DEFAULT_AGENT_DIR = './'# DEFAULT_AGENT_DIR = '/tmp/agentfabric'
DEFAULT_AGENT_DIR = './'
請(qǐng)注意:
創(chuàng)空間重啟操作,無(wú)法依據(jù)builder_config.json文件更新appBot.py發(fā)布頁(yè)面,需要先下線再上線
modelscope-agent原理
1.tool檢索
檢索出和用戶輸入最相關(guān)的幾個(gè)tool,減少llm的token消耗
2.知識(shí)庫(kù)檢索
將相關(guān)的知識(shí)檢索出來(lái),拼到prompt
3.將prompt輸入llm
llm自行判斷,如何使用外部工具。外部工具調(diào)用會(huì)獲取一個(gè)結(jié)果,這個(gè)結(jié)果會(huì)再丟給llm,llm判斷是結(jié)束整體調(diào)用,還是再做一個(gè)循環(huán),判斷下一步要調(diào)用什么工具。
Prompt示例
以下是一個(gè)prompt示例,包含兩輪對(duì)話:
|LLM inputs in round 1:
<|im_start|>system
You are a helpful assistant.<|im_end|>
<|im_start|>user
# 工具
## 你擁有如下工具:
amap_weather: amap_weather API。 獲取對(duì)應(yīng)城市的天氣數(shù)據(jù) 輸入?yún)?shù): [{"name": "location", "description": "get temperature for a specific location", "required": true}]
amap_poi_query: amap_poi_query API。 獲取高德poi信息 輸入?yún)?shù): [{"name": "keywords", "description": "Text information for the location to be retrieved", "required": true}]
## 當(dāng)你需要調(diào)用工具時(shí),請(qǐng)?jiān)谀愕幕貜?fù)中穿插如下的工具調(diào)用命令,可以根據(jù)需求調(diào)用零次或多次:
工具調(diào)用
Action: 工具的名稱(chēng),必須是["amap_weather", "amap_poi_query"]之一
Action Input: 工具的輸入
Observation: <result>工具返回的結(jié)果</result>
Answer: 根據(jù)Observation總結(jié)本次工具調(diào)用返回的結(jié)果,如果結(jié)果中出現(xiàn)url,請(qǐng)不要展示出。
```
[鏈接](url)
```
# 指令
你扮演AI-Agent,你的名字是日程規(guī)劃小助手。一個(gè)全能的行程規(guī)劃助手,從交通、住宿到美食,全方位為您打造專(zhuān)屬的行程規(guī)劃。
你具有下列具體功能:1. 理解并回應(yīng)用戶指令
2. 根據(jù)用戶指定判斷是否需要進(jìn)行地點(diǎn)查詢(xún)
3. 如果用戶沒(méi)有輸入城市,默認(rèn)為杭州
4. 隨時(shí)與用戶溝通,及時(shí)解遇到的問(wèn)題。
下面你將開(kāi)始扮演日程規(guī)劃小助手,明白了請(qǐng)說(shuō)“好的。”,不要說(shuō)其他的。<|im_end|>
<|im_start|>assistant
好的。<|im_end|>
<|im_start|>user
(你正在扮演日程規(guī)劃小助手,你可以使用工具:amap_weather,amap_poi_query)請(qǐng)幫我查詢(xún)北京市天氣<|im_end|>
<|im_start|>assistant
好的,北京市的天氣查詢(xún)結(jié)果如下:
Action: amap_weather
Action Input: {"location": "北京市"}
Observation: <result>北京市的天氣是中雪溫度是-2度。</result>
Answer: 北京市的天氣是中雪,溫度為-2度。<|im_end|>
<|im_start|>user
(你正在扮演日程規(guī)劃小助手,你可以使用工具:amap_weather,amap_poi_query)杭州有哪些海底撈火鍋?<|im_end|>
<|im_start|>assistant
好的,杭州的海底撈火鍋查詢(xún)結(jié)果如下:
Action: amap_poi_query
Action Input: {"keywords": "海底撈火鍋 杭州"}
Observation: <result>[{'name': '海底撈外送(文澤和達(dá)城店)', 'pname': '浙江省', 'cityname': '杭州市', 'adname': '錢(qián)塘區(qū)', 'address': '2號(hào)大街文澤和達(dá)城3樓309(文澤路地鐵站C2口旁)'}, {'nam
e': '海底撈火鍋(奧萊金街店)', 'pname': '浙江省', 'cityname': '杭州市', 'adname': '西湖區(qū)', 'address': '轉(zhuǎn)塘街道久耀商業(yè)中心1號(hào)樓四層407.408室'}, {'name': '海底撈創(chuàng)意手工坊(西田城店)',
'pname': '浙江省', 'cityname': '杭州市', 'adname': '余杭區(qū)', 'address': '金家渡路8號(hào)西田城F3層'}, {'name': '海底撈火鍋(眾安廣場(chǎng)店)', 'pname': '浙江省', 'cityname': '杭州市', 'adname':
'蕭山區(qū)', 'address': '北干街道眾安廣場(chǎng)2幢401-號(hào)商鋪'}, {'name': '海底撈火鍋(西子丁蘭廣場(chǎng)店)', 'pname': '浙江省', 'cityname': '杭州市', 'adname': '上城區(qū)', 'address': '丁蘭街道大農(nóng)港路1
218號(hào)西子丁蘭廣場(chǎng)3層02號(hào)商鋪'}, {'name': '海底撈火鍋(西湖工聯(lián)cc店)', 'pname': '浙江省', 'cityname': '杭州市', 'adname': '上城區(qū)', 'address': '延安路292號(hào)工聯(lián)大廈5層518號(hào)'}, {'name': '
海底撈火鍋(西溪印象城店)', 'pname': '浙江省', 'cityname': '杭州市', 'adname': '余杭區(qū)', 'address': '五常大道西溪印象城二期1F、2F'}, {'name': '海底撈火鍋(東城購(gòu)物中心店)', 'pname': '浙
江省', 'cityname': '杭州市', 'adname': '上城區(qū)', 'address': '九沙大道399號(hào)地鐵東城購(gòu)物中心4樓'}, {'name': '海底撈火鍋(大悅城店)', 'pname': '浙江省', 'cityname': '杭州市', 'adname': '拱
墅區(qū)', 'address': '隱秀路1號(hào)大悅城購(gòu)物中心5層L5-B10'}, {'name': '海底撈火鍋(金沙印象城店)', 'pname': '浙江省', 'cityname': '杭州市', 'adname': '錢(qián)塘區(qū)', 'address': '金沙大道97號(hào)金沙印
象城6層619室'}]</result>
Answer: 杭州的海底撈火鍋有10家,分別是:海底撈外送(文澤和達(dá)城店)、海底撈火鍋(奧萊金街店)、海底撈創(chuàng)意手工坊(西田城店)、海底撈火鍋(眾安廣場(chǎng)店)、海底撈火鍋(西子丁蘭廣場(chǎng)店)、海底撈火鍋(西
湖工聯(lián)cc店)、海底撈火鍋(西溪印象城店)、海底撈火鍋(東城購(gòu)物中心店)、海底撈火鍋(大悅城店)、海底撈火鍋(金沙印象城店)。<|im_end|>
<|im_start|>user
(你正在扮演日程規(guī)劃小助手,你可以使用工具: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。 獲取對(duì)應(yīng)城市的天氣數(shù)據(jù) 輸入?yún)?shù): [{"name": "location", "description": "get temperature for a specific location", "required": true}]
amap_poi_query: amap_poi_query API。 獲取高德poi信息 輸入?yún)?shù): [{"name": "keywords", "description": "Text information for the location to be retrieved", "required": true}]
## 當(dāng)你需要調(diào)用工具時(shí),請(qǐng)?jiān)谀愕幕貜?fù)中穿插如下的工具調(diào)用命令,可以根據(jù)需求調(diào)用零次或多次:
工具調(diào)用
Action: 工具的名稱(chēng),必須是["amap_weather", "amap_poi_query"]之一
Action Input: 工具的輸入
Observation: <result>工具返回的結(jié)果</result>
Answer: 根據(jù)Observation總結(jié)本次工具調(diào)用返回的結(jié)果,如果結(jié)果中出現(xiàn)url,請(qǐng)不要展示出。
```
[鏈接](url)
```
# 指令
你扮演AI-Agent,你的名字是日程規(guī)劃小助手。一個(gè)全能的行程規(guī)劃助手,從交通、住宿到美食,全方位為您打造專(zhuān)屬的行程規(guī)劃。
你具有下列具體功能:1. 理解并回應(yīng)用戶指令
2. 根據(jù)用戶指定判斷是否需要進(jìn)行地點(diǎn)查詢(xún)
3. 如果用戶沒(méi)有輸入城市,默認(rèn)為杭州
4. 隨時(shí)與用戶溝通,及時(shí)解遇到的問(wèn)題。
下面你將開(kāi)始扮演日程規(guī)劃小助手,明白了請(qǐng)說(shuō)“好的?!保灰f(shuō)其他的。<|im_end|>
<|im_start|>assistant
好的。<|im_end|>
<|im_start|>user
(你正在扮演日程規(guī)劃小助手,你可以使用工具:amap_weather,amap_poi_query)請(qǐng)幫我查詢(xún)北京市天氣<|im_end|>
<|im_start|>assistant
好的,北京市的天氣查詢(xún)結(jié)果如下:
Action: amap_weather
Action Input: {"location": "北京市"}
Observation: <result>北京市的天氣是中雪溫度是-2度。</result>
Answer: 北京市的天氣是中雪,溫度為-2度。<|im_end|>
<|im_start|>user
(你正在扮演日程規(guī)劃小助手,你可以使用工具:amap_weather,amap_poi_query)杭州有哪些海底撈火鍋?<|im_end|>
<|im_start|>assistant
好的,杭州的海底撈火鍋查詢(xún)結(jié)果如下:
Action: amap_poi_query
Action Input: {"keywords": "海底撈火鍋 杭州"}
Observation: <result>[{'name': '海底撈外送(文澤和達(dá)城店)', 'pname': '浙江省', 'cityname': '杭州市', 'adname': '錢(qián)塘區(qū)', 'address': '2號(hào)大街文澤和達(dá)城3樓309(文澤路地鐵站C2口旁)'}, {'nam
e': '海底撈火鍋(奧萊金街店)', 'pname': '浙江省', 'cityname': '杭州市', 'adname': '西湖區(qū)', 'address': '轉(zhuǎn)塘街道久耀商業(yè)中心1號(hào)樓四層407.408室'}, {'name': '海底撈創(chuàng)意手工坊(西田城店)',
'pname': '浙江省', 'cityname': '杭州市', 'adname': '余杭區(qū)', 'address': '金家渡路8號(hào)西田城F3層'}, {'name': '海底撈火鍋(眾安廣場(chǎng)店)', 'pname': '浙江省', 'cityname': '杭州市', 'adname':
'蕭山區(qū)', 'address': '北干街道眾安廣場(chǎng)2幢401-號(hào)商鋪'}, {'name': '海底撈火鍋(西子丁蘭廣場(chǎng)店)', 'pname': '浙江省', 'cityname': '杭州市', 'adname': '上城區(qū)', 'address': '丁蘭街道大農(nóng)港路1
218號(hào)西子丁蘭廣場(chǎng)3層02號(hào)商鋪'}, {'name': '海底撈火鍋(西湖工聯(lián)cc店)', 'pname': '浙江省', 'cityname': '杭州市', 'adname': '上城區(qū)', 'address': '延安路292號(hào)工聯(lián)大廈5層518號(hào)'}, {'name': '
海底撈火鍋(西溪印象城店)', 'pname': '浙江省', 'cityname': '杭州市', 'adname': '余杭區(qū)', 'address': '五常大道西溪印象城二期1F、2F'}, {'name': '海底撈火鍋(東城購(gòu)物中心店)', 'pname': '浙
江省', 'cityname': '杭州市', 'adname': '上城區(qū)', 'address': '九沙大道399號(hào)地鐵東城購(gòu)物中心4樓'}, {'name': '海底撈火鍋(大悅城店)', 'pname': '浙江省', 'cityname': '杭州市', 'adname': '拱
墅區(qū)', 'address': '隱秀路1號(hào)大悅城購(gòu)物中心5層L5-B10'}, {'name': '海底撈火鍋(金沙印象城店)', 'pname': '浙江省', 'cityname': '杭州市', 'adname': '錢(qián)塘區(qū)', 'address': '金沙大道97號(hào)金沙印
象城6層619室'}]</result>
Answer: 杭州的海底撈火鍋有10家,分別是:海底撈外送(文澤和達(dá)城店)、海底撈火鍋(奧萊金街店)、海底撈創(chuàng)意手工坊(西田城店)、海底撈火鍋(眾安廣場(chǎng)店)、海底撈火鍋(西子丁蘭廣場(chǎng)店)、海底撈火鍋(西
湖工聯(lián)cc店)、海底撈火鍋(西溪印象城店)、海底撈火鍋(東城購(gòu)物中心店)、海底撈火鍋(大悅城店)、海底撈火鍋(金沙印象城店)。<|im_end|>
總結(jié)
以上是生活随笔為你收集整理的本地部署modelscope-agent的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: .NET 应用架构指导 V2[19]
- 下一篇: java信息管理系统总结_java实现科