【DataWhale学习笔记】使用AgentScope调用同义倩文大模型

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

  • Post Request APIs,包括
    • HuggingFaceModelScope Inference API
    • 自定义模型API

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 Msgmsg = 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 sequentialpipelinedef main() -> None:"""A conversation demo"""agentscope.init(model_configs="./model_configs.json")# Init two agentsdialog_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 assistantx = Nonewhile x is None or x.content != "exit":x = sequentialpipeline([dialog_agent, user_agent], x)if __name__ == "__main__":main()

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/747856.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

部署prometheus+Grafana可视化仪表盘监控服务

一、部署prometheus及监控仪表盘 简介 Prometheus是开源监控报警系统和时序列数据库(TSDB)。 Prometheus的基本原理是通过HTTP协议周期性抓取被监控组件的状态,任意组件只要提供对应的HTTP接口就可以接入监控,输出被监控组件信息的HTTP接口被叫做expo…

Node.js(1)

跨平台的node.js运行环境,使开发者可以搭建服务器端的js应用程序 它可以编写服务器端程序; 编写数据接口;提供网页资源浏览功能 前端工程化:开发集成的所有工具和技术 与浏览器环境的区别 node.js环境中没有DOM和BOM fs模块-读…

使用Jackson进行 JSON 序列化和反序列化

在Spring应用程序中&#xff0c;您可以通过Maven添加Jackson依赖&#xff0c;并创建一个工具类来封装对象的序列化和反序列化方法。以下是详细步骤&#xff1a; 1. 引入 Jackson 依赖 如果使用 Maven&#xff0c;您可以在 pom.xml 文件中添加以下依赖&#xff1a; <depend…

5 个适用于 Windows 10 和 11 的最佳 PDF 转 Word 转换器

PDF 文件是共享文档的首选格式&#xff0c;但是此类文件存在一些限制&#xff0c;导致难以修改或编辑。因此&#xff0c;您可能会发现自己正在寻找一种将 PDF 文件转换为 Word 或其他可编辑格式的方法。 有许多不同的 PDF 转换器&#xff0c;每种转换器提供的功能略有不同。本…

多人聊天室 (epoll - Linux网络编程)

文章目录 零、效果展示一、服务器代码二、客户端代码三、知识点1.bind() 四、改进方向五、跟练视频 零、效果展示 一个服务器作为中转站&#xff0c;多个客户端之间可以相互通信。至少需要启动两个客户端。 三个客户端互相通信 一、服务器代码 chatServer.cpp #include <…

突破编程_C++_设计模式(中介者模式)

1 中介者模式的基本概念 C中的中介者模式&#xff08;Mediator Pattern&#xff09;是一种行为型设计模式&#xff0c;主要用于降低多个对象和类之间的通信复杂性。这种模式通过引入一个中介类来封装和处理不同类之间的通信&#xff0c;从而实现松耦合&#xff0c;使代码更易于…

每天一个数据分析题(二百零九)

某销售服饰的电商店铺想要通过漏斗模型分析转化率数据&#xff0c;关于单一漏斗模型的局限性&#xff0c;下列说法不正确的是&#xff08;&#xff09; A.不能反映趋势&#xff0c;单一漏斗模型只能反映某一时期的情况,不能看出转化率是在上升还是下降。需要增加时间维度上的比…

【unity与android的交互(一)】安卓打包相关的常见参数详解

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;元宇宙-秩沅 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 秩沅 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a;Uni…

【解读】Synopsys发布2024年开源安全和风险分析报告OSSRA

软件供应链管理中&#xff0c;许可证和安全合规性至关重要。开源组件和库可降低风险&#xff0c;但需了解许可证内容。Synopsys 2023年审计发现&#xff0c;超过一半的代码库存在许可证冲突。MIT许可证是最常用的宽松许可证&#xff0c;但也与其他许可证存在不兼容风险。点此获…

AI新工具(20240315) 用户通过点击图像的特定部分实现域区图像动画; 先进的机器人操作框架

✨ 1: Follow-Your-Click 用户通过点击图像的特定部分实现域区图像动画 Follow-Your-Click 是一个开放领域的区域性图像动画创作工具&#xff0c;它可以通过简短的提示语实现图像中特定区域的动画效果。这种功能允许用户通过点击图像的特定部分并输入简短的指令&#xff08;例…

ViT学习笔记

一、Embedding层 对于标准的Transformer 模块&#xff0c;要求输入的是 token (向量 ) 序列&#xff0c;即二维矩阵 [num_token, token_dim] 在代码实现中&#xff0c;直接通过一个卷积层来实现以ViT- B/16为例&#xff0c;使用卷积核大小为 16x16 &#xff0c; stride 为 16 …

【Streamlit学习笔记】实现包含多个sheet的excel文件下载

1、什么是Streamlit Streamlit是一个免费的开源框架&#xff0c;用于快速构建和共享漂亮的机器学习和数据科学Web应用程序&#xff0c;官网链接 Streamlit Streamlit API链接 API reference 实际项目中遇到的问题&#xff1a;包含多个sheet的excel文件下载&#xff0c;下面将给…

二维数组_矩阵交换行

任务描述 给定一个5*5的矩阵&#xff08;数学上&#xff0c;一个rc的矩阵是一个由r行c列元素排列成的矩形阵列&#xff09;&#xff0c;将第n行和第m行交换&#xff0c;输出交换后的结果。 输入格式: 输入共6行&#xff0c;前5行为矩阵的每一行元素,元素与元素之间以一个空格…

传输层的UDP协议

1. UDP协议报文格式 1.1 16位端口号 UDP协议报文中&#xff0c;端口号占2个字节&#xff0c;包括 源端口号 和 目的端口号。 1.2 16位UDP长度 UDP报文长度为2个字节 &#xff0c;即UDP数据报长度为0~65535&#xff0c;也就是64kb。 1.3 16位UDP检验和 数据在网络传输的…

k8s helm 删除 tiller

kuberneter 上面装了 helm 想卸载还并不是那么简单, 参考 stackoverflow 回复 kubectl get -n kube-system secrets,sa,clusterrolebinding -o name|grep tiller|xargs kubectl -n kube-system delete kubectl get all -n kube-system -l apphelm -o name|xargs kubectl dele…

DHCP在企业网的部署及安全防范

学习目标&#xff1a; 1. DHCP能够解决什么问题&#xff1f; 2. DHCP服务器如何部署&#xff1f; 3. 私接设备会带来什么问题以及如何防范&#xff1f; 给DHCP服务器配置地址&#xff1a; 地址池&#xff1a; DHCP有2种分配模式&#xff1a;全局分配和接口分配 DHCP enable

element el-table 表格限制多选个数

本次的功能的要求是&#xff1a; 原本的引入的elment 的表格&#xff0c;去除全选框&#xff0c;版本对比的按钮&#xff0c;需要在选择版本&#xff0c;并且版本个数为2的时候&#xff0c;可点击&#xff0c;进行版本对比操作每次选择版本的时候&#xff0c;目前已有两个选择…

酷轻松气囊按摩护膝全新上线,科技呵护膝部健康

在快节奏的现代生活中&#xff0c;膝部健康问题逐渐引起人们的重视。长时间的站立、行走或运动&#xff0c;都可能对膝部造成不同程度的压力和损伤。 特别是家里有老人一直被老寒腿、关节发凉疼痛困扰的&#xff0c;经常一遇到下雨天&#xff0c;膝盖就不舒服&#xff1b;尤其到…

HDC2010+STM32读取数据发送到onenet平台

第一次用HDC2010用stm32l051单片机读取数据看了2天的datasheet都没看明白&#xff0c;好在在老板的帮助下里面的数据读取出来。之后的工作一个人好在顺利完成。以下记录一下写的代码 /* USER CODE BEGIN Header */ /********************************************************…

Linux下非阻塞IO实验二

一. 简介 前面一篇文章编写Linux驱动代码&#xff08;轮询函数的实现&#xff09;&#xff0c;来处理 Linux下应用程序以非阻塞方式访问设备。文章地址&#xff1a; Linux下非阻塞IO实验一-CSDN博客 本文编写另外一种驱动代码实现方式&#xff0c;与上面实现的区别主要是阻…