CAMEL: 用于“大脑”探索的大型语言模型社会中的通信代理
社区 | 安装 | 文档 | 示例 | 论文 | 引用 | 贡献 | CAMEL-AI
概述
会话和基于聊天的语言模型的快速进展使得复杂任务解决取得了显著进展。然而,它们的成功很大程度上依赖于人类输入来引导对话,这可能既具有挑战性又耗时。本文探讨了构建可扩展技术以促进通信代理之间的自主合作并深入了解其“认知”过程的潜力。为了解决实现自主合作的挑战,我们提出了一种新颖的通信代理框架,名为角色扮演。我们的方法涉及使用初始提示来引导聊天代理完成任务,同时保持与人类意图的一致性。我们展示了如何利用角色扮演来生成会话数据,用于研究聊天代理的行为和能力,为研究会话语言模型提供了宝贵的资源。我们的贡献包括引入一种新颖的通信代理框架,提供一种研究多代理系统合作行为和能力的可扩展方法,并开源我们的库以支持通信代理及其他领域的研究。此项目的GitHub仓库已公开发布在:https://github.com/camel-ai/camel。
社区
🐫 CAMEL是一个开源库,旨在研究自主和通信代理。我们相信,广泛研究这些代理能为其行为、能力和潜在风险提供宝贵的见解。为了促进这一领域的研究,我们实施并支持各种类型的代理、任务、提示、模型和模拟环境。
加入我们 (Slack, Discord 或 微信),推动建立AI社会的边界。
亲自试试
我们提供了一个 演示,展示了两个ChatGPT代理在扮演Python程序员和股票交易员角色时合作开发股票市场交易机器人。
安装
从PyPI安装
要安装基本的CAMEL库:
pip install camel-ai
某些功能需要额外的依赖项:
- 要安装所有依赖项:
pip install 'camel-ai[all]'
- 使用HuggingFace代理:
pip install 'camel-ai[huggingface-agent]'
- 启用RAG或使用代理记忆:
pip install 'camel-ai[tools]'
从源代码安装
推荐使用poetry从源代码安装CAMEL
:
# 确保你的Python版本高于3.9
# 你可以使用pyenv在系统中管理多个Python版本
# 克隆github仓库
git clone https://github.com/camel-ai/camel.git
# 进入项目目录
cd camel
# 如果你之前没有安装poetry
pip install poetry # (可选)
# 我们建议使用Python 3.10
poetry env use python3.10 # (可选)
# 激活CAMEL虚拟环境
poetry shell
# 安装基本的CAMEL库
# 需要大约90秒
poetry install
# 安装CAMEL的所有依赖项
poetry install -E all # (可选)
# 退出虚拟环境
exit
使用conda和pip从源代码安装CAMEL
:
# 创建一个conda虚拟环境
conda create --name camel python=3.9
# 激活CAMEL conda环境
conda activate camel
# 克隆github仓库
git clone -b v0.1.6.3 https://github.com/camel-ai/camel.git
# 进入项目目录
cd camel
# 从源代码安装CAMEL
pip install -e .
# 如果你想使用所有其他额外的软件包
pip install -e .[all] # (可选)
从Docker安装
详细指导可以在 这里 找到。
文档
示例
你可以在这里找到不同助手和用户角色对的任务列表。
例如,运行role_playing.py
脚本:
首先,你需要将OpenAI API密钥添加到系统环境变量中。方法取决于你的操作系统和使用的shell。
对于Bash shell(Linux, macOS, Windows上的Git Bash):
# 导出你的OpenAI API密钥
export OPENAI_API_KEY=<插入你的OpenAI API密钥>
OPENAI_API_BASE_URL=<插入你的OpenAI API BASE URL> #(如果你使用OpenAI代理服务,请指定此项)
对于Windows命令提示符:
REM 导出你的OpenAI API密钥
set OPENAI_API_KEY=<插入你的OpenAI API密钥>
set OPENAI_API_BASE_URL=<插入你的OpenAI API BASE URL> #(如果你使用OpenAI代理服务,请指定此项)
对于Windows PowerShell:
# 导出你的OpenAI API密钥
$env:OPENAI_API_KEY="<插入你的OpenAI API密钥>"
$env:OPENAI_API_BASE_URL="<插入你的OpenAI API BASE URL>" #(如果你使用OpenAI代理服务,请指定此项)
在每种情况下,将 <插入你的OpenAI API密钥>
替换为你的实际OpenAI API密钥。确保 =
号周围没有空格。
在设置OpenAI API密钥后,你可以运行脚本:
# 你可以在role_playing.py中更改角色对和初始提示
python examples/ai_society/role_playing.py
请注意,环境变量是会话特定的。如果你打开一个新的终端窗口或标签,你需要在新会话中再次设置API密钥。
使用开源模型作为后端(例如,本地设置Llama 3使用Ollama)
- 下载 Ollama。
- 设置Ollama后,通过在终端中输入以下命令来拉取Llama3模型:
ollama pull llama3
- 在你的项目目录中创建一个类似以下内容的ModelFile。
FROM llama3 # 设置参数 PARAMETER temperature 0
数据 (托管于 Hugging Face)
指令和任务的可视化
从其他研究工作中实现的研究创意
我们从其他研究工作中实现了一些令人惊叹的研究创意,供您构建、比较和定制您的代理。如果您使用了这些模块,请您友善地引用原始作品:
TaskCreationAgent
、TaskPrioritizationAgent
和BabyAGI
来自 Nakajima et al. 的作品:Task-Driven Autonomous Agent。[示例]
新闻
- 发布了 AI Society 和 Code 数据集(2023 年 4 月 2 日)
- 初次发布
CAMEL
Python 库(2023 年 3 月 21 日)
引用
@inproceedings{li2023camel,
title={CAMEL: Communicative Agents for "Mind" Exploration of Large Language Model Society},
author={Li, Guohao and Hammoud, Hasan Abed Al Kader and Itani, Hani and Khizbullin, Dmitrii and Ghanem, Bernard},
booktitle={Thirty-seventh Conference on Neural Information Processing Systems},
year={2023}
}
致谢
特别感谢 Nomic AI 为我们提供了他们的数据集探索工具(Atlas)的扩展访问权限。
我们还要感谢 Haya Hammoud 为我们的项目设计了初始徽标。
许可证
源代码遵循 Apache 2.0 许可证。
数据集遵循 CC BY NC 4.0 许可证,只允许非商业用途。建议使用该数据集训练的任何模型仅用于研究目的。
贡献到 CAMEL 🐫
我们感谢您对我们开源项目贡献的兴趣。我们提供了一份 贡献指南 文档,详细说明了贡献 CAMEL 的步骤。请参阅此指南,以确保顺利协作并成功贡献。🤝🚀
联系
欲了解更多信息,请联系 camel.ai.team@gmail.com。