Modelscope Hub | Papier | Demo
中文 | Englisch
Modelscope-Agent ist ein anpassbares und skalierbares Agent-Framework. Ein einzelner Agent verfügt über Fähigkeiten wie Rollenspiele, LLM-Anrufe, Werkzeugnutzung, Planung und Gedächtnis. Es weist vor allem folgende Eigenschaften auf:
RolePlay
Agenten mit dem neuesten OpenAI-Modell GPT-4o
. Entwickler können diese Funktion nutzen, indem sie den Parameter image_url
angeben.Assistant API
gestartet und außerdem eine Tools API
bereitgestellt, die Dienstprogramme in isolierten, sicheren Containern ausführt. Das Dokument finden Sie hierbash run_msgpt.sh
ausführen.Repo klonen und Abhängigkeit installieren:
git clone https://github.com/modelscope/modelscope-agent.git
cd modelscope-agent && pip install -r requirements.txt
Das ModelScope Notebook bietet ein kostenloses Kontingent, das es ModelScope-Benutzern ermöglicht, die FaceChain-Anwendung mit minimalem Setup auszuführen, siehe 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.
Der Agent integriert ein LLM zusammen mit aufgabenspezifischen Tools und verwendet das LLM, um zu bestimmen, welches Tool oder welche Tools aufgerufen werden müssen, um die Aufgaben des Benutzers abzuschließen.
Zunächst müssen Sie lediglich ein RolePlay
Objekt mit entsprechenden Aufgaben initialisieren
# 配置环境变量;如果您已经提前将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
Ergebnis
# 第一次调用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)
Ein Agent
-Objekt besteht aus den folgenden Komponenten:
LLM
: Ein großes Sprachmodell, das für die Verarbeitung Ihrer Eingaben und die Entscheidung über den Aufruf von Tools verantwortlich ist.function_list
: Eine Liste besteht aus verfügbaren Tools für Agenten. Derzeit kann die Konfiguration des Agent
folgende Argumente enthalten:
llm
: Die llm-Konfiguration dieses Agentenfunction_list
: Eine Liste von Werkzeugenstorage_path
: Sofern nicht anders angegeben, werden alle Daten hier in KV-Paaren nach Speicher abgelegtinstruction
: die Systemanweisung dieses Agentenname
: der Name des Agentendescription
: Die Beschreibung des Agenten, der für Multi_Agent verwendet wirdkwargs
: andere mögliche Parameter Agent
kann als Basisklasse nicht direkt initialisiert und aufgerufen werden. Agentenunterklassen müssen es erben. Sie müssen die Funktion _run
implementieren, die hauptsächlich drei Teile umfasst: Generierung von Nachrichten/Prompts, Aufruf von llm(s) und Tool-Aufruf basierend auf den Ergebnissen von llm. Wir stellen Benutzern eine Implementierung dieser Komponenten in RolePlay
zur Verfügung, und Sie können Ihre Komponenten auch entsprechend Ihren Anforderungen anpassen.
from modelscope_agent import Agent
class YourCustomAgent ( Agent ):
def _run ( self , user_request , ** kwargs ):
# Custom your workflow
LLM ist das Kernmodul des Agenten, das die Qualität der Interaktionsergebnisse sicherstellt.
Derzeit kann die Konfiguration von „“ folgende Argumente enthalten:
model
: Der spezifische Modellname wird direkt an den Modelldienstleister übergeben.model_server
: Anbieter von Modelldiensten. BaseChatModel
kann als Basisklasse von llm nicht direkt initialisiert und aufgerufen werden. Die Unterklassen müssen es erben. Sie müssen die Funktionen _chat_stream
und _chat_no_stream
implementieren, die der Streaming-Ausgabe bzw. der Nicht-Streaming-Ausgabe entsprechen. Implementieren Sie optional chat_with_functions
und chat_with_raw_prompt
für Funktionsaufrufe und Textvervollständigung.
Derzeit bieten wir die Implementierung von drei Modelldienstleistern an: Dashscope (für Modelle der Qwen-Serie), Zhipu (für Modelle der GLM-Serie) und Openai (für alle Modelle im OpenAI-API-Format). Sie können die von den oben genannten Dienstleistern unterstützten Modelle direkt nutzen oder Ihr LLM individuell anpassen.
Weitere Informationen finden Sie unter docs/modules/llm.md
Tool
Wir stellen mehrere Multi-Domain-Tools zur Verfügung, die im Agent konfiguriert und verwendet werden können.
Sie können Ihre Werkzeuge auch anpassen, indem Sie den Namen, die Beschreibung und die Parameter des Werkzeugs basierend auf einem vordefinierten Muster festlegen, indem Sie das Basiswerkzeug erben. Abhängig von Ihren Anforderungen kann call() implementiert werden. Ein Beispiel für ein benutzerdefiniertes Tool finden Sie in demo_register_new_tool
Sie können den Toolnamen oder die Konfiguration, die Sie verwenden möchten, an den Agenten übergeben.
# 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-Bildgenerierung. DASHSCOPE_API_KEY muss in der Umgebungsvariablen konfiguriert werden.code_interpreter
: Code-Interpreterweb_browser
: Web-Browsingamap_weather
: AMAP-Wetter. AMAP_TOKEN muss in der Umgebungsvariablen konfiguriert werden.wordart_texture_generation
: Generierung von Word-Art-Texturen. DASHSCOPE_API_KEY muss in der Umgebungsvariablen konfiguriert werden.web_search
: Websuche. []qwen_vl
: Qwen-VL-Bilderkennung. DASHSCOPE_API_KEY muss in der Umgebungsvariablen konfiguriert werden.style_repaint
: Charakterstil neu gezeichnet. DASHSCOPE_API_KEY muss in der Umgebungsvariablen konfiguriert werden.image_enhancement
: Der Schattenlupe nachjagen. DASHSCOPE_API_KEY muss in der Umgebungsvariablen konfiguriert werden.text-address
: Geokodierung. MODELSCOPE_API_TOKEN muss in der Umgebungsvariablen konfiguriert werden.speech-generation
: Sprachgenerierung. MODELSCOPE_API_TOKEN muss in der Umgebungsvariablen konfiguriert werden.video-generation
: Video-Generierung. MODELSCOPE_API_TOKEN muss in der Umgebungsvariablen konfiguriert werden.Bitte beachten Sie die Multi-Agent-Readme-Datei.
Wenn Sie mehr über die praktischen Details von Agent erfahren möchten, können Sie sich unsere Artikel und Video-Tutorials ansehen:
Wir freuen uns über Ihre Begeisterung für die Teilnahme an unserem Open-Source-Projekt ModelScope-Agent. Wenn Sie auf Probleme stoßen, können Sie uns diese gerne melden. Wenn Sie eine neue Agent-Demo erstellt haben und bereit sind, Ihre Arbeit mit uns zu teilen, erstellen Sie bitte jederzeit einen Pull-Request! Wenn Sie weitere Hilfe benötigen, kontaktieren Sie uns bitte per E-Mail unter [email protected] oder über die Kommunikationsgruppe!
Facechain ist ein Open-Source-Projekt zur Erstellung personalisierter Porträts in verschiedenen Stilen mithilfe von von Benutzern hochgeladenen Gesichtsbildern. Durch die Integration der Funktionen von Facechain in das Modelscope-Agent-Framework haben wir den Nutzungsprozess erheblich vereinfacht. Die Erstellung personalisierter Porträts kann nun durch Dialog mit dem Facechain Agent erfolgen.
FaceChainAgent Studio-Anwendungslink: https://modelscope.cn/studios/CVstudio/facechain_agent_studio/summary
Sie können es direkt in einer Notebook-/Colab-/lokalen Umgebung ausführen: 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
Dieses Projekt ist unter der Apache-Lizenz (Version 2.0) lizenziert.