# 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 ?

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
## đ 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)