Merge branch 'main' into docs/add-bahasa-indonesia-translation

This commit is contained in:
Imamuzzaki Abu Salam 2023-11-05 08:01:06 +07:00
commit 912ee0286e
No known key found for this signature in database
GPG Key ID: E83A7B4A2C91CD79
12 changed files with 564 additions and 11 deletions

View File

@ -116,5 +116,6 @@
"brainstorming": "False",
"gui_design": "True",
"git_management": "False",
"self_improve": "False"
"self_improve": "False",
"incremental_develop": "False"
}

View File

@ -97,5 +97,6 @@
"brainstorming": "False",
"gui_design": "True",
"git_management": "False",
"self_improve": "False"
"self_improve": "False",
"incremental_develop": "False"
}

View File

@ -110,5 +110,6 @@
"brainstorming": "False",
"gui_design": "True",
"git_management": "False",
"self_improve": "False"
"self_improve": "False",
"incremental_develop": "False"
}

View File

@ -0,0 +1,96 @@
{
"chain": [
{
"phase": "DemandAnalysis",
"phaseType": "SimplePhase",
"max_turn_step": -1,
"need_reflect": "True"
},
{
"phase": "LanguageChoose",
"phaseType": "SimplePhase",
"max_turn_step": -1,
"need_reflect": "True"
},
{
"phase": "CodeCompleteAll",
"phaseType": "ComposedPhase",
"cycleNum": 10,
"Composition": [
{
"phase": "CodeComplete",
"phaseType": "SimplePhase",
"max_turn_step": 1,
"need_reflect": "False"
}
]
},
{
"phase": "CodeReview",
"phaseType": "ComposedPhase",
"cycleNum": 3,
"Composition": [
{
"phase": "CodeReviewComment",
"phaseType": "SimplePhase",
"max_turn_step": 1,
"need_reflect": "False"
},
{
"phase": "CodeReviewModification",
"phaseType": "SimplePhase",
"max_turn_step": 1,
"need_reflect": "False"
}
]
},
{
"phase": "Test",
"phaseType": "ComposedPhase",
"cycleNum": 3,
"Composition": [
{
"phase": "TestErrorSummary",
"phaseType": "SimplePhase",
"max_turn_step": 1,
"need_reflect": "False"
},
{
"phase": "TestModification",
"phaseType": "SimplePhase",
"max_turn_step": 1,
"need_reflect": "False"
}
]
},
{
"phase": "EnvironmentDoc",
"phaseType": "SimplePhase",
"max_turn_step": 1,
"need_reflect": "True"
},
{
"phase": "Manual",
"phaseType": "SimplePhase",
"max_turn_step": 1,
"need_reflect": "False"
}
],
"recruitments": [
"Chief Executive Officer",
"Counselor",
"Chief Human Resource Officer",
"Chief Product Officer",
"Chief Technology Officer",
"Programmer",
"Code Reviewer",
"Software Test Engineer",
"Chief Creative Officer"
],
"clear_structure": "True",
"brainstorming": "False",
"gui_design": "True",
"git_management": "False",
"self_improve": "False",
"incremental_develop": "True"
}

View File

@ -27,7 +27,12 @@
## 🎉 News
- **October 26th, 2023: ChatDev is now supported with Docker for safe execution** (thanks to contribution from [ManindraDeMel](https://github.com/ManindraDeMel)). Please see [Docker Start Guide](wiki.md#docker-start).
- **November 2nd, 2023: ChatDev is now supported with a new feature: incremental development, which allows agents to develop upon existing codes.** Try `--config "incremental" --path "[source_code_directory_path]"` to start it.
<p align="center">
<img src='./misc/increment.png' width=700>
</p>
* October 26th, 2023: ChatDev is now supported with Docker for safe execution (thanks to contribution from [ManindraDeMel](https://github.com/ManindraDeMel)). Please see [Docker Start Guide](wiki.md#docker-start).
<p align="center">
<img src='./misc/docker.png' width=400>
</p>

View File

@ -27,7 +27,8 @@ class ChatChain:
task_prompt: str = None,
project_name: str = None,
org_name: str = None,
model_type: ModelType = ModelType.GPT_3_5_TURBO) -> None:
model_type: ModelType = ModelType.GPT_3_5_TURBO,
code_path: str = None) -> None:
"""
Args:
@ -46,6 +47,7 @@ class ChatChain:
self.project_name = project_name
self.org_name = org_name
self.model_type = model_type
self.code_path = code_path
with open(self.config_path, 'r', encoding="utf8") as file:
self.config = json.load(file)
@ -64,7 +66,8 @@ class ChatChain:
# init ChatEnv
self.chat_env_config = ChatEnvConfig(clear_structure=check_bool(self.config["clear_structure"]),
gui_design=check_bool(self.config["gui_design"]),
git_management=check_bool(self.config["git_management"]))
git_management=check_bool(self.config["git_management"]),
incremental_develop=check_bool(self.config["incremental_develop"]))
self.chat_env = ChatEnv(self.chat_env_config)
# the user input prompt will be self-improved (if set "self_improve": "True" in ChatChainConfig.json)
@ -202,7 +205,19 @@ class ChatChain:
shutil.copy(self.config_phase_path, software_path)
shutil.copy(self.config_role_path, software_path)
# write task prompt to software path
# copy code files to software path in incremental_develop mode
if check_bool(self.config["incremental_develop"]):
for root, dirs, files in os.walk(self.code_path):
relative_path = os.path.relpath(root, self.code_path)
target_dir = os.path.join(software_path, 'base', relative_path)
os.makedirs(target_dir, exist_ok=True)
for file in files:
source_file = os.path.join(root, file)
target_file = os.path.join(target_dir, file)
shutil.copy2(source_file, target_file)
self.chat_env._load_from_hardware(os.path.join(software_path, 'base'))
# write task prompt to software
with open(os.path.join(software_path, self.project_name + ".prompt"), "w") as f:
f.write(self.task_prompt_raw)
@ -251,7 +266,7 @@ class ChatChain:
git_info = "**[Git Log]**\n\n"
import subprocess
# 执行git log命令
# execute git log
command = "cd {}; git log".format(self.chat_env.env_dict["directory"])
completed_process = subprocess.run(command, shell=True, text=True, stdout=subprocess.PIPE)

View File

@ -18,16 +18,19 @@ from chatdev.utils import log_and_print_online
class ChatEnvConfig:
def __init__(self, clear_structure,
gui_design,
git_management):
git_management,
incremental_develop):
self.clear_structure = clear_structure
self.gui_design = gui_design
self.git_management = git_management
self.incremental_develop = incremental_develop
def __str__(self):
string = ""
string += "ChatEnvConfig.clear_structure: {}\n".format(self.clear_structure)
string += "ChatEnvConfig.git_management: {}\n".format(self.git_management)
string += "ChatEnvConfig.gui_design: {}\n".format(self.gui_design)
string += "ChatEnvConfig.incremental_develop: {}\n".format(self.incremental_develop)
return string

BIN
misc/increment.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 305 KiB

216
readme/README-Arabic.md Normal file
View File

@ -0,0 +1,216 @@
# Communicative Agents for Software Development
<p align="center">
<img src='../misc/logo1.png' width=550>
</p>
<p align="center">
【📚 <a href="wiki.md">الويكي</a> | 🚀 <a href="wiki.md#local-demo">عرض محلي</a> | 👥 <a href="Contribution.md">برامج تم تطويرها من قبل المجتمع</a> | 🔧 <a href="wiki.md#customization">تخصيص</a>
</p>
## 📖 نظرة عامة
- **ChatDev** هي **شركة برمجيات افتراضية** تعمل من خلال مجموعة متنوعة من **وكلاء ذكيين** يشغلون
أدوارًا مختلفة، بما في ذلك المدير التنفيذي الرئيسي <img src='../online_log/static/figures/ceo.png' height=20>، المدير التنفيذي للمنتج <img src='../online_log/static/figures/cpo.png' height=20>، المدير التنفيذي للتكنولوجيا <img src='../online_log/static/figures/cto.png' height=20>، مبرمج <img src='../online_log/static/figures/programmer.png' height=20>، مراجع <img src='../online_log/static/figures/reviewer.png' height=20>، اختبار <img src='../online_log/static/figures/tester.png' height=20>، مصمم فني <img src='../online_log/static/figures/designer.png' height=20>. تشكل هؤلاء
الوكلاء هيكل تنظيمي متعدد الوكلاء وموحد من خلال مهمة "ثورة عالم البرمجة الرقمي". يتعاون وكلاء ChatDev
من خلال المشاركة في ندوات وظيفية متخصصة، بما في ذلك مهام التصميم والبرمجة والاختبار والتوثيق.
- الهدف الرئيسي لـ ChatDev هو تقديم إطار عمل سهل الاستخدام، قابل للتخصيص بشكل كبير وقابل للتوسيع،
والذي يعتمد على نماذج لغوية كبيرة (LLMs) ويعتبر سيناريو مثالي لدراسة الذكاء الجماعي.
<p align="center">
<img src='../misc/company.png' width=600>
</p>
## 🎉 أخبار
- **26 أكتوبر 2023: تم دعم ChatDev الآن بواسطة Docker للتنفيذ الآمن** (بفضل مساهمة من [ManindraDeMel](https://github.com/ManindraDeMel)). يرجى الرجوع إلى [دليل بدء Docker](wiki.md#docker-start).
<p align="center">
<img src='../misc/docker.png' width=400>
</p>
- 25 سبتمبر 2023: وضع **Git** متاح الآن، مما يتيح للمبرمج <img src='../online_log/static/figures/programmer.png' height=20> استخدام Git لمراقبة الإصدار. لتمكين هذه الميزة، قم ببساطة بتعيين ``"git_management"`` إلى ``"True"`` في ``ChatChainConfig.json``. راجع [الدليل](wiki.md#git-mode).
<p align="center">
<img src='../misc/github.png' width=600>
</p>
- 20 سبتمبر 2023: وضع **تفاعل الإنسان مع الوكيل** متاح الآن! يمكنك المشاركة مع فريق ChatDev من خلال لعب دور المراجع <img src='../online_log/static/figures/reviewer.png' height=20> وتقديم اقتراحات للمبرمج <img src='../online_log/static/figures/programmer.png' height=20>;
جرب ``python3 run.py --task [وصف فكرتك] --config "Human"``. راجع [الدليل](wiki.md#human-agent-interaction) و[المثال](WareHouse/Gomoku_HumanAgentInteraction_20230920135038).
<p align="center">
<img src
='../misc/Human_intro.png' width=600>
</p>
- 1 سبتمبر 2023: وضع **الفن** متاح الآن! يمكنك تنشيط وكيل المصمم <img src='../online_log/static/figures/designer.png' height=20> لإنشاء صور تستخدم في البرمجيات;
جرب ``python3 run.py --task [وصف فكرتك] --config "Art"``. راجع [الدليل](wiki.md#art) و[المثال](WareHouse/gomokugameArtExample_THUNLP_20230831122822).
- 28 أغسطس 2023: النظام متاح الآن للجمهور.
- 17 أغسطس 2023: الإصدار v1.0.0 كان جاهزًا للإصدار.
- 30 يوليو 2023: يمكن للمستخدمين تخصيص إعدادات ChatChain و Phase و Role. بالإضافة إلى ذلك، يتم دعم وضع السجل الأونلاين ووضع الاستعادة
الآن.
- 16 يوليو 2023: تم نشر [ورقة مسبقة الطبع](https://arxiv.org/abs/2307.07924) مرتبطة بهذا المشروع.
- 30 يونيو 2023: تم إصدار النسخة الأولية من مستودع ChatDev.
## ❓ ماذا يمكن أن يفعل ChatDev؟
![intro](../misc/intro.png)
<https://github.com/OpenBMB/ChatDev/assets/11889052/80d01d2f-677b-4399-ad8b-f7af9bb62b72>
## ⚡️ بدء سريع
### 🖥️ بدء سريع باستخدام الطرفية
للبدء، اتبع هذه الخطوات:
1. **استنساخ مستودع GitHub:** ابدأ بنسخ المستودع باستخدام الأمر:
```
git clone <https://github.com/OpenBMB/ChatDev.git>
```
2. **إعداد بيئة Python:** تأكد من وجود بيئة Python بإصدار 3.9 أو أعلى. يمكنك إنشاء هذه البيئة وتفعيلها باستخدام الأوامر التالية، مستبدلًا "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. **تعيين مفتاح واجهة برمجة التطبيقات (API) الخاص بـ OpenAI:** قم بتصدير مفتاح واجهة برمجة التطبيقات (API) الخاص بك كمتغير بيئي. استبدل "your_OpenAI_API_key" بمفتاح API الفعلي الخاص بك. تذكر أن هذا المتغير البيئي محدد لجلسة معينة، لذا يجب عليك ضبطه مرة أخرى إذا قمت بفتح جلسة طرفية جديدة.
على نظام Unix/Linux:
```
export OPENAI_API_KEY="your_OpenAI_API_key"
```
على نظام Windows:
```
$env:OPENAI_API_KEY="your_OpenAI_API_key"
```
5. **بناء برمجياتك:** استخدم الأمر التالي لبدء بناء برمجياتك، مستبدلًا "[وصف فكرتك]" بوصف فكرتك و"[اسم المشروع]" بالمشروع المطلوب:
على نظام Unix/Linux:
```
python3 run.py --task "[وصف فكرتك]" --name "[اسم المشروع]"
```
على نظام Windows:
```
python run.py --task "[وصف فكرتك]" --name "[اسم المشروع]"
```
6. **تشغيل البرمجيات الخاصة بك:** بمجرد إنشاءها، يمكنك العثور على برمجياتك في دليل "WareHouse" تحت مجلد مشروع معين، مثل "project_name_DefaultOrganization_timestamp". قم بتشغيل البرمجيات باستخدام الأمر التالي داخل ذلك الدليل:
على نظام Unix/Linux:
```
cd WareHouse/project_name_DefaultOrganization_timestamp
python3 main.py
```
على نظام Windows:
```
cd WareHouse/project_name_DefaultOrganization_timestamp
python main.py
```
### 🐳 بدء سريع باستخدام Docker
- نشكر [ManindraDeMel](https://github.com/ManindraDeMel) على دعم Docker. يرجى الرجوع إلى [دليل بدء Docker](wiki.md#docker-start).
## ✨️ مهارات متقدمة
لمزيد من المعلومات التفصيلية، يرجى الرجوع إلى [ويكي](wiki.md) لدينا، حيث يمكنك العثور على:
- مقدمة إلى جميع معلمات تشغيل الأوامر.
- دليل مباشر لإعداد عرض ويب محلي، يشمل سجلات مرئية محسنة وعرض تكراري وأداة بصرية بسيطة لـ ChatChain.
- نظرة عامة على إطار ChatDev.
- مقدمة شاملة لجميع المعلمات المتقدمة في تكوين ChatChain.
- دلائل لتخصيص ChatDev، بما في ذلك:
- ChatChain: قم بتصميم عملية تطوير البرمجيات الخاصة بك (أو أي عملية أخرى)، مثل "DemandAnalysis -> Coding -> Testing -> Manual".
- Phase: قم بتصميم مرحلة خاصة بك ضمن ChatChain، مثل "DemandAnalysis".
- Role: حدد مختلف الوكلاء في شركتك، مثل "الرئيس التنفيذي".
## 🤗 شارك ببرمجياتك
**الكود**: نحن متحمسون لاهتمامك بالمشاركة في مشروعنا مفتوح المصدر. إذا واجهت أي مشاكل، فلا تتردد في الإبلاغ عنها. لا تتردد في إنشاء طلب استدراج إذا كان لديك أي استفسارات أو إذا كنت مستعدًا لمشاركة عملك معنا! تقديرنا الكبير لمساهماتك. يرجى إعلامي إذا كان هناك أي شيء آخر تحتاجه!
**الشركة**: إنشاء "شركة ChatDev" المخصصة الخاصة بك أمر سهل. يتضمن هذا الإعداد الشخصي ثلاثة ملفات JSON تكوينية بسيطة. تحقق من المثال المقدم في دليل "CompanyConfig/Default". للتعليمات التفصيلية حول التخصيص، يرجى الرجوع إلى [ويكي](wiki.md) لدينا.
**البرمجيات**: في كل مرة تطوّر فيها برمجيات باستخدام ChatDev، يتم إنشاء مجلد مقابل يحتوي على جميع المعلومات الأساسية. مشاركة عملك معنا بسيطة مثل إنشاء طلب استدراج. إليك مثال: قم بتنفيذ الأمر "python3 run.py --task 'تصميم لعبة 2048' --name '2048' --org 'THUNLP' --config 'Default'". سيتم بذلك إنشاء حزمة برمجية وإنشاء مجلد بالاسم "/WareHouse/2048_THUNLP_timestamp". بداخله، ستجد:
- جميع الملفات والوثائق المتعلقة ببرمجية لعبة 2048
- ملفات تكوين الشركة المسؤولة عن هذه البرمجية، بما في ذلك ثلاث ملفات تكوين JSON من "CompanyConfig/Default"
- سجل شامل يوثق عملية بناء البرمجية يمكن استخدامه للعب المسجل (timestamp.log)
- الاستفهام الأولي المستخدم لإنشاء هذه البرمجية (2048.prompt)
**راجع البرمجيات المساهمة من قبل المجتمع [هنا](Contribution.md)!**
## 👨‍💻‍ مساهمون
<a href="https://github.com/OpenBMB/ChatDev/graphs/contributors">
<img src="https://contrib.rocks/image?repo=OpenBMB/ChatDev" />
</a>
صُنع بواسطة [contrib.rocks](https://contrib.rocks).
## 🔎 الاقتباس
```
@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. يسمح هذا الترخيص صراحة باستخدام البيانات لأغراض غير تجارية. نحن نود التأكيد على أن أي نماذج تم تدريبها باستخدام هذه البيانات يجب أن تلتزم صارمًا بقيود الاستخدام غير التجاري ويجب استخدامها حصرًا لأغراض البحث.
## 🌟 تاريخ النجوم
[![Star History Chart](https://api.star-history.com/svg?repos=openbmb/chatdev&type=Date)](https://star-history.com/#openbmb/chatdev&Date)
## 🤝 الشكر
<a href="http://nlp.csai.tsinghua.edu.cn/"><img src="../misc/thunlp.png" height=50pt></a>&nbsp;&nbsp;
<a href="https://modelbest.cn/"><img src="../misc/modelbest.png" height=50pt></a>&nbsp;&nbsp;
<a href="https://github.com/OpenBMB/AgentVerse/"><img src="../misc/agentverse.png" height=50pt></a>&nbsp;&nbsp;
<a href="https://aibrb.com/introducing-herbie-your-super-employee-for-streamlined-productivity/"><img src="https://aibrb.com/wp-content/uploads/2023/09/Featured-on-AIBRB.com-white-1.png" height=50pt></a>
## 📬 اتصل بنا
إذا كان لديك أي أسئلة أو تعليقات أو ترغب في التواصل معنا، فلا تتردد في الوصول إلينا عبر البريد الإلكتروني على [chatdev.openbmb@outlook.com](mailto:chatdev.openbmb@outlook.com)

View File

@ -24,7 +24,9 @@
## 🎉 ニュース
* **2023年10月26日: ChatDev が安全な実行のために Docker に対応しました** ([ManindraDeMel](https://github.com/ManindraDeMel) のコントリビュートに感謝します)。[Docker スタートガイド](../wiki.md#docker-start)を参照してください。
* **2023年11月2日: ChatDev がインクリメンタル開発に対応しました。** 起動するには、`--config "incremental" --path "Your folder path"` を試します。このモードでは、既存のコードをベースにしたコードレビューの段階から始まります。
* 2023年10月26日: ChatDev が安全な実行のために Docker に対応しました ([ManindraDeMel](https://github.com/ManindraDeMel) のコントリビュートに感謝します)。[Docker スタートガイド](../wiki.md#docker-start)を参照してください。
<p align="center">
<img src='../misc/docker.png' width=400>
</p>

210
readme/README-Turkish.md Normal file
View File

@ -0,0 +1,210 @@
# Communicative Agents for Software Development
<p align="center">
<img src='../misc/logo1.png' width=550>
</p>
<p align="center">
【İngilizce | <a href="readme/README-Chinese.md">Çince</a> | <a href="readme/README-Japanese.md">Japonca</a> | <a href="readme/README-Korean.md">Korece</a> | <a href="readme/README-Filipino.md">Filipince</a> | <a href="readme/README-French.md">Fransızca</a> | <a href="readme/README-Slovak.md">Slovakça</a> | <a href="readme/README-Portekizce.md">Portekizce</a> | <a href="readme/README-İspanyolca.md">İspanyolca</a> | <a href="readme/README-Hollanda.md">Hollandaca</a> | <a href="readme/README-Hintçe.md">Hintçe</a>
</p>
<p align="center">
【📚 <a href="wiki.md">Wiki</a> | 🚀 <a href="wiki.md#yerel-demo">Yerel Demo</a> | 👥 <a href="Katki.md">Topluluk Tarafından Geliştirilen Yazılım</a> | 🔧 <a href="wiki.md#özelleştirme">Özelleştirme</a>
</p>
## 📖 Genel Bakış
- **ChatDev**, farklı rolleri olan çeşitli **akıllı ajanlar** aracılığıyla işleyen bir **sanal yazılım şirketi** olarak duruyor, bu roller arasında İcra Kurulu Başkanı <img src='../online_log/static/figures/ceo.png' height=20>, Baş Ürün Sorumlusu <img src='../online_log/static/figures/cpo.png' height=20>, Baş Teknoloji Sorumlusu <img src='../online_log/static/figures/cto.png' height=20>, programcı <img src='../online_log/static/figures/programmer.png' height=20>, inceleyici <img src='../online_log/static/figures/reviewer.png' height=20>, testçi <img src='../online_log/static/figures/tester.png' height=20>, sanat tasarımcısı <img src='../online_log/static/figures/designer.png' height=20> bulunur. Bu ajanlar çoklu ajan organizasyon yapısı oluşturur ve "programlama yoluyla dijital dünyayı devrimleştirmek" misyonuyla birleşirler. ChatDev içindeki ajanlar, özel işlevsel seminerlere katılarak işbirliği yaparlar, bu seminerler tasarım, kodlama, test etme ve belgeleme gibi görevleri içerir.
- ChatDev'in asıl amacı, büyük dil modellerine (LLM'ler) dayanan ve kolektif zeka çalışmaları için ideal bir senaryo olarak hizmet veren, **kullanımı kolay**, **yüksek özelleştirilebilir** ve **genişletilebilir** bir çerçeve sunmaktır.
<p align="center">
<img src='../misc/company.png' width=600>
</p>
## 🎉 Haberler
- **26 Ekim 2023: ChatDev artık güvenli yürütme için Docker ile destekleniyor** (katkı sağlayan [ManindraDeMel](https://github.com/ManindraDeMel) sayesinde). Lütfen [Docker Başlangıç Kılavuzu'na](wiki.md#docker-start) bakınız.
<p align="center">
<img src='../misc/docker.png' width=400>
</p>
- 25 Eylül 2023: **Git** modu artık kullanılabilir durumda, programcının <img src='../online_log/static/figures/programmer.png' height=20> sürüm kontrolü için Git'i kullanmasına izin verir. Bu özelliği etkinleştirmek için sadece ``ChatChainConfig.json`` içinde ``"git_management"`` değerini ``"True"`` olarak ayarlamanız yeterlidir. [Kılavuza](wiki.md#git-mode) bakınız.
<p align="center">
<img src='../misc/github.png' width=600>
</p>
- 20 Eylül 2023: **İnsan-Ajan-İletişimi** modu artık kullanılabilir! ChatDev ekibine katılarak inceleyici <img src='../online_log/static/figures/reviewer.png' height=20> rolünü üstlenebilir ve programcıya <img src='../online_log/static/figures/programmer.png' height=20> önerilerde bulunabilirsiniz; ``python3 run.py --task [fikrinizin açıklaması] --config "İnsan"`` komutunu deneyin. [Kılavuza](wiki.md#human-agent-interaction) ve [örneğe](WareHouse/Gomoku_HumanAgentInteraction_20230920135038) bakınız.
<p align="center">
<img src='../misc/Human_intro.png' width=600>
</p>
- 1 Eylül 2023: **Sanat** modu şimdi kullanılabilir! Yazılımda kullanılan görselleri oluşturmak için tasarımcı ajanını <img src='../online_log/static/figures/designer.png' height=20> etkinleştirebilirsiniz; ``python3 run.py --task [fikrinizin açıklaması] --config "Sanat"`` komutunu deneyin. [Kılavuza](wiki.md#art) ve [örneğe](WareHouse/gomokugameArtExample_THUNLP_20230831122822) bakınız.
- 28 Ağustos 2023: Sistem halka açık durumda.
- 17 Ağustos 2023: v1.0.0 sürümü hazırlandı.
- 30 Temmuz 2023: Kullanıcılar ChatChain, Aşama ve Rol ayarlarını özelleştirebilirler. Ayrıca, hem çevrimiçi Log modu hem de yeniden oynatma mod
u desteklenmektedir.
- 16 Temmuz 2023: Bu projeye ilişkin [önyazı](https://arxiv.org/abs/2307.07924) yayımlandı.
- 30 Haziran 2023: ChatDev deposunun ilk sürümü yayınlandı.
## ❓ ChatDev Ne Yapabilir?
![intro](../misc/intro.png)
<https://github.com/OpenBMB/ChatDev/assets/11889052/80d01d2f-677b-4399-ad8b-f7af9bb62b72>
## ⚡️ Hızlı Başlangıç
### 🖥️ Terminal ile Hızlı Başlangıç
Başlamak için şu adımları izleyin:
1. **GitHub Deposunu Klonlayın:** İlk olarak, depoyu şu komutla klonlayarak başlayın:
```
git clone <https://github.com/OpenBMB/ChatDev.git>
```
2. **Python Ortamını Kurun:** Python 3.9 veya daha yüksek bir sürüme sahip bir Python ortamınız olduğundan emin olun. Aşağıdaki komutları kullanarak bu ortamı oluşturabilir ve etkinleştirebilirsiniz, `ChatDev_conda_env` yerine tercih ettiğiniz ortam adını kullanın:
```
conda create -n ChatDev_conda_env python=3.9 -y
conda activate ChatDev_conda_env
```
3. **Bağımlılıkları Yükleyin:** `ChatDev` dizinine gidin ve aşağıdaki komutu kullanarak gerekli bağımlılıkları yükleyin:
```
cd ChatDev
pip3 install -r requirements.txt
```
4. **OpenAI API Anahtarını Ayarlayın:** OpenAI API anahtarınızı bir çevre değişkeni olarak belirtin. `"your_OpenAI_API_key"` yerine gerçek API anahtarınızı kullanın. Bu çevre değişkeni oturum özgüdür, bu nedenle yeni bir terminal oturumu açarsanız tekrar ayarlamanız gerekecektir.
Unix/Linux'ta:
```
export OPENAI_API_KEY="your_OpenAI_API_key"
```
Windows'ta:
```
$env:OPENAI_API_KEY="your_OpenAI_API_key"
```
5. **Yazılımınızı Oluşturun:** Aşağıdaki komutu kullanarak yazılımınızın oluşturulmasını başlatmak için şu komutu kullanın, `[fikrinizin açıklaması]` ile fikir açıklamanızı ve `[proje_adı]` ile istediğiniz proje adınızı kullanın:
Unix/Linux'ta:
```
python3 run.py --task "[fikrinizin açıklaması]" --name "[proje_adı]"
```
Windows'ta:
```
python run.py --task "[fikrinizin açıklaması]" --name "[proje_adı]"
```
6. **Yazılımınızı Çalıştırın:** Oluşturulduktan sonra yazılımınızı, belirli bir projenin klasörü altında, örneğin `project_name_DefaultOrganization_timestamp` adlı bir proje klasöründe bulabilirsiniz. Bu dizindeki komutu kullanarak yazılımınızı çalıştırın:
Unix/Linux'ta:
```
cd WareHouse/proje_adı_VarsayılanOrganizasyon_zamanDamgası
python3 main.py
```
Windows'ta:
```
cd WareHouse/proje_adı_VarsayılanOrganizasyon_zamanDamgası
python main.py
```
### 🐳 Docker ile Hızlı Başlangıç
- Docker desteği sağlayan [ManindraDeMel](https://github.com/ManindraDeMel) için teşekkür ederiz. Lütfen [Docker Başlangıç Kılavuzu'na](wiki.md#docker-start) bakınız.
## ✨️ Gelişmiş Yetenekler
Daha ayrıntılı bilgi için [Wiki](wiki.md)'mize başvurabilirsiniz, burada şunları bulabilirsiniz:
- Tüm komut çalıştırma parametrelerine giriş.
- Gelişmiş görselleştirilmiş günlükler, yeniden oynatma demosu ve basit bir ChatChain Görselleştirici içeren yerel web demo kurulumu için basit bir kılavuz.
- ChatDev çerçevesinin genel bir tanımı.
- ChatChain yapılandırmasındaki tüm gelişmiş parametrelerin kapsamlı bir tanıtımı.
- ChatDev'i özelleştirmek için kılavuzlar, bunlar şunları içerir:
- ChatChain: Kendi yazılım geliştirme sürecinizi (veya başka bir süreci) tasarlayın, böylece ``TalepAnalizi -> Kodlama -> Test -> El ile`` gibi.
- Aşama: ChatChain içinde kendi aşamanızı tasarlayın, örneğin ``TalepAnalizi``.
- Rol: Şirketinizdeki çeşitli ajanları tanımlayın, örneğin ``İcra Kurulu Başkanı``.
## 🤗 Yazılımınızı Paylaşın
**Kod**: Açık kaynak projemize katılmak isteğinizden dolayı heyecanlıyız. Herhangi bir sorunla karşılaşırsanız, çekinmeden bildirin. Eğer herhangi bir sorunuz varsa veya çalışmanızı bizimle paylaşmaya hazırsanız, bir çekme isteği oluşturmanızdan çekinmeyin! Katkılarınız büyük bir değere sahiptir. Başka bir ihtiyacınız varsa lütfen bana bildirin!
**Şirket**: Kendi özelleştirilmiş "ChatDev Şirketi"ni oluşturmak çok kolaydır. Bu kişiselleştirilmiş kurulum, üç basit yapılandırma JSON dosyasını içerir. ``CompanyConfig/Default`` dizininde verilen örneğe bakın. Özelleştirme hakkında detaylı talimatlar için [Wiki](wiki.md) sayfamıza göz atın.
**Yazılım**: ChatDev kullanarak yazılım geliştirdiğinizde, ilgili bilgileri içeren bir klasör oluşturulur. Çalışmanızı bizimle paylaşmak, bir çekme isteği oluşturmak kadar basittir. İşte bir örnek: ``python3 run.py --task "2048 oyunu tasarla" --name "2048" --org "THUNLP" --config "Default"`` komutunu çalıştırın. Bu, bir yazılım paketi oluşturur ve ``/WareHouse/2048_THUNLP_timestamp`` adında bir klasör oluşturur. İçinde şunları bulacaksınız:
- 2048 oyun yazılımıyla ilgili tüm dosyalar ve belgeler
- Bu yazılımdan sorumlu şirketin yapılandırma dosyaları, içerisinde üç JSON yapılandırma dosyası bulunan ``CompanyConfig/Default``
- Yazılımın oluşturulma sürecini ayrıntılı olarak açıklayan kapsamlı bir günlük (``timestamp.log``)
- Bu yazılımın oluşturulmasında kullanılan ilk prompt (``2048.prompt``)
**Topluluk tarafından sağlanan yazılımları buradan görüntüleyin [burada](Contribution.md)!**
## 👨‍💻‍ Katkıda Bulunanlar
<a href="https://github.com/OpenBMB/ChatDev/graphs/contributors">
<img src="https://contrib.rocks/image?repo=OpenBMB/ChatDev" />
</a>
[contrib.rocks](https://contrib.rocks) ile oluşturulmuştur.
## 🔎 Alıntı
```
@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}
}
```
## ⚖️ Lisans
- Kaynak Kodu Lisansı: Projemizin kaynak kodu Apache 2.0 Lisansı altında lisanslanmıştır. Bu lisans, belirli koşullar dahilinde kodun kullanımını, değiştirilmesini ve dağıtılmasını izin verir.
- Proje Açık Kaynak Durumu: Proje gerçekten açık kaynaktır; ancak bu tanım öncelikle ticari olmayan amaçlar için tasarlanmıştır. Topluluktan işbirliği ve katkılara teşvik etsek de, projenin bileşenlerinin ticari amaçlar için kullanılması ayrı lisans anlaşmalarını gerektirir.
- Veri Lisansı: Projemizde kullanılan ilgili veri CC BY-NC 4.0 lisansı altında lisanslanmıştır. Bu lisans verinin ticari olmayan kullanımına açıkça izin verir. Bu veri kullanan modellerin kesinlikle ticari kullanım kısıtlamasına uyması ve sadece araştırma amaçları için kullanılması gerektiğini vurgulamak isteriz.
## 🌟 Yıldız Geçmişi
[![Yıldız Geçmişi Grafiği](https://api.star-history.com/svg?repos=openbmb/chatdev&type=Date)](https://star-history.com/#openbmb/chatdev&Date)
## 🤝 Teşekkürler
<a href="http://nlp.csai.tsinghua.edu.cn/"><img src="../misc/thunlp.png" height=50pt></a>&nbsp;&nbsp;
<a href="https://modelbest.cn/"><img src="../misc/modelbest.png" height=50pt></a>&nbsp;&nbsp;
<a href="https://github.com/OpenBMB/AgentVerse/"><img src="../misc/agentverse.png" height=50pt></a>&nbsp;&nbsp;
<a href="https://aibrb.com/introducing-herbie-your-super-employee-for-streamlined-productivity/"><img src="https://aibrb.com/wp-content/uploads/2023/09/Featured-on-AIBRB.com-white-1.png" height=50pt></a>
## 📬 İletişim
Herhangi bir sorunuz, geri bildiriminiz veya iletişime geçmek isterseniz, lütfen bize [chatdev.openbmb@outlook.com](mailto:chatdev.openbmb@outlook.com) adresi üzerinden ulaşmaktan çekinmeyin.

5
run.py
View File

@ -68,6 +68,8 @@ parser.add_argument('--name', type=str, default="Gomoku",
help="Name of software, your software will be generated in WareHouse/name_org_timestamp")
parser.add_argument('--model', type=str, default="GPT_3_5_TURBO",
help="GPT Model, choose from {'GPT_3_5_TURBO','GPT_4','GPT_4_32K'}")
parser.add_argument('--path', type=str, default="",
help="Your file directory, ChatDev will build upon your software in the Incremental mode")
args = parser.parse_args()
# Start ChatDev
@ -83,7 +85,8 @@ chat_chain = ChatChain(config_path=config_path,
task_prompt=args.task,
project_name=args.name,
org_name=args.org,
model_type=args2type[args.model])
model_type=args2type[args.model],
code_path=args.path)
# ----------------------------------------
# Init Log