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 版)获得许可。