Modelscope Hub | กระดาษ | สาธิต
中文 || อังกฤษ
Modelscope-Agent เป็นเฟรมเวิร์ก Agent ที่ปรับแต่งและปรับขนาดได้ เอเจนต์เดียวมีความสามารถต่างๆ เช่น การเล่นตามบทบาท การโทร LLM การใช้เครื่องมือ การวางแผน และหน่วยความจำ โดยส่วนใหญ่จะมีลักษณะดังต่อไปนี้:
RolePlay
ด้วย OpenAI รุ่นล่าสุด GPT-4o
นักพัฒนาสามารถสัมผัสประสบการณ์คุณสมบัตินี้ได้โดยการระบุพารามิเตอร์ image_url
Assistant API
ที่ใช้งานง่าย และยังมอบ Tools API
ที่รันยูทิลิตี้ในคอนเทนเนอร์ที่แยกเดี่ยวและปลอดภัย โปรดดูเอกสารbash run_msgpt.sh
โคลน repo และติดตั้งการพึ่งพา:
git clone https://github.com/modelscope/modelscope-agent.git
cd modelscope-agent && pip install -r requirements.txt
ModelScope Notebook เสนอ Free Tier ที่ช่วยให้ผู้ใช้ 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_agentkwargs
: พารามิเตอร์ที่เป็นไปได้อื่น ๆ 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
สำหรับการเรียกใช้ฟังก์ชันและการเติมข้อความ
ปัจจุบันเรามีผู้ให้บริการโมเดล 3 ราย ได้แก่ 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
: การสร้างพื้นผิวอักษรศิลป์ ต้องกำหนดค่า DASHSCOPE_API_KEY ในตัวแปรสภาพแวดล้อมweb_search
: การค้นหาเว็บ -qwen_vl
: การจดจำรูปภาพ Qwen-VL ต้องกำหนดค่า DASHSCOPE_API_KEY ในตัวแปรสภาพแวดล้อมstyle_repaint
: วาดสไตล์ตัวละครใหม่ ต้องกำหนดค่า DASHSCOPE_API_KEY ในตัวแปรสภาพแวดล้อมimage_enhancement
: แว่นขยายไล่เงา ต้องกำหนดค่า DASHSCOPE_API_KEY ในตัวแปรสภาพแวดล้อมtext-address
: Geocoding 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 License (เวอร์ชัน 2.0)