【📚 Wiki | 🚀 Local Demo | 👥 Community Built Software | 🔧 Customization】
- ChatDev es una empresa de software virtual que opera a través de varios agentes inteligentes que desempeñan diferentes roles, incluyendo al Director Ejecutivo , Director de Producto , Director Tecnológico , programador , revisor , tester , diseñador de arte . Estos agentes forman una estructura organizacional multi-agente y están unidos por una misión de "revolucionar el mundo digital a través de la programación." Los agentes dentro de ChatDev colaboran participando en seminarios funcionales especializados, incluyendo tareas como diseñar, codificar, probar y documentar.
- El objetivo principal de ChatDev es ofrecer un marco de trabajo fácil de usar, altamente personalizable y extensible, que se basa en modelos de grandems modelos de lenguaje (LLMs, por sus siglas en inglés) y sirve como un escenario ideal para estudiar la inteligencia colectiva.
- 25 de septiembre de 2023: La característica Git ya está disponible, permite al programador utilizar GitHub para el control de versiones. Para habilitar esta función, simplemente asigna el valor
"True"
igual a"git_management"
enChatChainConfig.json
. - 20 de septiembre de 2023: ¡El modo Interacción Humano-Agente ya está disponible! Puedes involucrarte con el equipo de ChatDev asumiendo el rol de revisor y haciendo sugerencias al programador ;
prueba
python3 run.py --task [description_of_your_idea] --config "Human"
. Consulta la guía y el ejemplo. - 1 de septiembre de 2023: ¡El modo Arte ya está disponible! Puedes activar al agente de diseño para generar imágenes utilizadas en el software;
prueba
python3 run.py --task [description_of_your_idea] --config "Art"
. Consulta la guía y el ejemplo. - 28 de agosto de 2023: El sistema está disponible al público.
- 17 de agosto de 2023: La versión v1.0.0 estaba lista para ser lanzada.
- 30 de julio de 2023: Los usuarios pueden personalizar los ajustes de ChatChain, Phase, y Role. Además, ahora se soportan tanto el modo Log en línea como el modo de repetición.
- 16 de julio de 2023: Se publicó el artículo preprint asociado con este proyecto.
- 30 de junio de 2023: Se lanzó la versión inicial del repositorio de ChatDev.
demo.mp4
Para comenzar, sigue estos pasos:
- Clonar el Repositorio de GitHub: Empieza clonando el repositorio utilizando el comando:
git clone https://github.com/OpenBMB/ChatDev.git
- Configurar el Entorno Python: Asegúrate de tener un entorno Python versión 3.9 o superior. Puedes crear y
activar este entorno usando los siguientes comandos, reemplazando
ChatDev_conda_env
con el nombre que prefieras para el entorno:conda create -n ChatDev_conda_env python=3.9 -y conda activate ChatDev_conda_env
- Instalar Dependencias: Mueve al directorio
ChatDev
e instala las dependencias necesarias ejecutando:cd ChatDev pip3 install -r requirements.txt
- Establecer la Llave de la API de OpenAI: Exporta tu llave de la API de OpenAI como una variable de entorno. Reemplaza
"your_OpenAI_API_key"
con tu llave de la API real. Recuerda que esta variable de entorno es específica de la sesión, así que necesitas establecerla de nuevo si abres una nueva sesión de terminal. En Unix/Linux:En Windows:export OPENAI_API_KEY="tu_llave_de_OpenAI_API"
$env:OPENAI_API_KEY="tu_llave_de_OpenAI_API"
- Construye Tu Software: Usa el siguiente comando para iniciar la construcción de tu software,
reemplazando
[description_of_your_idea]
con la descripción de tu idea y[project_name]
con el nombre deseado para tu proyecto: En Unix/Linux:En Windows:python3 run.py --task "[description_de_tu_idea]" --name "[nombre_del_proyecto]"
python run.py --task "[description_de_tu_idea]" --name "[nombre_del_proyecto]"
- Ejecuta Tu Software: Una vez generado, puedes encontrar tu software en el directorio
WareHouse
bajo una carpeta de proyecto específica, comonombre_proyecto_OrganizationDefault_timestamp
. Ejecuta tu software usando el siguiente comando dentro de ese directorio: En Unix/Linux:En Windows:cd WareHouse/nombre_proyecto_OrganizationDefault_timestamp python3 main.py
cd WareHouse/nombre_proyecto_OrganizationDefault_timestamp python main.py
Para obtener información más detallada, por favor refiérese a nuestro Wiki, donde puede encontrar:
- Una introducción a todos los parámetros de ejecución de comandos.
- Una guía sencilla para configurar una demostración web local, que incluye registros visualizados mejorados, una demostración de repetición y un sencillo Visualizador de ChatChain.
- Un resumen del marco de trabajo de ChatDev.
- Una introducción exhaustiva a todos los parámetros avanzados en la configuración de ChatChain.
- Guías para personalizar ChatDev, incluyendo:
- ChatChain: Diseña tu propio proceso de desarrollo de software (o cualquier otro proceso), tal
como
DemandAnalysis -> Coding -> Testing -> Manual
. - Fase: Diseña tu propia fase dentro de ChatChain, como
DemandAnalysis
. - Rol: Definiendo los diversos agentes en tu empresa, como el
Chief Executive Officer
.
- ChatChain: Diseña tu propio proceso de desarrollo de software (o cualquier otro proceso), tal
como
Código: Estamos entusiasmados con tu interés en participar en nuestro proyecto de código abierto. Si te encuentras con algún problema, no dudes en reportarlo. ¡Siéntete libre de crear una solicitud de extracción si tienes alguna pregunta o si estás preparado para compartir tu trabajo con nosotros! Tus contribuciones son muy valoradas. ¡Avísame si hay algo más en lo que necesitas ayuda!
Empresa: Crear tu propia "Empresa ChatDev" personalizada es muy fácil. Esta configuración personalizada involucra tres simples
archivos JSON de configuración. Echa un vistazo al ejemplo proporcionado en el directorio CompanyConfig/Default
. Para instrucciones
detalladas sobre la personalización, consulta nuestro Wiki.
Software: Cada vez que desarrolles software usando ChatDev, se generará una carpeta correspondiente que contiene toda la
información esencial. Compartir tu trabajo con nosotros es tan simple como hacer una solicitud de extracción. Aquí hay un ejemplo: ejecuta el
comando python3 run.py --task "diseña un juego del a 2048 game" --name "2048" --org "THUNLP" --config "Default"
. Esto creará
un paquete de software y generará una carpeta llamada /WareHouse/2048_THUNLP_timestamp
. Dentro, encontrarás:
- Todos los archivos y documentos relacionados con el software del juego 2048
- Archivos de configuración de la empresa responsable de este software, incluyendo los tres archivos JSON de configuración
de
CompanyConfig/Default
- Un registro comprensivo que detalla el proceso de construcción del software que se puede utilizar para reproducir (
timestamp.log
) - El prompt inicial utilizado para crear este software (
2048.prompt
)
¡Ve el software contribuido por la comunidad aquí!
@misc{qian2023communicative,
title={Agentes Comunicativos para Desarrollo de Software},
author={Chen Qian y Xin Cong y Wei Liu y Cheng Yang y Weize Chen y Yusheng Su y Yufan Dang y Jiahao Li y Juyuan Xu y Dahai Li y Zhiyuan Liu y Maosong Sun},
year={2023},
eprint={2307.07924},
archivePrefix={arXiv},
primaryClass={cs.SE}
}
- Licencia del Código Fuente: El código fuente de nuestro proyecto está licenciado bajo la Licencia Apache 2.0. Esta licencia permite el uso, modificación y distribución del código, sujeto a ciertas condiciones descritas en la Licencia Apache 2.0.
- Estado de Código Abierto del Proyecto: El proyecto es de código abierto; sin embargo, esta designación está principalmente destinada para propósitos no comerciales. Aunque alentamos la colaboración y las contribuciones de la comunidad para la investigación y aplicaciones no comerciales, es importante notar que cualquier utilización de los componentes del proyecto para propósitos comerciales requiere acuerdos de licencia separados.
- Licencia de Datos: Los datos relacionados utilizados en nuestro proyecto están licenciados bajo CC BY-NC 4.0. Esta licencia permite explícitamente el uso no comercial de los datos. Queremos enfatizar que cualquier modelo entrenado utilizando estos conjuntos de datos debe adherirse estrictamente a la restricción de uso no comercial y debe ser empleado exclusivamente para propósitos de investigación.
Si tienes alguna pregunta, comentarios, o deseas ponerte en contacto, no dudes en enviarnos un correo electrónico a [email protected]