Modelscope Hub | Papel | Demostración
中文 | Inglés
Modelscope-Agent es un marco de agente personalizable y escalable. Un solo agente tiene habilidades como juegos de roles, llamadas de LLM, uso de herramientas, planificación y memoria. Tiene principalmente las siguientes características:
RolePlay
con el último modelo OpenAI GPT-4o
. Los desarrolladores pueden experimentar esta función especificando el parámetro image_url
.Assistant API
fácil de usar y también proporcionó una Tools API
que ejecuta utilidades en contenedores aislados y seguros; busque el documentobash run_msgpt.sh
.clonar repositorio e instalar dependencia:
git clone https://github.com/modelscope/modelscope-agent.git
cd modelscope-agent && pip install -r requirements.txt
ModelScope Notebook ofrece un nivel gratuito que permite al usuario de ModelScope ejecutar la aplicación FaceChain con una configuración mínima; consulte 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.
El agente incorpora un LLM junto con herramientas específicas de tareas y utiliza el LLM para determinar qué herramienta o herramientas invocar para completar las tareas del usuario.
Para comenzar, todo lo que necesitas hacer es inicializar un objeto RolePlay
con las tareas correspondientes.
# 配置环境变量;如果您已经提前将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
Resultado
# 第一次调用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)
Un objeto Agent
consta de los siguientes componentes:
LLM
: un modelo de lenguaje grande que es responsable de procesar sus entradas y decidir las herramientas de llamada.function_list
: una lista consta de herramientas disponibles para los agentes. Actualmente, la configuración del Agent
puede contener los siguientes argumentos:
llm
: la configuración llm de este agente.function_list
: una lista de herramientasstorage_path
: si no se especifica lo contrario, todos los datos se almacenarán aquí en pares KV por memoriainstruction
: la instrucción del sistema de este agentename
: el nombre del agentedescription
: la descripción del agente, que se utiliza para multi_agentekwargs
: otros parámetros potenciales Agent
, como clase base, no se puede inicializar ni llamar directamente. Las subclases de agentes deben heredarlo. Deben implementar la función _run
, que incluye principalmente tres partes: generación de mensajes/solicitudes, llamada de llm(s) y llamada de herramientas en función de los resultados de llm. Proporcionamos una implementación de estos componentes en RolePlay
para los usuarios, y también puede personalizar sus componentes según sus necesidades.
from modelscope_agent import Agent
class YourCustomAgent ( Agent ):
def _run ( self , user_request , ** kwargs ):
# Custom your workflow
LLM es el módulo central del agente, que garantiza la calidad de los resultados de la interacción.
Actualmente, la configuración de `` puede contener los siguientes argumentos:
model
: el nombre del modelo específico se pasará directamente al proveedor de servicios del modelo.model_server
: proveedor de servicios modelo. BaseChatModel
, como clase base de llm, no se puede inicializar ni llamar directamente. Las subclases necesitan heredarlo. Deben implementar las funciones _chat_stream
y _chat_no_stream
, que corresponden a la salida de streaming y a la salida de no streaming respectivamente. Opcionalmente, implemente chat_with_functions
y chat_with_raw_prompt
para llamar a funciones y completar texto.
Actualmente brindamos la implementación de tres proveedores de servicios modelo: dashscope (para los modelos de la serie qwen), zhipu (para los modelos de la serie glm) y openai (para todos los modelos de formato openai api). Puede utilizar directamente los modelos admitidos por los proveedores de servicios anteriores o puede personalizar su llm.
Para obtener más información, consulte docs/modules/llm.md
Tool
Proporcionamos varias herramientas multidominio que se pueden configurar y utilizar en el agente.
También puede personalizar sus herramientas configurando el nombre, la descripción y los parámetros de la herramienta según un patrón predefinido heredando la herramienta base. Dependiendo de sus necesidades, se puede implementar call(). Se proporciona un ejemplo de una herramienta personalizada en demo_register_new_tool
Puede pasar el nombre de la herramienta o la configuración que desea utilizar al agente.
# 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
: Generación de imágenes Wanx. DASHSCOPE_API_KEY debe configurarse en la variable de entorno.code_interpreter
: Intérprete de códigoweb_browser
: Navegación webamap_weather
: Tiempo AMAP. AMAP_TOKEN debe configurarse en la variable de entorno.wordart_texture_generation
: Generación de texturas de arte de palabras. DASHSCOPE_API_KEY debe configurarse en la variable de entorno.web_search
: Búsqueda web. []qwen_vl
: reconocimiento de imágenes Qwen-VL. DASHSCOPE_API_KEY debe configurarse en la variable de entorno.style_repaint
: estilo de personaje redibujado. DASHSCOPE_API_KEY debe configurarse en la variable de entorno.image_enhancement
: Persiguiendo sombras con lupa. DASHSCOPE_API_KEY debe configurarse en la variable de entorno.text-address
: Geocodificación. MODELSCOPE_API_TOKEN debe configurarse en la variable de entorno.speech-generation
: Generación de voz. MODELSCOPE_API_TOKEN debe configurarse en la variable de entorno.video-generation
: Generación de video. MODELSCOPE_API_TOKEN debe configurarse en la variable de entorno.Consulte el archivo Léame de múltiples agentes.
Si desea obtener más información sobre los detalles prácticos de Agent, puede consultar nuestros artículos y videotutoriales:
Apreciamos su entusiasmo al participar en nuestro proyecto ModelScope-Agent de código abierto. Si encuentra algún problema, no dude en comunicárnoslo. Si ha creado una nueva demostración de Agente y está listo para compartir su trabajo con nosotros, cree una solicitud de extracción en cualquier momento. Si necesita más ayuda, contáctenos por correo electrónico a [email protected] o al grupo de comunicación.
Facechain es un proyecto de código abierto para generar retratos personalizados en varios estilos utilizando imágenes faciales cargadas por los usuarios. Al integrar las capacidades de Facechain en el marco del agente modelscope, hemos simplificado enormemente el proceso de uso. La generación de retratos personalizados ahora se puede realizar mediante el diálogo con el Agente Facechain.
Enlace de la aplicación FaceChainAgent Studio: https://modelscope.cn/studios/CVstudio/facechain_agent_studio/summary
Puede ejecutarlo directamente en un entorno notebook/Colab/local: 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
Este proyecto tiene la licencia Apache (Versión 2.0).