创新中心
个人中心
创新中心
个人中心

Multi-Agent实践第1期:5分钟上手AgentScope

阿里云创新中心> 创业资讯> Multi-Agent实践第1期:5分钟上手AgentScope

Multi-Agent实践第1期:5分钟上手AgentScope

魔搭社区 2024-03-29 17:16:21 300
LLM-Powered Agent作为探索人工通用智能的途径之一。这篇文章让你5分钟内快速上手一款多智能体编程框架,AgentScope!就5分钟,让你跨过多智能体开发的第一道门槛!5分钟能让你搭建一个属于你自己的、大模型驱动的多智能体聊天小应用!

前言

五分钟够做什么?刷几个短视频?看一篇新闻?

你是不是感觉最近大模型的各种应用层出不穷?你有没有想过自己可以很轻松地复刻或者创造出一些有趣的基于大模型和(多)智能体的应用,比如由多智能体组成的狼人杀?如果告诉你,现在有一款开源的多智能体编程框架,能让你很轻松地实现这些应用,你会不会很心动?

这篇文章让你5分钟内快速上手一款多智能体编程框架,AgentScope!就5分钟,让你跨过多智能体开发的第一道门槛!5分钟能让你搭建一个属于你自己的、大模型驱动的多智能体聊天小应用!

欢迎关注AgentScope,在github上(https://github.com/modelscope/agentscope) 为我们star 🌟。我们会在接下来几天,陆续推出一些教程,让大家每天花5~10分钟,搭建出不同的由简单到复杂的有趣的多智能体应用!

AgentScope编程三步走

没有显卡?别担心,现在很多公司提供了大模型api。只要能连接网络,用这些api,我们用一般的个人电脑也可以运行自己的智能体程序。

——开始前请做好连接大语言模型的准备有阿里云DashScope或OpenAI的api 访问API key,或者其他能接收设的http post-request的大模型端口。

——从github上clone AgentScope仓库(https://github.com/modelscope/agentscope),安装最新代码~


git clone git@github.com:modelscope/agentscope.git
cd AgentScope
# On mac
pip install -e .\[full\]
# On windows
pip install -e .[full]

第一步:如何连接大模型?

作为智能体(agent)的“大脑”,我们首先需要为我们的智能体准备一个大模型。比如,在AgentScope中配置DashScope支持的通义(qwen-max)模型配置:


import os

"""
在环境变量中设置了'DASHSCOPE_API_KEY':
命令行中执行:export DASHSCOPE_API_KEY='替换成你的apikey'
可以通过命令行:echo $DASHSCOPE_API_KEY 来检查是否真的设置成功
"""

dashscope_example_config = {
    "model_type": "dashscope_chat",
    "config_name": "tongyi_qwen_config",
    "model_name": "qwen-max",
    "api_key": f"{os.environ.get('DASHSCOPE_API_KEY')}",

除了DashScope的API,在AgentScope中也可以配置其他流行的模型 (只需要所有这些配置(config)中的一个,就足以完成本次任务~)


# 使用OpenAI模型(gpt-3.5-turbo,或者替换成其他openai模型)的配置 
# 相似的可以echo $OPENAI_API_KEY 来检查OPENAI_API_KEY是否设置成功
openai_example_config = {
    "model_type": "openai",
    "config_name": "gpt-3.5-config",
    "model_name": "gpt-3.5-turbo",
    "api_key": f"{os.environ.get('OPENAI_API_KEY')}",
    "generate_args": {
        "temperature": 0.5,
    },
}


# 其他可以通过post 访问的LLM接口
# 下面的my_postapi_config可以对应的open ai的post ai端口规则
# curl $YOUR_URL_TO_MODEL \
# -H "Content-Type: application/json" \
# -H "Authorization: Bearer $YOUR_API_KEY_IF_ANY" \
# -d '{
#   "model": "XXX",
#   "messages": [
#      .....
#   ]
# }'
postapi_example_config = {
    "model_type": "post_api_chat",
    "config_name": "my_postapi_config",
    "api_url": "$YOUR_URL_TO_MODEL",
    "headers": {
        "Content-Type": "application/json",
        "Authorization": "Bearer YOUR_API_KEY_IF_ANY"
    },
    "messages_key": "messages",
    "json_args": {
        "model": "XXX",
    }
}

除了对话模型,AgentScope还支持很多其他的模型调用,比如本地只用cpu跑的ollama的模型,又比如embedding生成、文生图、图生文等等。将来大家需要进一步开发更酷炫的多智体应用的时候,更多配置详情可以参考教程(https://modelscope.github.io/agentscope/zh_CN/tutorial/203-model.html)。

第二步:如何配置简单的智能体(agent)?

有了模型的配置,AgentScopet提供了一个非常方便的初始化方法,可以一步就帮你把所有的模型引入AgentScope环境中:


import agentscope

# 让config生效
agentscope.init(
    model_configs=[
      dashscope_example_config,
      openai_examaple_config,
      # 其他模型配置也可以继续添加在这里~
    ],
)

第三步:如何把agent包装成一个简单程序

好了,有了一个有记忆、能和你对话的智能体dialog_agent,现在我们创建一个user_agent作为你在电子世界的代理,用来接收用户输入信息。


from agentscope.agents.user_agent import UserAgent

user_agent = UserAgent()

现在我们已经创建好了user_agent和dialog_agent,再有几行代码,就能搭建出一个完整的小程序啦!


 # start the conversation between user and assistant
x = None
while x is None or x.content != "exit":
    x = dialog_agent(x)
    x = user_agent(x)

一键启动UI界面

什么,嫌弃命令行的应用不够酷炫?AgentScope懂你,为你提供一键生成图形界面!你只需要把上面的代码包装在一个main函数中,把程序保存成.py文件,比如conversation.py。


import os
import agentscope
from agentscope.agents import DialogAgent
from agentscope.agents.user_agent import UserAgent

def main() -> None:
    """A basic conversation demo"""

    dashscope_example_config = {
      "model_type": "dashscope_chat",
      "config_name": "tongyi_qwen_config",
      "model_name": "qwen-max",
      "api_key": f"{os.environ.get('DASHSCOPE_API_KEY')}",
    }
    agentscope.init(
        model_configs=[dashscope_example_config],
    )

    dialog_agent = DialogAgent(
        name="Assistant",
        sys_prompt="You're a helpful assistant.",
        model_config_name="tongyi_qwen_config",
    )
    user_agent = UserAgent()

    x = None
    while x is None or x.content != "exit":
        x = dialog_agent(x) 
        x = user_agent(x)

然后,在命令行一键启动~ (需要确保安装的是full verison)

as_studio conversation.py

你会看到类似于下面的输出


bash-3.2$ as_studio conversation.py
Running on local URL:  http://127.0.0.1:7860

To create a public link, set `share=True` in `launch()`.

在浏览器中打开http://127.0.0.1:7860, 一个简易的网页版就对话应用就准备好啦!

image

长期关注AgentScope

AgentScope正在高速开发阶段,欢迎长期关注关注我们,在github上(https://github.com/modelscope/agentscope) 为我们star 🌟!也欢迎有更多希望深度参与的小伙伴加入开发者社区,贡献代码,一起建设multi-agent多智体框架!

第四季创客松.png #阿里云 #Creat@AI创客松#AI创业

LLM-Powered Agent凭借长期记忆+自主规划+自动执行等特性,是探索人工通用智能(AGI)的可能途径之一。从单一智能体到多智能体的迭代,是实现AI执行更多更复杂的工作的重要跨越。

阿里云和魔搭社区联手举办Create@AI创客松,以“Multi-Agent for X”为题,旨在招募广泛的创作者、开发者以及创业者,探索多个Agent通讯协作,模拟人类社交、娱乐及工作协同场景,实现更高质高效的人机协作模式。

>>> 点击 即刻报名参赛

版权声明: 创新中心创新赋能平台中,除来源为“创新中心”的文章外,其余文章均来自所标注的来源,版权归原作者或来源方所有,且已获得相关授权,创新中心「创业资讯」平台不拥有其著作权,亦不承担相应法律责任。如果您发现本平台中有涉嫌侵权的内容,可填写「投诉表单」进行举报,一经查实,本平台将立刻删除涉嫌侵权内容。