Modelscope Hub | 論文 | 演示
中文 | 英語
Modelscope-Agent 是一個可自訂且可擴展的 Agent 框架。單一代理具有角色扮演、LLM調用、工具使用、計劃和記憶等能力。它主要有以下特點:
GPT-4o
在RolePlay
代理程式中輸入映像。開發者可以透過指定image_url
參數來體驗該功能。Assistant API
,還提供了一個Tools API
,可以在隔離的安全容器中執行實用程序,請查找文檔bash run_msgpt.sh
。克隆倉庫並安裝依賴:
git clone https://github.com/modelscope/modelscope-agent.git
cd modelscope-agent && pip install -r requirements.txt
ModelScope Notebook 提供免費層,允許 ModelScope 用戶以最少的設定運行 FaceChain 應用程序,請參閱 ModelScope Notebook
# Step1: 我的notebook -> PAI-DSW -> GPU环境
# Step2: Download the [demo file](https://github.com/modelscope/modelscope-agent/blob/master/demo/demo_qwen_agent.ipynb) and upload it to the GPU.
# Step3: Execute the demo notebook in order.
該代理將 LLM 與特定於任務的工具結合在一起,並使用 LLM 來確定要呼叫哪個或哪些工具來完成使用者的任務。
首先,您需要做的就是使用對應的任務初始化RolePlay
對象
# 配置环境变量;如果您已经提前将api-key提前配置到您的运行环境中,可以省略这个步骤
import os
os . environ [ 'DASHSCOPE_API_KEY' ] = YOUR_DASHSCOPE_API_KEY
os . environ [ 'AMAP_TOKEN' ] = YOUR_AMAP_TOKEN
# 选用RolePlay 配置agent
from modelscope_agent . agents . role_play import RolePlay # NOQA
role_template = '你扮演一个天气预报助手,你需要查询相应地区的天气,并调用给你的画图工具绘制一张城市的图。'
llm_config = { 'model' : 'qwen-max' , 'model_server' : 'dashscope' }
# input tool name
function_list = [ 'amap_weather' , 'image_gen' ]
bot = RolePlay (
function_list = function_list , llm = llm_config , instruction = role_template )
response = bot . run ( '朝阳区天气怎样?' )
text = ''
for chunk in response :
text += chunk
結果
# 第一次调用llm的输出
Action: amap_weather
Action Input: { " location " : "朝阳区" }
# 第二次调用llm的输出
目前,朝阳区的天气状况为阴天,气温为1度。
Action: image_gen
Action Input: { " text " : "朝阳区城市风光" , " resolution " : " 1024*1024 " }
# 第三次调用llm的输出
目前,朝阳区的天气状况为阴天,气温为1度。同时,我已为你生成了一张朝阳区的城市风光图,如下所示:
! [](https://dashscope-result-sh.oss-cn-shanghai.aliyuncs.com/1d/45/20240204/3ab595ad/96d55ca6-6550-4514-9013-afe0f917c7ac-1.jpg ? Expires=1707123521 & OSSAccessKeyId=LTAI5tQZd8AEcZX6KZV4G8qL & Signature=RsJRt7zsv2y4kg7D9QtQHuVkXZY%3D)
Agent
物件由以下元件組成:
LLM
:一個大型語言模型,負責處理您的輸入並決定呼叫工具。function_list
:由代理程式可用的工具組成的清單。目前, Agent
的配置可能包含以下參數:
llm
: 該代理程式的 llm 配置function_list
:工具列表storage_path
:如果沒有另外指定,所有資料都會透過記憶體以KV對的形式儲存在這裡instruction
:該代理程式的系統指令name
: 代理人姓名description
:agent的描述,用於multi_agentkwargs
:其他潛在參數Agent
作為基類,不能直接初始化和呼叫。 Agent子類別需要繼承它。他們必須實作_run
函數,該函數主要包括三個部分:訊息/propmt的產生、llm(s)的呼叫以及根據llm的結果呼叫工具。我們在RolePlay
中為使用者提供了這些元件的實現,您也可以根據您的需求自訂您的元件。
from modelscope_agent import Agent
class YourCustomAgent ( Agent ):
def _run ( self , user_request , ** kwargs ):
# Custom your workflow
LLM是Agent的核心模組,保證了互動結果的品質。
目前,`` 的配置可能包含以下參數:
model
:具體模型名稱將直接傳遞給模型服務提供者。model_server
:模型服務的提供者。 BaseChatModel
作為 llm 的基底類,不能直接初始化和呼叫。子類別需要繼承它。它們必須實作函數_chat_stream
和_chat_no_stream
,分別對應於串流輸出和非流式輸出。可以選擇實作chat_with_functions
和chat_with_raw_prompt
以進行函式呼叫和文字完成。
目前我們提供了三個模型服務商的實作:dashscope(適用於qwen系列模型)、zhipu(適用於glm系列模型)和openai(適用於所有openai api格式模型)。您可以直接使用上述服務商支援的模型,也可以自訂您的llm。
更多資訊請參考docs/modules/llm.md
Tool
我們提供了幾種可以在代理程式中配置和使用的多域工具。
您也可以透過繼承基礎工具,根據預先定義模式設定工具的名稱、描述和參數來自訂工具。根據您的需要,可以實現call()。 demo_register_new_tool 中提供了自訂工具的範例
您可以將要使用的工具名稱或設定傳遞給代理程式。
# by tool name
function_list = [ 'amap_weather' , 'image_gen' ]
bot = RolePlay ( function_list = function_list , ...)
# by tool configuration
from langchain . tools import ShellTool
function_list = [{ 'terminal' : ShellTool ()}]
bot = RolePlay ( function_list = function_list , ...)
# by mixture
function_list = [ 'amap_weather' , { 'terminal' : ShellTool ()}]
bot = RolePlay ( function_list = function_list , ...)
image_gen
:Wanx 影像生成。需要在環境變數中配置DASHSCOPE_API_KEY。code_interpreter
:程式碼解釋器web_browser
: 網頁瀏覽amap_weather
:AMAP 天氣。需要在環境變數中配置AMAP_TOKEN。wordart_texture_generation
:藝術字紋理產生。需要在環境變數中配置DASHSCOPE_API_KEY。web_search
:網頁搜尋。 []qwen_vl
:Qwen-VL影像辨識。需要在環境變數中配置DASHSCOPE_API_KEY。style_repaint
:重繪字元樣式。需要在環境變數中配置DASHSCOPE_API_KEY。image_enhancement
:追逐陰影放大鏡。需要在環境變數中配置DASHSCOPE_API_KEY。text-address
:地理編碼。需要在環境變數中配置MODELSCOPE_API_TOKEN。speech-generation
:語音生成。需要在環境變數中配置MODELSCOPE_API_TOKEN。video-generation
:影片生成。需要在環境變數中配置MODELSCOPE_API_TOKEN。請參閱多代理自述文件。
如果您想了解更多Agent的實用細節,可以參考我們的文章和影片教學:
我們感謝您熱衷於參與我們的開源 ModelScope-Agent 專案。如果您遇到任何問題,請隨時向我們報告。如果您已經建立了新的 Agent 演示並準備與我們分享您的工作,請隨時建立拉取請求!如果您需要任何進一步的協助,請透過電子郵件 [email protected] 或交流群組與我們聯繫!
Facechain是一個開源項目,用於利用用戶上傳的臉部圖像生成各種風格的個人化肖像。透過將Facechain的能力整合到modelscope-agent框架中,我們大大簡化了使用流程。現在可以透過與 Facechain Agent 對話來產生個人化肖像。
FaceChainAgent Studio申請連結:https://modelscope.cn/studios/CVstudio/facechain_agent_studio/summary
可以直接在notebook/Colab/本機環境中運作:https://www.modelscope.cn/my/mynotebook
! git clone -b feat/facechain_agent https://github.com/modelscope/modelscope-agent.git
! cd modelscope-agent && ! pip install -r requirements.txt
! cd modelscope-agent/demo/facechain_agent/demo/facechain_agent && ! pip install -r requirements.txt
! pip install http://dashscope-cn-beijing.oss-cn-beijing.aliyuncs.com/zhicheng/modelscope_agent-0.1.0-py3-none-any.whl
! PYTHONPATH=/mnt/workspace/modelscope-agent/demo/facechain_agent && cd modelscope-agent/demo/facechain_agent/demo/facechain_agent && python app_v1.0.py
此專案根據 Apache 授權(2.0 版)授權。