Modelscope Hub | 論文 | デモ
中国語 | 英語
Modelscope-Agent は、カスタマイズ可能でスケーラブルなエージェント フレームワークです。 1 人のエージェントが、ロールプレイング、LLM コール、ツールの使用、計画、記憶などの能力を備えています。主に次のような特徴があります。
GPT-4o
を使用して、 RolePlay
エージェントでの画像入力をサポートしました。開発者は、 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
実装する必要があります。これには主に、メッセージ/プロンプトの生成、llm の呼び出し、llm の結果に基づくツール呼び出しの 3 つの部分が含まれます。これらのコンポーネントの実装はユーザー向けに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 形式モデル用) の 3 つのモデル サービス プロバイダーの実装を提供しています。上記のサービス プロバイダーがサポートするモデルを直接使用することも、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
: Web ブラウジングamap_weather
: AMAP 天気。 AMAP_TOKEN を環境変数で設定する必要があります。wordart_texture_generation
: ワードアート テクスチャの生成。 DASHSCOPE_API_KEY を環境変数で構成する必要があります。web_search
: Web 検索。 []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 を参照してください。
Agent の実践的な詳細について詳しく知りたい場合は、次の記事とビデオ チュートリアルを参照してください。
オープンソースの ModelScope-Agent プロジェクトへの参加に対する皆様の熱意に感謝いたします。問題が発生した場合は、お気軽に弊社までご報告ください。新しいエージェントのデモを構築し、その成果を私たちと共有する準備ができている場合は、いつでもプル リクエストを作成してください。さらにサポートが必要な場合は、[email protected] の電子メールまたはコミュニケーション グループまでご連絡ください。
Facechain は、ユーザーがアップロードした顔画像を使用して、さまざまなスタイルでパーソナライズされたポートレートを生成するためのオープンソース プロジェクトです。 Facechain の機能を modelscope-agent フレームワークに統合することにより、使用プロセスが大幅に簡素化されました。パーソナライズされたポートレートの生成は、Facechain Agent との対話を通じて実行できるようになりました。
FaceChainAgent Studio アプリケーション リンク: https://modelscope.cn/studios/CVstudio/facechain_agent_studio/summary
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
このプロジェクトは、Apache License (バージョン 2.0) に基づいてライセンスされています。