Modelscope Hub | Бумага | Демо
中文 | английский
Modelscope-Agent — это настраиваемая и масштабируемая платформа агентов. Один агент обладает такими способностями, как ролевая игра, вызов LLM, использование инструментов, планирование и память. В основном он имеет следующие характеристики:
RolePlay
с помощью последней модели OpenAI GPT-4o
. Разработчики могут воспользоваться этой функцией, указав параметр 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
: описание агента, которое используется для multi_agent.kwargs
: другие потенциальные параметры Agent
, как базовый класс, не может быть напрямую инициализирован и вызван. Подклассы агентов должны наследовать его. Они должны реализовать функцию _run
, которая в основном состоит из трёх частей: генерация сообщений/propmt, вызов llm(ов) и вызов инструмента на основе результатов llm. Мы предоставляем пользователям реализацию этих компонентов в RolePlay
, и вы также можете настроить свои компоненты в соответствии со своими требованиями.
from modelscope_agent import Agent
class YourCustomAgent ( Agent ):
def _run ( self , user_request , ** kwargs ):
# Custom your workflow
LLM — основной модуль агента, обеспечивающий качество результатов взаимодействия.
В настоящее время конфигурация `` может содержать следующие аргументы:
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
: Генерация текстур Word Art. 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 необходимо настроить в переменной среды.Пожалуйста, обратитесь к файлу readme для мультиагента.
Если вы хотите узнать больше о практических деталях Агента, вы можете обратиться к нашим статьям и видеоурокам:
Мы ценим ваш энтузиазм по поводу участия в нашем проекте ModelScope-Agent с открытым исходным кодом. Если у вас возникнут какие-либо проблемы, пожалуйста, сообщите нам о них. Если вы создали новую демо-версию агента и готовы поделиться с нами своей работой, создайте запрос на включение в любое время! Если вам нужна дополнительная помощь, свяжитесь с нами по электронной почте [email protected] или в группе связи!
Facechain — это проект с открытым исходным кодом для создания персонализированных портретов в различных стилях с использованием изображений лиц, загруженных пользователями. Интегрировав возможности Facechain в структуру modelscope-agent, мы значительно упростили процесс использования. Создание персонализированных портретов теперь можно выполнить посредством диалога с агентом Facechain.
Ссылка на приложение FaceChainAgent Studio: https://modelscope.cn/studios/CVstudio/facechain_agent_studio/summary
Вы можете запустить его непосредственно в блокноте/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).