【DataWhale学习笔记】使用AgentScope调用qwen大模型

AgentScope

AgentScope介绍

AgentScope是一款全新的Multi-Agent框架,专为应用开发者打造,旨在提供高易用、高可靠的编程体验!

  • 高易用:AgentScope支持纯Python编程,提供多种语法工具实现灵活的应用流程编排,内置丰富的API服务(Service)以及应用样例,供开发者直接使用。同时,AgentScope提供了详尽的教程API文档应用样例
  • 高鲁棒:确保开发便捷性和编程效率的同时,针对不同能力的大模型,AgentScope提供了全面的重试机制、定制化的容错控制和面向Agent的异常处理,以确保应用的稳定、高效运行;
  • 基于Actor的分布式机制:AgentScope设计了一种新的基于Actor的分布式机制,实现了复杂分布式工作流的集中式编程和自动并行优化,即用户可以使用中心化编程的方式完成分布式应用的流程编排,同时能够零代价将本地应用迁移到分布式的运行环境中。

AgentScope安装

从github拉取源代码

git clone https://github.com/modelscope/agentscope.git
以编辑模式安装包
cd AgentScope
pip install -e .

AgentScope基础使用

准备Model Configs

AgentScope支持以下模型API服务:

  • OpenAI Python APIs,包括
    • OpenAI Chat, DALL-E和Embedding API
    • 兼容OpenAI的Inference库,例如FastChatvllm

OpenAI API Configs

对于OpenAI API,您需要准备一个包含以下字段的模型配置字典:

{
    "config_name": "{配置名称}",                 # 用于识别配置的名称
    "model_type": "openai" | "openai_dall_e" | "openai_embedding",
    "model_name": "{模型名称,例如gpt-4}",        # openai API中的模型
    # 可选
    "api_key": "xxx",                           # OpenAI API的API密钥。如果未设置,将使用环境变量OPENAI_API_KEY。
    "organization": "xxx",                      # OpenAI API的组织。如果未设置,将使用环境变量OPENAI_ORGANIZATION。
}

DashScope API Config

对于 DashScope API,你需要准备一个包含如下字段的配置字典:

{
    "config_name": "{配置名称}",                   # 用于识别配置的名称
    "model_type": "dashscope_chat" | "dashscope_text_embedding" | "dashscope_image_synthesis",
    "model_name": "{模型名称,例如 qwen-max}",      # dashscope 中的模型
    "api_key": "xxx",                             # The API key for DashScope API.
}

Post Request API Config

对于post请求API,配置包含以下字段。

{
    "config_name": "{配置名称}",       # 用于识别配置的名称
    "model_type": "post_api",
    "api_url": "https://xxx",         # 目标url
    "headers": {                      # 需要的头信息
      ...
    },
}

为了方便开发和调试,AgentScope在scripts目录下提供了丰富的脚本以快速部署模型服务。 有关模型服务的详细使用,请参阅我们的教程和API文档。

这里我们这次实验用的model_config.json内容如下

[
    {
        "model_type": "dashscope_chat",
        "config_name": "qwen",
        "model_name": "qwen-max",
        "api_key": "sk-",
        "generate_args": {
            "temperature": 0.5
        }
    }
]

灵积DashScope网址:模型服务灵积 DashScope - 阿里云 (aliyun.com)

创建Agent

脚本如下:

from agentscope.agents import DialogAgent
import agentscope

# 初始化了多个大模型
agentscope.init(
    model_configs="./model_configs.json"
)

# 使用qwen大模型初始化一个对话agent
dialog_agent_qwen = DialogAgent(
    name="Assistant_qwen",
    sys_prompt="You're a helpful assistant.",  # sys_prompt可以自行定义,不能为空
    model_config_name="qwen",  # 这里的qwen和前面的model_config.json文件中的config_name要一一对应,否则Agent找不到大模型会报错
)

# 简单实用 可以当作一个api
from agentscope.message import Msg

msg = Msg(name="小助手",content="你好啊,给我介绍一下阿里AgentScope")

dialog_agent_qwen (msg)

运行结果

Assistant_qwen: 您好,阿里云AgentScope是一款针对分布式应用性能监控的工具,它能够深入到代码层面,提供细粒度的链路追踪和性能诊断能力。通过在应用中植入探针,AgentScope可以自动收集并上报应用的各项性能指标、数据库调用、RPC调用等信息,实现从用户请求入口到服务端内部调用的全链路监控。

具体来说,阿里云AgentScope可以帮助开发者:

1. 实现端到端的请求跟踪,了解每个请求在系统中的完整流转过程。
2. 快速定位性能瓶颈,发现并解决潜在问题,提高系统稳定性与响应速度。
3. 提供详细的SQL执行分析,帮助优化数据库查询性能。
4. 对服务间的依赖关系进行可视化展示,便于理解系统的整体架构和服务之间的交互情况。

总之,阿里云AgentScope是提升应用性能管理(APM)效率,保障业务稳定运行的重要工具之一。

对话示例

model_config.json依旧使用前面创建的

代码脚本参考agentscope代码仓目录下的examples/conversation/conversation.py文件

# -*- coding: utf-8 -*-
"""A simple example for conversation between user and assistant agent."""
import agentscope
from agentscope.agents import DialogAgent
from agentscope.agents.user_agent import UserAgent
from agentscope.pipelines.functional import sequentialpipeline


def main() -> None:
    """A conversation demo"""
    
    agentscope.init(model_configs="./model_configs.json")

    # Init two agents
    dialog_agent = DialogAgent(
        name="Assistant",
        sys_prompt="You're a helpful assistant.",
        model_config_name="qwen",  # replace by your model config name
    )
    user_agent = UserAgent()

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


if __name__ == "__main__":
    main()

这个示例可以实现和大模型进行交互式对话

  • 16
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值