Modelscope Hub | Makalah | Demo
中文 | Bahasa Inggris
Modelscope-Agent adalah kerangka kerja Agen yang dapat disesuaikan dan diskalakan. Agen tunggal memiliki kemampuan seperti bermain peran, panggilan LLM, penggunaan alat, perencanaan, dan memori. Ini terutama memiliki karakteristik sebagai berikut:
RolePlay
dengan model OpenAI terbaru GPT-4o
. Pengembang dapat merasakan fitur ini dengan menentukan parameter image_url
.Assistant API
yang mudah digunakan, dan juga menyediakan Tools API
yang menjalankan utilitas dalam wadah yang terisolasi dan aman, silakan temukan dokumennyabash run_msgpt.sh
.mengkloning repo dan menginstal ketergantungan:
git clone https://github.com/modelscope/modelscope-agent.git
cd modelscope-agent && pip install -r requirements.txt
ModelScope Notebook menawarkan tingkat gratis yang memungkinkan pengguna ModelScope menjalankan aplikasi FaceChain dengan pengaturan minimum, lihat 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.
Agen menggabungkan LLM bersama dengan alat khusus tugas, dan menggunakan LLM untuk menentukan alat atau alat mana yang akan digunakan untuk menyelesaikan tugas pengguna.
Untuk memulai, yang perlu Anda lakukan hanyalah menginisialisasi objek RolePlay
dengan tugas terkait
# 配置环境变量;如果您已经提前将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
Hasil
# 第一次调用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)
Objek Agent
terdiri dari komponen berikut:
LLM
: Model bahasa besar yang bertanggung jawab untuk memproses masukan Anda dan memutuskan alat pemanggil.function_list
: Daftar terdiri dari alat yang tersedia untuk agen. Saat ini, konfigurasi Agent
mungkin berisi argumen berikut:
llm
: Konfigurasi llm agen inifunction_list
: Daftar alatstorage_path
: Jika tidak ditentukan sebaliknya, semua data akan disimpan di sini dalam pasangan KV oleh memoriinstruction
: instruksi sistem agen ininame
: nama agendescription
: deskripsi agen, yang digunakan untuk multi_agentkwargs
: parameter potensial lainnya Agent
, sebagai kelas dasar, tidak dapat diinisialisasi dan dipanggil secara langsung. Subkelas agen harus mewarisinya. Mereka harus mengimplementasikan fungsi _run
, yang terutama mencakup tiga bagian: pembuatan pesan/propmt, pemanggilan llm, dan pemanggilan alat berdasarkan hasil llm. Kami menyediakan penerapan komponen-komponen ini di RolePlay
untuk pengguna, dan Anda juga dapat menyesuaikan komponen sesuai kebutuhan Anda.
from modelscope_agent import Agent
class YourCustomAgent ( Agent ):
def _run ( self , user_request , ** kwargs ):
# Custom your workflow
LLM adalah modul inti agen, yang menjamin kualitas hasil interaksi.
Saat ini, konfigurasi `` mungkin berisi argumen berikut:
model
: Nama model spesifik akan diteruskan langsung ke penyedia layanan model.model_server
: penyedia layanan model. BaseChatModel
, sebagai kelas dasar llm, tidak dapat diinisialisasi dan dipanggil secara langsung. Subkelas perlu mewarisinya. Mereka harus mengimplementasikan fungsi _chat_stream
dan _chat_no_stream
, yang masing-masing sesuai dengan keluaran streaming dan keluaran non-streaming. Secara opsional, terapkan chat_with_functions
dan chat_with_raw_prompt
untuk pemanggilan fungsi dan penyelesaian teks.
Saat ini kami menyediakan implementasi tiga penyedia layanan model: dashscope (untuk model seri qwen), zhipu (untuk model seri glm) dan openai (untuk semua model format api openai). Anda dapat langsung menggunakan model yang didukung oleh penyedia layanan di atas, atau Anda dapat menyesuaikan llm.
Untuk informasi lebih lanjut silakan merujuk ke docs/modules/llm.md
Tool
Kami menyediakan beberapa alat multi-domain yang dapat dikonfigurasi dan digunakan di agen.
Anda juga dapat menyesuaikan alat Anda dengan mengatur nama, deskripsi, dan parameter alat berdasarkan pola yang telah ditentukan sebelumnya dengan mewarisi alat dasar. Tergantung pada kebutuhan Anda, call() dapat diimplementasikan. Contoh alat khusus disediakan di demo_register_new_tool
Anda dapat meneruskan nama alat atau konfigurasi yang ingin Anda gunakan ke agen.
# 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
: Pembuatan Gambar Wanx. DASHSCOPE_API_KEY perlu dikonfigurasi dalam variabel lingkungan.code_interpreter
: Penerjemah Kodeweb_browser
: Penjelajahan Webamap_weather
: Cuaca AMAP. AMAP_TOKEN perlu dikonfigurasi dalam variabel lingkungan.wordart_texture_generation
: Pembuatan tekstur seni kata. DASHSCOPE_API_KEY perlu dikonfigurasi dalam variabel lingkungan.web_search
: Pencarian Web. []qwen_vl
: Pengenalan gambar Qwen-VL. DASHSCOPE_API_KEY perlu dikonfigurasi dalam variabel lingkungan.style_repaint
: Gaya karakter digambar ulang. DASHSCOPE_API_KEY perlu dikonfigurasi dalam variabel lingkungan.image_enhancement
: Mengejar kaca pembesar bayangan. DASHSCOPE_API_KEY perlu dikonfigurasi dalam variabel lingkungan.text-address
: Geocoding. MODELSCOPE_API_TOKEN perlu dikonfigurasi dalam variabel lingkungan.speech-generation
: Generasi ucapan. MODELSCOPE_API_TOKEN perlu dikonfigurasi dalam variabel lingkungan.video-generation
: Pembuatan video. MODELSCOPE_API_TOKEN perlu dikonfigurasi dalam variabel lingkungan.Silakan lihat readme multi-agen.
Jika Anda ingin mempelajari lebih lanjut tentang detail praktis Agen, Anda dapat merujuk ke artikel dan tutorial video kami:
Kami menghargai antusiasme Anda dalam berpartisipasi dalam proyek ModelScope-Agent sumber terbuka kami. Jika Anda mengalami masalah apa pun, silakan laporkan kepada kami. Jika Anda telah membuat demo Agen baru dan siap membagikan pekerjaan Anda kepada kami, silakan buat permintaan tarik kapan saja! Jika Anda memerlukan bantuan lebih lanjut, silakan hubungi kami melalui email di [email protected] atau grup komunikasi!
Facechain adalah proyek sumber terbuka untuk menghasilkan potret yang dipersonalisasi dalam berbagai gaya menggunakan gambar wajah yang diunggah oleh pengguna. Dengan mengintegrasikan kemampuan Facechain ke dalam kerangka modelscope-agent, kami telah menyederhanakan proses penggunaan secara signifikan. Pembuatan potret yang dipersonalisasi kini dapat dilakukan melalui dialog dengan Agen Facechain.
Tautan Aplikasi FaceChainAgent Studio: https://modelscope.cn/studios/CVstudio/facechain_agent_studio/summary
Anda dapat menjalankannya langsung di lingkungan notebook/Colab/lokal: 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
Proyek ini dilisensikan di bawah Lisensi Apache (Versi 2.0).