当前位置: 首页 > article >正文

【CMAEL多智能体框架】第一节 环境搭建及简单应用(构建一个鲜花选购智能体)

第一节 环境搭建


文章目录

  • 第一节 环境搭建
  • 前言
  • 一、安装
  • 二、获取API
    • 1. 使用熟悉的API代理平台
    • 2.设置不使用明文存放API
  • 三 、具体应用
    • 进阶任务
  • 总结


前言

CAMEL Multi-Agent是一个开源的、灵活的框架,它提供了一套完整的工具和库,用于构建和模拟多智能体系统。它支持多种编程语言和平台,使得开发者能够根据自己的需求和偏好选择合适的工具。
这里附上 CMAEL的github链接 :

  • 教程地址:https://github.com/datawhalechina/camel-agent-tutorial
  • CAMEL: https://github.com/camel-ai/camel

一、安装

教程中提供了很多安装的方式,为了避免环境冲突,笔者这里选择比较熟悉的 conda创建

代码如下:

conda create --name camel python=3.10
conda activate camel
git clone -b v0.2.19 https://github.com/camel-ai/camel.git
cd camel
pip install -e .[all]

接下来就是漫长的等待安装了!

二、获取API

1. 使用熟悉的API代理平台

例如 硅基流动ModelScope

笔者这里选择ModelScop,获取到自己的SDK令牌
在这里插入图片描述在本地测试一下能不能跑一个语言模型的测试代码出来:
如下图,创建一个py文件,做测试
在这里插入图片描述我们运行:

python haha.py

在这里插入图片描述可以发现调用成功了。
接下来我们测试一个调用多模态模型
在这里插入图片描述我们要求模型分析图片内容
在这里插入图片描述

2.设置不使用明文存放API

明文存放API是危险的,毕竟防人之心不可无,API除了免费赠送的就是自费购买的(都是money呀)
我们可以使用dotenv 来管理 API 密钥,首先我们安装python-dotenv 库

pip install python-dotenv

之后在外面的项目根目录创建一个名为 .env 的文件,并在其中添加你的 API 密钥:

QWEN_API_KEY=你的api密钥

其实贴心的 CMAEL框架已经帮我们创建好了 .env
在这里插入图片描述重新调用模型也是没问题的。
在这里插入图片描述

三 、具体应用

接下来我们将根据教程创建一个股市交易智能体

from colorama import Forefrom camel.societies import RolePlaying
from camel.utils import print_text_animated
from camel.models import ModelFactory
from camel.types import ModelPlatformTypefrom dotenv import load_dotenvimport osload_dotenv(dotenv_path='.env')api_key = os.getenv('QWEN_API_KEY')model = ModelFactory.create(model_platform=ModelPlatformType.OPENAI_COMPATIBLE_MODEL,model_type="Qwen/Qwen2.5-72B-Instruct",url='https://api-inference.modelscope.cn/v1/',api_key=api_key
)def main(model=model, chat_turn_limit=50) -> None:task_prompt = "为股票市场开发一个交易机器人"#设置任务目标role_play_session = RolePlaying(assistant_role_name="Python 程序员",#设置AI助手角色名assistant_agent_kwargs=dict(model=model),user_role_name="股票交易员",#设置用户角色名,在roleplay中,user用于指导AI助手完成任务user_agent_kwargs=dict(model=model),task_prompt=task_prompt,with_task_specify=True,task_specify_agent_kwargs=dict(model=model),output_language='中文'#设置输出语言)print(Fore.GREEN+ f"AI 助手系统消息:\n{role_play_session.assistant_sys_msg}\n")print(Fore.BLUE + f"AI 用户系统消息:\n{role_play_session.user_sys_msg}\n")print(Fore.YELLOW + f"原始任务提示:\n{task_prompt}\n")print(Fore.CYAN+ "指定的任务提示:"+ f"\n{role_play_session.specified_task_prompt}\n")print(Fore.RED + f"最终任务提示:\n{role_play_session.task_prompt}\n")n = 0input_msg = role_play_session.init_chat()while n < chat_turn_limit:n += 1assistant_response, user_response = role_play_session.step(input_msg)if assistant_response.terminated:print(Fore.GREEN+ ("AI 助手已终止。原因: "f"{assistant_response.info['termination_reasons']}."))breakif user_response.terminated:print(Fore.GREEN+ ("AI 用户已终止。"f"原因: {user_response.info['termination_reasons']}."))breakprint_text_animated(Fore.BLUE + f"AI 用户:\n\n{user_response.msg.content}\n")print_text_animated(Fore.GREEN + "AI 助手:\n\n"f"{assistant_response.msg.content}\n")if "CAMEL_TASK_DONE" in user_response.msg.content:breakinput_msg = assistant_response.msgif __name__ == "__main__":main()

在这里插入图片描述

进阶任务

我想要创建一个鲜花选购智能体,帮助客户进行自助选花,给出专属选择建议。
在这里插入图片描述在这里插入图片描述可以看到基本实现了我的需求,但是并不成熟,比较粗糙。需要后面随着课程的深入进一步优化。

总结

通过本节的学习,我成功搭建了CAMEL Multi-Agent框架的环境,并初步掌握了如何使用该框架创建多智能体系统。
通过实际案例的演练,我了解了如何设置任务提示、角色名称和输出语言,以及如何通过角色扮演的方式实现智能体之间的对话。
尽管初步实现了功能,但智能体的表现仍有提升空间,后续课程将进一步优化和完善。

相关文章:

【CMAEL多智能体框架】第一节 环境搭建及简单应用(构建一个鲜花选购智能体)

第一节 环境搭建 文章目录 第一节 环境搭建前言一、安装二、获取API1. 使用熟悉的API代理平台2.设置不使用明文存放API 三 、具体应用进阶任务 总结 前言 CAMEL Multi-Agent是一个开源的、灵活的框架&#xff0c;它提供了一套完整的工具和库&#xff0c;用于构建和模拟多智能体…...

网络工程师 (31)VLAN

前言 VLAN&#xff08;Virtual Local Area Network&#xff09;即虚拟局域网&#xff0c;是一种将物理局域网划分成多个逻辑上独立的虚拟网络的技术。 一、定义与特点 定义&#xff1a;VLAN是对连接到的第二层交换机端口的网络用户的逻辑分段&#xff0c;不受网络用户的物理位置…...

C++17 新特性解析

C++17 是 C++ 标准的一个重要更新,它在 C++11/14 的基础上引入了许多新特性,进一步简化了代码编写、提升了性能和类型安全性。以下是 C++17 的主要特性分类介绍: 一、语言核心改进 1. 结构化绑定(Structured Bindings) 允许将元组、结构体或数组的成员直接解包到变量中。…...

泛化、选择、分化

泛化是指记忆联系的“发散”&#xff0c;泛化兴奋的基础是模糊兴奋。记忆联系的“发散”有以下几种种情况&#xff1a; 1、联络区的一原始记忆柱群&#xff08;A1&#xff09;具有直接或间接与其它任意联络区的任意原始记忆柱群建立记忆联系的潜力。也就是说任何两个对象&…...

网络安全架构师怎么考 网络安全 架构

安全通信网络 随着现代技术的不断发展&#xff0c;等级保护对象通常通过网络实现资源共享和数据交互&#xff0c;当大量的设备连成网络后&#xff0c;网络安全成了最为关注的问题。按照“一个中心&#xff0c;三重防御”的纵深防御思想&#xff0c;边界外部通过广域网或城域网…...

Android系统分区概述和编译镜像包理解

1. 分区一&#xff1a;bootloader&#xff1b; 设备启动后&#xff0c;会先进入bootloader程序&#xff0c;这里会通过判断开机时的按键组合&#xff0c;选择启动到哪种模式。相当于电脑的bios 这里主要有Android系统、recovery模式&#xff08;音量上键电源键&#xff09;、f…...

【案例教程】无人机生态环境监测、图像处理与GIS数据分析综合实践技术应用

专题一、无人机航拍基本流程、航线规划与飞行实践 1.无人机行业应用概况 2.无人机遥感监测简介 3.无人机与传感器类型 4.无人机航线规划设计&#xff08;谷歌地球软件的使用&#xff09; 5.无人机飞行软件操作&#xff08;DJI App设置实践视频&#xff09; 6.无人机航拍一…...

depcheck检查node.js项目中未使用和缺失依赖的工具

depcheck检查node.js项目中未使用和缺失依赖的工具 一、安装二、使用方法 depcheck 是一个用于检查 Node.js 项目中未使用依赖项和缺失依赖项的工具。以下为你详细介绍它的相关信息、使用方法和作用。 主要作用: 1.发现未使用的依赖 在项目开发过程中&#xff0c;我们可能会安…...

在 C# 中,处理 Excel 和 PDF 文件的库有很多。以下是一些比较常用的选择

读取 Excel 文件的库 NPOI 用途&#xff1a;可以读取和写入 .xls 和 .xlsx 文件。特点&#xff1a;无需安装 Microsoft Office&#xff0c;支持简单的 Excel 操作&#xff0c;如格式化、公式、图表等。 EPPlus 用途&#xff1a;主要用于 .xlsx 格式&#xff08;Excel 2007 及以…...

HTML之JavaScript函数声明

HTML之JavaScript函数声明 1. function 函数名(){}2. var 函数名 function(){}<!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1…...

【算法】动态规划专题⑪ —— 区间DP python

目录 引入进入正题回归经典总结 引入 区间动态规划&#xff08;区间DP&#xff09;适用于解决涉及区间最优化的经典问题&#xff0c;如石子合并、最长回文子序列等。 进入正题 石子合并 https://www.acwing.com/problem/content/284/ 有 N 堆石子排成一排&#xff0c;其编号为…...

现代C++多线程基础 -忆苦思甜pthread_mutex

c 老古董 文章目录 c 老古董pthread_mutex概念常用apipthread_mutex_initpthread_mutex_lockpthread_mutex_trylockpthread_mutex_unlockpthread_mutex_destroy 案例 pthread_mutex 概念 互斥锁 mutex是一种简单的加锁的方法来控制对共享资源的访问&#xff0c;mutex只有两种…...

玩转适配器模式

文章目录 解决方案现实的举例适用场景实现方式适配器模式优缺点优点:缺点:适配器模式可比上一篇的工厂模式好理解多了,工厂模式要具有抽象的思维。这个适配器模式,正如字面意思,就是要去适配某一件物品。 假如你正在开发一款股票市场监测程序, 它会从不同来源下载 XML 格…...

腾讯云大数据套件TBDS与阿里云大数据能力产品对比

前言 博主在接触大数据方向研究的时候是在2016年,那时候正是大数据概念非常火热的一个时间段,最著名的Google的3篇论文。Google FS、MapReduce、BigTable,奠定了大数据框架产品的基础。Google文件系统,计算框架和存储框架。往后所有的大数据产品和过程域无一不是在三个模块…...

Codeforces Round 1003 (Div. 4)(A~G题题解)

A. Skibidus and Amogu 思路&#xff1a;把字符串最后的us变成i就可以了&#xff0c;水题一个 #include <iostream> #include <string> int main() { int t; std::cin >> t; std::cin.ignore(); while (t--) { std::string W; std::getline(std::c…...

ubuntu使用防火墙开放和关闭指定端口

防火墙可以阻止或允许外部对特定端口的访问&#xff0c;Ubuntu 常用的防火墙管理工具是 ufw&#xff08;Uncomplicated Firewall&#xff09; &#xff0c;如果在开发网络通信相关的内容时&#xff0c;要确保所需的端口是打开的&#xff0c;这样可以排除出题出现时的一个问题—…...

CP AUTOSAR标准之GPTDriver(AUTOSAR_SWS_GPTDriver)(更新中……)

1 简介和功能概述 该规范指定了AUTOSAR基础软件模块GPT驱动程序的功能、API和配置。   GPT驱动程序是微控制器抽象层(MCAL)的一部分。它初始化并控制微控制器的内部通用定时器(GPT)。   GPT驱动程序提供服务和配置参数 启动和停止硬件计时器获取计时器值控制时间触发的中断…...

mysql8.0使用PXC实现高可用

1.什么是 PXC PXC 是一套 MySQL 高可用集群解决方案&#xff0c;与传统的基于主从复制模式的集群架构相比 PXC 最突出特点就是解决了诟病已久的数据复制延迟问题&#xff0c;基本上可以达到实时同步。而且节点与节点之间&#xff0c;他们相互的关系是对等的。PXC 最关注的是数据…...

大数据学习之SparkStreaming、PB级百战出行网约车项目一

一.SparkStreaming 163.SparkStreaming概述 Spark Streaming is an extension of the core Spark API that enables scalable, high-throughput, fault-tolerant stream processing of live data streams. Spark Streaming 是核心 Spark API 的扩展&#xff0c;支持实时数据…...

Ollama部署DeepSeek(windows or ubuntu)

Ollama(官网是https://ollama.com/)是一个专为在本地机器上便捷部署和运行大型语言模型&#xff08;LLM&#xff09;而设计的开源框架。它简化了大型语言模型的部署过程&#xff0c;提供了轻量级与可扩展的架构&#xff0c;使得研究人员、开发人员和爱好者能够更加方便地在本地…...

10.代码生成器-树表

1.导入部门表 2.配置生成信息页面 生成代码即可使用。...

2050年10月26日,星期四,芜湖

2050年10月26日&#xff0c;星期四&#xff0c;芜湖 清晨6:30&#xff0c;阳光透过智能调光窗帘缓缓洒进卧室&#xff0c;没有刺耳的闹钟&#xff0c;取而代之的是模拟自然光线和舒缓的江水声&#xff0c;这是林薇一天美好的开始。她的智能手环早已监测到她已进入浅睡眠状态&a…...

Python的那些事第十六篇:Python的网络爬虫技术

基于Python的网络爬虫技术研究与应用 摘要 随着互联网的飞速发展&#xff0c;网络爬虫技术在数据采集、信息挖掘等领域发挥着重要作用。本文详细介绍了Python环境下常用的网络爬虫技术&#xff0c;包括Requests库、BeautifulSoup库以及Scrapy框架。通过对这些工具的使用方法、…...

【AIGC】在VSCode中集成 DeepSeek(OPEN AI同理)

在 Visual Studio Code (VSCode) 中集成 AI 编程能力&#xff0c;可以通过安装和配置特定插件来实现。以下是如何通过 Continue 和 Cline 插件集成 DeepSeek&#xff1a; 一、集成 DeepSeek 获取 DeepSeek API 密钥&#xff1a;访问 DeepSeek 官方网站&#xff0c;注册并获取 …...

如何下载CentOS镜像文件

文章目录 如何下载CentOS镜像文件 如何下载CentOS镜像文件 直接前往阿里云官网下载即可。 阿里云官网地址&#xff1a;https://www.aliyun.com 进入官网后&#xff0c;鼠标停留在文档与社区位置&#xff0c;找到镜像站&#xff0c;点击进入即可。进入后&#xff0c;我们可以…...

大模型chagpt原理(持续更新)

20250210更新&#xff1a; 根据李宏毅课程可知&#xff0c;大模型chatgpt基本原理分为三步&#xff08;每一步都是在做文字接龙&#xff0c;但训练资料不同&#xff09; 一、依赖大量网上文章、维基百科等资料训练 对资料进行去重&#xff0c;劣质优质划分&#xff0c;过滤等…...

开启对话式智能分析新纪元——Wyn商业智能 BI 携手Deepseek 驱动数据分析变革

2月18号&#xff0c;Wyn 商业智能 V8.0Update1 版本将重磅推出对话式智能分析&#xff0c;集成Deepseek R1大模型&#xff0c;通过AI技术的深度融合&#xff0c;致力于打造"会思考的BI系统"&#xff0c;让数据价值触手可及&#xff0c;助力企业实现从数据洞察到决策执…...

嵌入式C语言:大小端详解

目录 一、大小端的概念 1.1. 大端序&#xff08;Big-endian&#xff09; 1.2. 小端序&#xff08;Little-endian&#xff09; 二、大小端与硬件体系的关系 2.1. 大小端与处理器架构 2.2. 大小端与网络协议 2.3. 大小端对硬件设计的影响 三、判断系统的大小端方式 3.1.…...

Vue事件处理 - 按键修饰符

Vue 渐进式JavaScript 框架 基于Vue2的学习笔记 - Vue事件处理 - 按键修饰符 目录 按键修饰符 常见修饰符 绑定按键事件 绑定事件 优化回车修饰符 多个按键 直接绑定数字 总结 按键修饰符 常见修饰符 .esc .up .down .left .right . space .ctrl .shift .delete 绑定…...

数据中心网络监控

数据中心是全球协作的特定设备网络&#xff0c;用来在internet网络基础设施上传递、加速、展示、计算、存储数据信息。 对于任何利用IT基础设施的企业来说&#xff0c;数据中心都是运营的核心&#xff0c;它本质上为整个业务网络托管业务应用程序和存储空间。数据中心可以是任…...