ChatDev - 使用自然语言理念创建定制软件(通过法学硕士支持的多代理协作)

Created at: 2023-08-28 10:18:13
Language: Python
License: Apache-2.0

软件开发的通信代理

【中文 |中文 |日语 |韩语 |菲律宾语 |法语

📚 【 维基 |🚀 本地演示 |👥 社区构建的软件 |🔧 定制

📖 概述

  • ChatDev是一家虚拟软件公司,通过各种智能代理运营,担任不同的角色,包括首席执行官,首席产品官,首席技术官,程序员,评论员,测试人员,美术设计师 .这些智能体形成了一个多智能体组织结构,并通过“通过编程彻底改变数字世界”的使命而团结在一起。ChatDev 中的代理通过参与专门的功能研讨会进行协作,包括设计、编码、测试和文档等任务。
  • ChatDev的主要目标是提供一个易于使用高度可定制可扩展的框架,该框架基于大型语言模型(LLM),是研究集体智慧的理想场景。

🎉 新闻

  • 2023 年 9 月 25 日:Git 功能现已推出,使程序员能够利用 GitHub 进行版本控制。要启用此功能,只需在 中设置为 。
    "git_management"
    "True"
    ChatChainConfig.json

  • 2023 年 9 月 20 日:人-代理-交互模式现已推出!你可以通过扮演审阅者的角色并向程序员提出建议来参与 ChatDev 团队;尝试。请参阅指南示例
    python3 run.py --task [description_of_your_idea] --config "Human"

  • 2023 年 9 月 1 日:艺术模式现已推出!你可以激活设计器代理以生成软件中使用的图像;尝试。请参阅指南示例
    python3 run.py --task [description_of_your_idea] --config "Art"
  • 2023 年 8 月 28 日:系统公开可用。
  • 2023 年 8 月 17 日:v1.0.0 版本已准备好发布。
  • 2023 年 7 月 30 日:用户可以自定义聊天链、阶段和角色设置。此外,现在还支持联机日志模式和重播模式。
  • 2023 年 7 月 16 日:与该项目相关的预印本论文发表。
  • 2023 年 6 月 30 日:ChatDev 存储库的初始版本发布。

❓ 聊天开发可以做什么?

介绍

https://github.com/OpenBMB/ChatDev/assets/11889052/80d01d2f-677b-4399-ad8b-f7af9bb62b72

⚡️ 快速入门

若要开始使用,请按照以下步骤操作:

  1. 克隆 GitHub 存储库:首先使用以下命令克隆存储库:
    git clone https://github.com/OpenBMB/ChatDev.git
    
  2. 设置 Python 环境:确保你具有版本 3.9 或更高版本的 Python 环境。你可以使用以下命令创建和激活此环境,并替换为你的首选环境名称:
    ChatDev_conda_env
    conda create -n ChatDev_conda_env python=3.9 -y
    conda activate ChatDev_conda_env
    
  3. 安装依赖项:移动到目录中并通过运行以下命令安装必要的依赖项:
    ChatDev
    cd ChatDev
    pip3 install -r requirements.txt
    
  4. 设置 OpenAI API 密钥:将你的 OpenAI API 密钥导出为环境变量。替换为你的实际 API 密钥。请记住,此环境变量是特定于会话的,因此如果打开新的终端会话,则需要再次设置它。在 Unix/Linux 上: 在 Windows 上:
    "your_OpenAI_API_key"
    export OPENAI_API_KEY="your_OpenAI_API_key"
    
    $env:OPENAI_API_KEY="your_OpenAI_API_key"
    
  5. 构建你的软件:使用以下命令启动软件的构建,替换为你的想法描述和所需的项目名称: 在 Unix/Linux 上: 在Windows上:
    [description_of_your_idea]
    [project_name]
    python3 run.py --task "[description_of_your_idea]" --name "[project_name]"
    
    python run.py --task "[description_of_your_idea]" --name "[project_name]"
    
  6. 运行你的软件:生成后,你可以在特定项目文件夹下的目录中找到你的软件,例如 .在该目录中使用以下命令运行软件:在 Unix/Linux 上: 在 Windows 上:
    WareHouse
    project_name_DefaultOrganization_timestamp
    cd WareHouse/project_name_DefaultOrganization_timestamp
    python3 main.py
    
    cd WareHouse/project_name_DefaultOrganization_timestamp
    python main.py
    

✨️ 高级技能

有关更多详细信息,请参阅我们的维基,你可以在其中找到:

  • 所有命令运行参数的介绍。
  • 设置本地 Web 演示的简单指南,其中包括增强的可视化日志、重播演示和简单的聊天链可视化工具。
  • ChatDev 框架概述。
  • 全面介绍聊天链配置中的所有高级参数。
  • 自定义 ChatDev 的指南,包括:
    • 聊天链:设计你自己的软件开发流程(或任何其他流程),例如.
      DemandAnalysis -> Coding -> Testing -> Manual
    • 阶段:在聊天链中设计自己的阶段,如.
      DemandAnalysis
    • 角色:定义公司中的各种代理,例如 .
      Chief Executive Officer

🤗 分享你的软件!

代码:我们非常期待你有兴趣参与我们的开源项目。如果你遇到任何问题,请随时报告。如果你有任何疑问或准备与我们分享你的工作,请随时创建拉取请求!你的贡献受到高度重视。如果你还有其他需要帮助的地方,请告诉我!

公司:创建自己的自定义“ChatDev公司”是轻而易举的。此个性化设置涉及三个简单的配置 JSON 文件。查看目录中提供的示例。有关自定义的详细说明,请参阅我们的 Wiki

CompanyConfig/Default

软件:每当你使用ChatDev开发软件时,都会生成一个包含所有基本信息的相应文件夹。与我们分享你的工作就像提出拉取请求一样简单。下面是一个示例:执行命令。这将创建一个软件包并生成一个名为 的文件夹。在里面,你会发现:

python3 run.py --task "design a 2048 game" --name "2048"  --org "THUNLP" --config "Default"
/WareHouse/2048_THUNLP_timestamp

  • 与2048游戏软件相关的所有文件和文档
  • 负责此软件的公司的配置文件,包括来自
    CompanyConfig/Default
  • 一个全面的日志,详细说明了软件的构建过程,可用于重播(
    timestamp.log
    )
  • 用于创建此软件的初始提示 (
    2048.prompt
    )

在此处查看社区贡献的软件!

👨 💻 软件贡献者

贡献 贡献 贡献 贡献 贡献 贡献 贡献 贡献

🔎 引文

@misc{qian2023communicative,
      title={Communicative Agents for Software Development}, 
      author={Chen Qian and Xin Cong and Wei Liu and Cheng Yang and Weize Chen and Yusheng Su and Yufan Dang and Jiahao Li and Juyuan Xu and Dahai Li and Zhiyuan Liu and Maosong Sun},
      year={2023},
      eprint={2307.07924},
      archivePrefix={arXiv},
      primaryClass={cs.SE}
}

⚖️ 许可证

  • 源代码许可:我们项目的源代码在Apache 2.0许可下获得许可。此许可证允许使用、修改和分发代码,但须遵守 Apache 2.0 许可证中概述的某些条件。
  • 项目开源状态:该项目确实是开源的;但是,此名称主要用于非商业目的。虽然我们鼓励社区在研究和非商业应用方面的合作和贡献,但重要的是要注意,任何将项目组件用于商业目的都需要单独的许可协议。
  • 数据许可:我们项目中使用的相关数据根据CC BY-NC 4.0进行许可。本许可明确允许将数据用于非商业用途。我们想强调的是,使用这些数据集训练的任何模型都应严格遵守非商业使用限制,并应专门用于研究目的。

🌟 明星历史

星史图表

🤝 确认

        

📬 联系

如果你有任何问题、反馈或想与我们联系,请随时通过电子邮件与我们联系 chatdev.openbmb@outlook.com