# Communicative Agents for Software Development

【📚 Wiki | 🚀 DĂ©mo Locale | đŸ‘„ Logiciels de la CommunautĂ© | 🔧 Personnalisation】

## 📖 Vue d'ensemble - **ChatDev** se prĂ©sente comme une **sociĂ©tĂ© de logiciels virtuelle** opĂ©rant par le biais de divers **agents intelligents** tenant diffĂ©rents rĂŽles, incluant le Directeur GĂ©nĂ©ral , le Directeur de Produit , le Directeur Technologique , programmeur , l'auditeur , le testeur et le designer graphique . Ces agents forment une structure organisationnelle multi-agents et sont unis par une mission de "rĂ©volutionner le monde numĂ©rique Ă  travers la programmation." Les agents de ChatDev **collaborent** en participant Ă  des sĂ©minaires fonctionnels spĂ©cialisĂ©s, incluant des tĂąches telles que la conception, le codage, les tests et la documentation. - L'objectif principal de ChatDev est de proposer un cadre **facile Ă  utiliser**, **hautement personnalisable** et **extensible**, basĂ© sur de grands modĂšles linguistiques (LLMs) et servant de scĂ©nario idĂ©al pour Ă©tudier l'intelligence collective.

## 📰 ActualitĂ©s * **25 septembre 2023 : La fonctionnalitĂ© **Git** est maintenant disponible**, permettant au programmeur d'utiliser GitHub pour le contrĂŽle de version. Pour activer cette fonction, dĂ©finissez simplement ``"git_management"`` sur ``"True"`` dans ``ChatChainConfig.json``.

* 20 septembre 2023 : Le mode **Interaction Humain-Agent** est maintenant disponible ! Vous pouvez interagir avec l'équipe ChatDev en jouant le rÎle de l'examinateur et en faisant des suggestions au programmeur ; essayez ``python3 run.py --task [description_de_votre_idée] --config "Humain"``. Voir le [guide](../wiki.md#human-agent-interaction) et l'[exemple](../WareHouse/Gomoku_HumanAgentInteraction_20230920135038).

* 1er septembre 2023 : Le mode **Art** est maintenant disponible ! Vous pouvez activer l'agent designer pour gĂ©nĂ©rer des images utilisĂ©es dans le logiciel; essayez ``python3 run.py --task [description_de_votre_idĂ©e] --config "Art"``. Voir le [guide](../wiki.md#art) et l'[exemple](../WareHouse/gomokugameArtExample_THUNLP_20230831122822). * 28 aoĂ»t 2023 : Le systĂšme est dĂ©sormais disponible au public. * 17 aoĂ»t 2023 : La version v1.0.0 Ă©tait prĂȘte Ă  ĂȘtre publiĂ©e. * 30 juillet 2023 : Les utilisateurs peuvent personnaliser les paramĂštres de ChatChain, Phase et RĂŽle. De plus, le mode journal en ligne et le mode de relecture sont dĂ©sormais pris en charge. * 16 juillet 2023 : L'[article prĂ©imprimĂ©](https://arxiv.org/abs/2307.07924) associĂ© Ă  ce projet a Ă©tĂ© publiĂ©. * 30 juin 2023 : La version initiale du dĂ©pĂŽt ChatDev a Ă©tĂ© publiĂ©e. ## ❓ Que peut faire ChatDev ? ![introduction](../misc/intro.png) https://github.com/OpenBMB/ChatDev/assets/11889052/80d01d2f-677b-4399-ad8b-f7af9bb62b72 ## âšĄïž DĂ©marrage rapide Pour commencer, suivez ces Ă©tapes: 1. **Clonez le dĂ©pĂŽt GitHub:** Commencez par cloner le dĂ©pĂŽt en utilisant la commande: ``` git clone https://github.com/OpenBMB/ChatDev.git ``` 2. **Configurer l'environnement Python:** Assurez-vous que vous disposez d'un environnement Python de version 3.9 ou supĂ©rieure. Vous pouvez crĂ©er et activer cet environnement en utilisant les commandes suivantes, en remplaçant `ChatDev_conda_env` par votre environnement prĂ©fĂ©rĂ© nom : ``` conda create -n ChatDev_conda_env python=3.9 -y conda activate ChatDev_conda_env ``` 3. **Installer les dĂ©pendances:** DĂ©placez-vous dans le rĂ©pertoire `ChatDev` et installez les dĂ©pendances nĂ©cessaires en exĂ©cutant : ``` cd ChatDev pip3 install -r requirements.txt ``` 4. **DĂ©finir la clĂ© API OpenAI:** Exportez votre clĂ© API OpenAI en tant que variable d'environnement. Remplacez `" your_OpenAI_API_key "` par votre clĂ© API proprement dite. Rappelez-vous que cette variable d'environnement est spĂ©cifique Ă  une session, vous devez donc la redĂ©finir Ă  chaque nouvelle instance de terminal. Sous Unix/Linux : ``` export OPENAI_API_KEY="your_OpenAI_API_key" ``` Sous Windows : ``` $env:OPENAI_API_KEY="your_OpenAI_API_key" ``` 5. **Construisez Votre Logiciel :** Utilisez la commande suivante pour initier la construction de votre logiciel, en remplaçant `[description_of_your_idea]` par la description de votre idĂ©e et `[project_name]` par le nom souhaitĂ© pour votre projet : Sur Unix/Linux : ``` python3 run.py --task "[description_of_your_idea]" --name "[project_name]" ``` Sous Windows : ``` python run.py --task "[description_of_your_idea]" --name "[project_name]" ``` 6. **ExĂ©cutez Votre Logiciel :** Une fois gĂ©nĂ©rĂ©, vous pouvez trouver votre logiciel dans le rĂ©pertoire `WareHouse` sous un dossier de projet spĂ©cifique, tel que `project_name_DefaultOrganization_timestamp`. ExĂ©cutez votre logiciel avec la commande suivante dans ce rĂ©pertoire : Sur Unix/Linux : ``` cd WareHouse/project_name_DefaultOrganization_timestamp python3 main.py ``` Sous Windows : ``` cd WareHouse/project_name_DefaultOrganization_timestamp python main.py ``` ## ✚ CompĂ©tences AvancĂ©es Pour plus d'informations dĂ©taillĂ©es, veuillez consulter notre [Wiki](../wiki.md), oĂč vous pouvez trouver : - Une introduction Ă  tous les paramĂštres d'exĂ©cution de la commande. - Un guide simple pour configurer une dĂ©mo web locale, incluant des logs visualisĂ©s amĂ©liorĂ©s, une dĂ©mo de revision, et un simple visualiseur ChatChain. - Un aperçu du framework ChatDev. - Une introduction complĂšte Ă  tous les paramĂštres avancĂ©s de la configuration ChatChain. - Des guides pour personnaliser ChatDev, y compris : - ChatChain : Concevez votre propre processus de dĂ©veloppement de logiciel (ou tout autre processus), comme ``AnalyseDeLaDemande -> Codage -> Test -> Manuel``. - Phase : Concevez votre propre phase au sein de ChatChain, comme ``AnalyseDeLaDemande``. - RĂŽle : DĂ©finissez les diffĂ©rents agents de votre entreprise, comme le ``Directeur GĂ©nĂ©ral``. ## đŸ€— Partagez Votre Logiciel ! **Code** : Nous sommes enthousiastes Ă  l'idĂ©e de votre intĂ©rĂȘt Ă  participer Ă  notre projet open-source. Si vous rencontrez des problĂšmes, n'hĂ©sitez pas Ă  les signaler. N'hĂ©sitez pas Ă  crĂ©er une demande de pull si vous avez des questions ou si vous ĂȘtes prĂȘt Ă  partager votre travail avec nous ! Vos contributions sont trĂšs apprĂ©ciĂ©es. Faites-moi savoir s'il y a autre chose dont vous avez besoin ! **Entreprise** : CrĂ©er votre propre "ChatDev Entreprise" personnalisĂ©e est un jeu d'enfant. Cette configuration personnalisĂ©e implique trois simples fichiers JSON de configuration. Consultez l'exemple fourni dans le rĂ©pertoire ``CompanyConfig/Default``. Pour des instructions dĂ©taillĂ©es sur la personnalisation, reportez-vous Ă  notre [Wiki](../wiki.md). **Logiciel** : Chaque fois que vous dĂ©veloppez un logiciel avec ChatDev, un dossier correspondant est gĂ©nĂ©rĂ© contenant toutes les informations essentielles. Partager votre travail avec nous est aussi simple que de faire une demande de pull. Voici un exemple : exĂ©cutez la commande ``python3 run.py --task "concevoir un jeu 2048" --name "2048" --org "THUNLP" --config "Default"``. Ceci crĂ©era un paquet logiciel et gĂ©nĂ©rera un dossier nommĂ© ``/WareHouse/2048_THUNLP_timestamp``. A l'intĂ©rieur, vous trouverez : - Tous les fichiers et documents relatifs au logiciel de jeu 2048 - Les fichiers de configuration de l'entreprise responsable de ce logiciel, y compris les trois fichiers JSON de configuration de ``CompanyConfig/Default`` - Un journal complet dĂ©taillant le processus de construction du logiciel qui peut ĂȘtre utilisĂ© pour rejouer (``timestamp.log``) - L'invite initiale utilisĂ©e pour crĂ©er ce logiciel (``2048.prompt``) **Voir les logiciels contribuĂ©s par la communautĂ© [ici](../Contribution.md)!** ### Contributeurs Logiciels Contributor Contributor Contributor Contributor Contributor Contributor Contributor Contributor Contributor Contributor Contributor Contributor Contributor ## 📑 Citation ``` @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} } @misc{qian2023experiential, title={Experiential Co-Learning of Software-Developing Agents}, author={Chen Qian and Yufan Dang and Jiahao Li and Wei Liu and Weize Chen and Cheng Yang and Zhiyuan Liu and Maosong Sun}, year={2023}, eprint={2312.17025}, archivePrefix={arXiv}, primaryClass={cs.CL} } ``` ## ⚖ Licence - Licence du code source : Le code source de notre projet est sous licence Apache 2.0. Cette licence autorise l'utilisation, la modification et la distribution du code, sous rĂ©serve de certaines conditions dĂ©finies dans la Licence Apache 2.0. - Licence des donnĂ©es : Les donnĂ©es associĂ©es utilisĂ©es dans notre projet sont sous licence CC BY-NC 4.0. Cette licence permet explicitement l'utilisation non commerciale des donnĂ©es. Nous souhaitons souligner que tout modĂšle formĂ© Ă  l'aide de ces ensembles de donnĂ©es doit strictement respecter la restriction d'utilisation non commerciale et ne doit ĂȘtre utilisĂ© que pour des fins de recherche. ## Contact Si vous avez des questions, des retours ou souhaitez nous contacter, n'hĂ©sitez pas Ă  nous envoyer un email Ă  [chatdev.openbmb@outlook.com](mailto:chatdev.openbmb@outlook.com)