Modelscope Hub | Papier | Démo
中文 | Anglais
Modelscope-Agent est un framework d'agent personnalisable et évolutif. Un seul agent possède des capacités telles que le jeu de rôle, les appels LLM, l'utilisation d'outils, la planification et la mémoire. Il présente principalement les caractéristiques suivantes :
RolePlay
avec le dernier modèle OpenAI GPT-4o
. Les développeurs peuvent découvrir cette fonctionnalité en spécifiant le paramètre image_url
.Assistant API
conviviale et a également fourni une Tools API
qui exécute des utilitaires dans des conteneurs isolés et sécurisés. Veuillez trouver le documentbash run_msgpt.sh
.cloner le dépôt et installer la dépendance:
git clone https://github.com/modelscope/modelscope-agent.git
cd modelscope-agent && pip install -r requirements.txt
Le ModelScope Notebook propose un niveau gratuit qui permet à l'utilisateur de ModelScope d'exécuter l'application FaceChain avec une configuration minimale, reportez-vous à 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.
L'agent intègre un LLM ainsi que des outils spécifiques aux tâches et utilise le LLM pour déterminer le ou les outils à appeler afin d'accomplir les tâches de l'utilisateur.
Pour commencer, il suffit d'initialiser un objet RolePlay
avec les tâches correspondantes
# 配置环境变量;如果您已经提前将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
Résultat
# 第一次调用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 objet Agent
se compose des composants suivants :
LLM
: Un grand modèle de langage chargé de traiter vos entrées et de décider des outils d'appel.function_list
: Une liste comprend les outils disponibles pour les agents. Actuellement, la configuration de Agent
peut contenir les arguments suivants :
llm
: La configuration llm de cet agentfunction_list
: Une liste d'outilsstorage_path
: Sauf indication contraire, toutes les données seront stockées ici par paires KV par mémoireinstruction
: l'instruction système de cet agentname
: le nom de l'agentdescription
: la description de l'agent, utilisée pour multi_agentkwargs
: autres paramètres potentiels Agent
, en tant que classe de base, ne peut pas être directement initialisé et appelé. Les sous-classes d'agent doivent en hériter. Ils doivent implémenter la fonction _run
, qui comprend principalement trois parties : génération de messages/propmt, appel de llm(s) et appel d'outils basé sur les résultats de llm. Nous fournissons une implémentation de ces composants dans RolePlay
pour les utilisateurs, et vous pouvez également personnaliser vos composants en fonction de vos besoins.
from modelscope_agent import Agent
class YourCustomAgent ( Agent ):
def _run ( self , user_request , ** kwargs ):
# Custom your workflow
LLM est le module central de l'agent, qui garantit la qualité des résultats d'interaction.
Actuellement, la configuration de `` peut contenir les arguments suivants :
model
: le nom du modèle spécifique sera transmis directement au fournisseur de services de modèles.model_server
: fournisseur de services de modèles. BaseChatModel
, en tant que classe de base de llm, ne peut pas être directement initialisée et appelée. Les sous-classes doivent en hériter. Ils doivent implémenter les fonctions _chat_stream
et _chat_no_stream
, qui correspondent respectivement à la sortie streaming et à la sortie non streaming. Implémentez éventuellement chat_with_functions
et chat_with_raw_prompt
pour l'appel de fonction et la complétion de texte.
Actuellement, nous assurons la mise en œuvre de trois fournisseurs de services de modèles : dashscope (pour les modèles de la série qwen), zhipu (pour les modèles de la série glm) et openai (pour tous les modèles au format openai api). Vous pouvez utiliser directement les modèles pris en charge par les prestataires de services ci-dessus, ou vous pouvez personnaliser votre LLM.
Pour plus d'informations, veuillez vous référer à docs/modules/llm.md
Tool
Nous fournissons plusieurs outils multi-domaines qui peuvent être configurés et utilisés dans l'agent.
Vous pouvez également personnaliser vos outils en définissant le nom, la description et les paramètres de l'outil en fonction d'un modèle prédéfini en héritant de l'outil de base. Selon vos besoins, call() peut être implémenté. Un exemple d'outil personnalisé est fourni dans demo_register_new_tool
Vous pouvez transmettre le nom de l'outil ou la configuration que vous souhaitez utiliser à l'agent.
# 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
: Génération d'images Wanx. DASHSCOPE_API_KEY doit être configuré dans la variable d'environnement.code_interpreter
: Interpréteur de codeweb_browser
: navigation Webamap_weather
: Météo AMAP. AMAP_TOKEN doit être configuré dans la variable d'environnement.wordart_texture_generation
: génération de textures Word Art. DASHSCOPE_API_KEY doit être configuré dans la variable d'environnement.web_search
: recherche sur le Web. []qwen_vl
: Reconnaissance d'images Qwen-VL. DASHSCOPE_API_KEY doit être configuré dans la variable d'environnement.style_repaint
: Style de personnage redessiné. DASHSCOPE_API_KEY doit être configuré dans la variable d'environnement.image_enhancement
: À la poursuite de la loupe d'ombre. DASHSCOPE_API_KEY doit être configuré dans la variable d'environnement.text-address
: Géocodage. MODELSCOPE_API_TOKEN doit être configuré dans la variable d'environnement.speech-generation
: génération de parole. MODELSCOPE_API_TOKEN doit être configuré dans la variable d'environnement.video-generation
: Génération vidéo. MODELSCOPE_API_TOKEN doit être configuré dans la variable d'environnement.Veuillez vous référer au fichier Lisez-moi multi-agent.
Si vous souhaitez en savoir plus sur les détails pratiques d'Agent, vous pouvez vous référer à nos articles et tutoriels vidéo :
Nous apprécions votre enthousiasme à participer à notre projet open source ModelScope-Agent. Si vous rencontrez des problèmes, n'hésitez pas à nous les signaler. Si vous avez créé une nouvelle démo d'agent et êtes prêt à partager votre travail avec nous, veuillez créer une pull request à tout moment ! Si vous avez besoin d'aide supplémentaire, veuillez nous contacter par e-mail à [email protected] ou par groupe de communication !
Facechain est un projet open source permettant de générer des portraits personnalisés dans différents styles à l'aide d'images faciales téléchargées par les utilisateurs. En intégrant les capacités de Facechain dans le framework modelscope-agent, nous avons considérablement simplifié le processus d'utilisation. La génération de portraits personnalisés peut désormais se faire par dialogue avec l'Agent Facechain.
Lien d'application FaceChainAgent Studio : https://modelscope.cn/studios/CVstudio/facechain_agent_studio/summary
Vous pouvez l'exécuter directement dans un environnement 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
Ce projet est sous licence Apache (version 2.0).