Modelscope 허브 | 논문 | 데모
中文 | 영어
Modelscope-Agent는 사용자 정의 가능하고 확장 가능한 에이전트 프레임워크입니다. 단일 에이전트는 역할극, 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
함수를 구현해야 합니다. 이 함수는 주로 메시지/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()을 구현할 수 있습니다. 사용자 정의 도구의 예는 데모_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
: 지오코딩. 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
노트북/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 라이센스(버전 2.0)에 따라 라이센스가 부여됩니다.