Modelscope Hub| Papel| Demonstração
中文| Inglês
Modelscope-Agent é uma estrutura de agente personalizável e escalonável. Um único agente possui habilidades como role-playing, chamada LLM, uso de ferramentas, planejamento e memória. Possui principalmente as seguintes características:
RolePlay
com o modelo OpenAI mais recente GPT-4o
. Os desenvolvedores podem experimentar esse recurso especificando o parâmetro image_url
.Assistant API
fácil de usar e também forneceu uma Tools API
que executa utilitários em contêineres isolados e seguros. Encontre o documentobash run_msgpt.sh
.clonar repositório e instalar dependência:
git clone https://github.com/modelscope/modelscope-agent.git
cd modelscope-agent && pip install -r requirements.txt
O ModelScope Notebook oferece um nível gratuito que permite ao usuário ModelScope executar o aplicativo FaceChain com configuração 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.
O agente incorpora um LLM junto com ferramentas específicas de tarefa e usa o LLM para determinar qual ferramenta ou ferramentas invocar para concluir as tarefas do usuário.
Para começar, tudo que você precisa fazer é inicializar um objeto RolePlay
com as tarefas correspondentes
# 配置环境变量;如果您已经提前将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)
Um objeto Agent
consiste nos seguintes componentes:
LLM
: Um grande modelo de linguagem responsável por processar suas entradas e decidir chamar ferramentas.function_list
: uma lista consiste em ferramentas disponíveis para agentes. Atualmente, a configuração do Agent
pode conter os seguintes argumentos:
llm
: A configuração llm deste agentefunction_list
: uma lista de ferramentasstorage_path
: Se não for especificado de outra forma, todos os dados serão armazenados aqui em pares KV por memóriainstruction
: a instrução do sistema deste agentename
: o nome do agentedescription
: a descrição do agente, que é usada para multi_agentkwargs
: outros parâmetros potenciais Agent
, como classe base, não pode ser inicializado e chamado diretamente. As subclasses do agente precisam herdá-lo. Eles devem implementar a função _run
, que inclui principalmente três partes: geração de mensagens/propmt, chamada de llm(s) e chamada de ferramenta com base nos resultados de llm. Fornecemos uma implementação desses componentes no RolePlay
para os usuários, e você também pode personalizar seus componentes de acordo com sua necessidade.
from modelscope_agent import Agent
class YourCustomAgent ( Agent ):
def _run ( self , user_request , ** kwargs ):
# Custom your workflow
LLM é o módulo central do agente, que garante a qualidade dos resultados da interação.
Atualmente, a configuração de `` pode conter os seguintes argumentos:
model
: O nome do modelo específico será passado diretamente para o provedor de serviços de modelo.model_server
: provedor de serviços de modelo. BaseChatModel
, como classe base de llm, não pode ser inicializado e chamado diretamente. As subclasses precisam herdá-lo. Eles devem implementar as funções _chat_stream
e _chat_no_stream
, que correspondem à saída de streaming e à saída sem streaming, respectivamente. Opcionalmente, implemente chat_with_functions
e chat_with_raw_prompt
para chamada de função e conclusão de texto.
Atualmente fornecemos a implementação de três provedores de serviços de modelo: dashscope (para modelos da série qwen), zhipu (para modelos da série glm) e openai (para todos os modelos de formato openai api). Você pode usar diretamente os modelos suportados pelos provedores de serviços acima ou pode personalizar seu llm.
Para obter mais informações, consulte docs/modules/llm.md
Tool
Fornecemos diversas ferramentas multidomínio que podem ser configuradas e utilizadas no agente.
Você também pode personalizar suas ferramentas definindo o nome, a descrição e os parâmetros da ferramenta com base em um padrão predefinido, herdando a ferramenta base. Dependendo das suas necessidades, call() pode ser implementado. Um exemplo de ferramenta personalizada é fornecido em demo_register_new_tool
Você pode passar o nome da ferramenta ou a configuração que deseja usar para o 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
: Geração de imagem Wanx. DASHSCOPE_API_KEY precisa ser configurado na variável de ambiente.code_interpreter
: intérprete de códigoweb_browser
: Navegação na Webamap_weather
: Clima AMAP. AMAP_TOKEN precisa ser configurado na variável de ambiente.wordart_texture_generation
: geração de textura de Word Art. DASHSCOPE_API_KEY precisa ser configurado na variável de ambiente.web_search
: pesquisa na web. []qwen_vl
: reconhecimento de imagem Qwen-VL. DASHSCOPE_API_KEY precisa ser configurado na variável de ambiente.style_repaint
: Estilo de caractere redesenhado. DASHSCOPE_API_KEY precisa ser configurado na variável de ambiente.image_enhancement
: Perseguindo lupa de sombra. DASHSCOPE_API_KEY precisa ser configurado na variável de ambiente.text-address
: Geocodificação. MODELSCOPE_API_TOKEN precisa ser configurado na variável de ambiente.speech-generation
: geração de fala. MODELSCOPE_API_TOKEN precisa ser configurado na variável de ambiente.video-generation
: geração de vídeo. MODELSCOPE_API_TOKEN precisa ser configurado na variável de ambiente.Consulte o leia-me multiagente.
Se quiser saber mais sobre os detalhes práticos do Agente, você pode consultar nossos artigos e tutoriais em vídeo:
Agradecemos seu entusiasmo em participar de nosso projeto ModelScope-Agent de código aberto. Se você encontrar algum problema, sinta-se à vontade para relatá-lo para nós. Se você criou uma nova demonstração de agente e está pronto para compartilhar seu trabalho conosco, crie uma solicitação pull a qualquer momento! Se precisar de mais ajuda, entre em contato conosco por e-mail em [email protected] ou grupo de comunicação!
Facechain é um projeto de código aberto para gerar retratos personalizados em vários estilos usando imagens faciais enviadas por usuários. Ao integrar os recursos do Facechain na estrutura do agente modelscope, simplificamos bastante o processo de uso. A geração de retratos personalizados agora pode ser feita através do diálogo com o Agente Facechain.
Link do aplicativo FaceChainAgent Studio: https://modelscope.cn/studios/CVstudio/facechain_agent_studio/summary
Você pode executá-lo diretamente em um ambiente 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 projeto está licenciado sob a licença Apache (versão 2.0).