رطم ChatDev: وكلاء التواصل لتطوير البرمجيات - Unite.AI
اتصل بنا للحصول على مزيد من المعلومات

الذكاء الاصطناعي

ChatDev: وكلاء التواصل لتطوير البرمجيات

mm
تحديث on
ChatDev: تطوير البرمجيات بمساعدة الذكاء الاصطناعي

صناعة تطوير البرمجيات هي مجال يعتمد غالبًا على كل من الاستشارة والحدس، ويتميز باستراتيجيات صنع القرار المعقدة. علاوة على ذلك، يتطلب تطوير البرامج وصيانتها وتشغيلها اتباع نهج منضبط ومنهجي. من الشائع لمطوري البرمجيات أن يتخذوا قراراتهم بناءً على الحدس بدلاً من التشاور، اعتمادًا على مدى تعقيد المشكلة. في محاولة لتعزيز كفاءة هندسة البرمجيات، بما في ذلك فعالية البرمجيات وخفض تكاليف التطوير، يستكشف العلماء استخدام أطر العمل القائمة على التعلم العميق لمعالجة المهام المختلفة ضمن عملية تطوير البرمجيات. مع التطورات الأخيرة والتطورات في قطاعات التعلم العميق والذكاء الاصطناعي، يبحث المطورون عن طرق لتحويل عمليات وممارسات تطوير البرمجيات. إنهم يفعلون ذلك باستخدام تصميمات متطورة يتم تنفيذها في مراحل مختلفة من عملية تطوير البرمجيات.

اليوم، سنناقش ChatDev، وهو نهج مبتكر يعتمد على نموذج اللغة الكبير (LLM) ويهدف إلى إحداث ثورة في مجال تطوير البرمجيات. يسعى هذا النموذج إلى إلغاء الحاجة إلى نماذج متخصصة خلال كل مرحلة من مراحل عملية التطوير. يعمل إطار عمل ChatDev على تعزيز قدرات أطر عمل LLM، وذلك باستخدام التواصل باللغة الطبيعية لتوحيد وتبسيط عمليات تطوير البرامج الرئيسية.

في هذه المقالة، سوف نستكشف ChatDev، وهي شركة افتراضية متخصصة في تطوير البرمجيات. يتبنى ChatDev نموذج الشلال ويقسم عملية تطوير البرمجيات بدقة إلى أربع مراحل أساسية.

  1. تصميم. 
  2. الترميز. 
  3. الاختبار. 
  4. كابل بيانات. 

تنشر كل مرحلة من هذه المراحل فريقًا من الوكلاء الافتراضيين مثل مبرمجي الأكواد أو المختبرين الذين يتعاونون مع بعضهم البعض باستخدام الحوارات التي تؤدي إلى سير عمل سلس. تعمل سلسلة الدردشة كميسر، وتقسم كل مرحلة من مراحل عملية التطوير إلى مهام فرعية ذرية، وبالتالي تمكين الأدوار المزدوجة، مما يسمح بتقديم المقترحات والتحقق من صحة الحلول باستخدام الاتصالات المدركة للسياق والتي تسمح للمطورين بحل المهام الفرعية المحددة بشكل فعال. 

ChatDev: تطوير البرمجيات بمساعدة الذكاء الاصطناعي

يوضح التحليل الآلي لـ ChatDev أن إطار عمل ChatDev ليس فعالًا للغاية في إكمال عملية تطوير البرامج فحسب، بل إنه فعال للغاية من حيث التكلفة بالإضافة إلى أنه يكمل عملية تطوير البرامج بأكملها بأقل من دولار بقليل. علاوة على ذلك، فإن الإطار لا يحدد فحسب، بل يخفف أيضًا من نقاط الضعف المحتملة، ويصحح الهلوسة المحتملة، كل ذلك مع الحفاظ على الكفاءة العالية والفعالية من حيث التكلفة. 

ChatDev: مقدمة لتطوير البرمجيات التي تدعم LLM

تقليديًا، صناعة تطوير البرمجيات هي صناعة مبنية على أسس منهج منضبط ومنهجي ليس فقط لتطوير التطبيقات، ولكن أيضًا لصيانتها وتشغيلها. تقليديًا، تعد عملية تطوير البرمجيات النموذجية عملية معقدة للغاية ومعقدة وتستغرق وقتًا طويلاً مع دورات تطوير طويلة، حيث توجد أدوار متعددة تشارك في عملية التطوير بما في ذلك التنسيق داخل المنظمة، وتخصيص المهام، وكتابة التعليمات البرمجية، الاختبار، وأخيراً التوثيق. 

في السنوات القليلة الماضية، بمساعدة LLM أو نماذج اللغات الكبيرة، حقق مجتمع الذكاء الاصطناعي إنجازات مهمة في مجالات رؤية الكمبيوتر ومعالجة اللغة الطبيعية، وبعد التدريب على نماذج "التنبؤ بالكلمة التالية"، أثبتت نماذج اللغة الكبيرة قدرتها على تقديم أداء فعال في مجموعة واسعة من المهام النهائية مثل الترجمة الآلية، والإجابة على الأسئلة، وتوليد التعليمات البرمجية. 

على الرغم من أن نماذج اللغات الكبيرة يمكنها كتابة تعليمات برمجية للبرنامج بأكمله، إلا أن لها عيبًا كبيرًا: الهلوسة الرمزية، وهو ما يشبه إلى حد كبير الهلوسة التي تواجهها أطر معالجة اللغة الطبيعية. يمكن أن تتضمن الهلوسة البرمجية مشكلات مثل الأخطاء غير المكتشفة، والتبعيات المفقودة، وتنفيذ الوظائف غير المكتملة. هناك سببان رئيسيان للهلوسة البرمجية. 

  • عدم وجود مواصفات المهمة: عند إنشاء كود البرنامج في خطوة واحدة، فإن عدم تحديد تفاصيل المهمة يربك طلاب LLM كمهام في عملية تطوير البرمجيات مثل تحليل متطلبات المستخدم، أو اختيار لغة البرمجة المفضلة غالبًا ما يوفر تفكيرًا موجهًا، وهو أمر مفقود من المستوى العالي المهام على المستوى الذي يتم التعامل معها بواسطة LLMs. 
  • عدم وجود فحص الصليب : تظهر مخاطر كبيرة عندما لا يتم إجراء استجواب، خاصة أثناء عمليات اتخاذ القرار. 

يهدف ChatDev إلى حل هذه المشكلات، وتسهيل LLMs بالقدرة على إنشاء أحدث التطبيقات البرمجية الفعالة من خلال إنشاء شركة تعمل بالطاقة الافتراضية لتطوير البرمجيات والتي تنشئ نموذج الشلال، وتقسم بدقة عملية تطوير البرمجيات إلى أربع عمليات أساسية مراحل،

  1. تصميم. 
  2. الترميز. 
  3. الاختبار. 
  4. كابل بيانات. 

تنشر كل مرحلة من هذه المراحل فريقًا من الوكلاء الافتراضيين مثل مبرمجي الأكواد أو المختبرين الذين يتعاونون مع بعضهم البعض باستخدام الحوارات التي تؤدي إلى سير عمل سلس. علاوة على ذلك، يستخدم ChatDev سلسلة دردشة تعمل كميسر، ويقسم كل مرحلة من مراحل عملية التطوير إلى مهام فرعية ذرية، وبالتالي تمكين الأدوار المزدوجة، مما يسمح بتقديم المقترحات والتحقق من صحة الحلول باستخدام الاتصالات الواعية بالسياق التي تتيح للمطورين حل المهام الفرعية المحددة. تتكون سلسلة الدردشة من عدة عقد حيث تمثل كل عقدة فردية مهمة فرعية محددة، ويشارك هذان الدوران في مناقشات متعددة المنعطفات واعية بالسياق ليس فقط لاقتراح الحلول، ولكن أيضًا للتحقق من صحتها. 

في هذا النهج، يقوم إطار عمل ChatDev أولاً بتحليل متطلبات العميل، وإنشاء أفكار إبداعية، وتصميم أنظمة النماذج الأولية وتنفيذها، وتحديد المشكلات المحتملة ومعالجتها، وإنشاء رسومات جذابة، وشرح معلومات تصحيح الأخطاء، وإنشاء أدلة المستخدم. أخيرًا، يقوم إطار عمل ChatDev بتسليم البرنامج للمستخدم جنبًا إلى جنب مع التعليمات البرمجية المصدر وأدلة المستخدم ومواصفات بيئة التبعية. 

ChatDev: الهندسة المعمارية والعمل

الآن بعد أن أصبح لدينا مقدمة مختصرة عن ChatDev، دعونا نلقي نظرة على بنية وعمل إطار عمل ChatDev بدءًا من سلسلة الدردشة. 

سلسلة الدردشة

كما ذكرنا في القسم السابق، يستخدم إطار عمل ChatDev طريقة الشلال لتطوير البرمجيات التي تقسم عملية تطوير البرمجيات إلى أربع مراحل بما في ذلك التصميم والترميز والاختبار والتوثيق. ولكل مرحلة من هذه المراحل دور فريد في عملية التنمية، وهناك حاجة إلى التواصل الفعال فيما بينها، وهناك تحديات محتملة تواجهها عند تحديد الأفراد الذين سيتم التعامل معهم، وتحديد تسلسل التفاعلات. 

لمعالجة هذه المشكلة، يستخدم إطار عمل ChatDev سلسلة الدردشة، وهي بنية عامة تقسم كل مرحلة إلى دردشة دون ذرية، مع تركيز كل مرحلة من هذه المراحل على لعب الأدوار الموجهة نحو المهام والتي تتضمن أدوارًا مزدوجة. تشكل المخرجات المطلوبة للدردشة مكونًا حيويًا للبرنامج المستهدف، ويتم تحقيقها نتيجة للتعاون وتبادل التعليمات بين الوكلاء المشاركين في عملية التطوير. يتم توضيح نموذج سلسلة الدردشة لحل المهام المتوسطة في الصورة أدناه. 

بالنسبة لكل محادثة فردية، يبدأ المعلم أولاً التعليمات، ثم يوجه الحوار نحو إكمال المهمة، وفي هذه الأثناء، يتبع المساعدون التعليمات التي وضعها المعلم، ويقدمون حلولًا مثالية، ويشاركون في المناقشات حول الجدوى. من الحل. ثم ينخرط المدرب والوكيل في حوارات متعددة الأدوار حتى يصلوا إلى توافق في الآراء، ويعتبرون أن المهمة قد تم إنجازها بنجاح. توفر سلسلة السلسلة للمستخدمين رؤية شفافة لعملية التطوير، وتسلط الضوء على مسار اتخاذ القرارات، وتوفر فرصًا لتصحيح الأخطاء عند ظهورها، مما يسمح للمستخدمين النهائيين بتحليل وتشخيص الأخطاء وفحص المخرجات الوسيطة، والتدخل في العملية إذا رأت ذلك ضروريا. من خلال دمج سلسلة الدردشة، يستطيع إطار عمل ChatDev التركيز على كل مهمة فرعية محددة على نطاق تفصيلي لا يسهل التعاون الفعال بين الوكلاء فحسب، بل يؤدي أيضًا إلى تحقيق سريع للمخرجات المطلوبة. 

تصميم

في مرحلة التصميم، يتطلب إطار عمل ChatDev فكرة أولية كمدخل من العميل البشري، وهناك ثلاثة أدوار محددة مسبقًا في هذه المرحلة. 

  1. الرئيس التنفيذي أو الرئيس التنفيذي. 
  2. CPO أو كبير مسؤولي المنتج. 
  3. CTO أو الرئيس الفني. 

تلعب سلسلة الدردشة بعد ذلك دورًا في تقسيم مرحلة التصميم إلى مهام دردشة دون ذرية متسلسلة تتضمن لغة البرمجة (CTO و CEO)، وطريقة البرنامج المستهدف (CPO و CEO). تتضمن مرحلة التصميم ثلاث آليات رئيسية: تعيين الدور أو تخصصه، وتدفق الذاكرة، والتأمل الذاتي. 

تعيين الدور

يتم تعيين دور لكل وكيل في إطار عمل Chat Dev باستخدام رسائل خاصة أو مطالبات خاصة أثناء عملية لعب الأدوار. على عكس نماذج لغة المحادثة الأخرى، يقتصر إطار عمل ChatDev على بدء سيناريوهات لعب الأدوار بين الوكلاء فقط. تُستخدم هذه المطالبات لتعيين الأدوار للوكلاء قبل الحوارات. 

في البداية، يتولى المدرب مسؤوليات الرئيس التنفيذي، ويشارك في التخطيط التفاعلي بينما يتم التعامل مع مسؤوليات كبير الموظفين من قبل الوكيل الذي ينفذ المهام، ويقدم الاستجابات المطلوبة. يستخدم الإطار "المطالبة بالبدء"للتخصص في الأدوار الذي يسمح للوكلاء بأداء أدوارهم بفعالية. تتكون مطالبات المساعد والمعلم من تفاصيل حيوية تتعلق بالأدوار والمهام المعينة، ومعايير الإنهاء، وبروتوكولات الاتصال، والعديد من القيود التي تهدف إلى منع السلوكيات غير المرغوب فيها مثل الحلقات اللانهائية، والاستجابات غير المعلوماتية، وتكرار التعليمات. 

تيار الذاكرة

تدفق الذاكرة هو آلية يستخدمها إطار عمل ChatDev الذي يحتفظ بسجل محادثة شامل للحوارات السابقة للوكيل، ويساعد في عملية اتخاذ القرار التي تتبع بطريقة مدركة للكلام. يستخدم إطار عمل ChatDev المطالبات لإنشاء بروتوكولات الاتصال المطلوبة. على سبيل المثال، عندما تتوصل الأطراف المعنية إلى إجماع، تظهر رسالة نهائية تلبي متطلبات تنسيق محددة مثل ( : تطبيقات سطح المكتب"). ولضمان الامتثال للصيغة المحددة، يراقب الإطار بشكل مستمر الحوار الحالي ويسمح له بالوصول إلى نتيجة. 

التفكير الذاتي

لاحظ مطورو إطار عمل ChatDev المواقف التي توصل فيها الطرفان المعنيان إلى إجماع متبادل، ولكن لم يتم تفعيل بروتوكولات الاتصال المحددة مسبقًا. ولمعالجة هذه القضايا، يقدم إطار عمل ChatDev آلية للتأمل الذاتي مما يساعد في استرجاع واستخراج الذكريات. لتنفيذ آلية التأمل الذاتي، يبدأ إطار عمل ChatDev محادثة جديدة وحديثة من خلال إدراج "الذات الزائفة" كمستجوب جديد. تقوم "الذات الزائفة" بتحليل الحوارات السابقة والسجلات التاريخية، وإبلاغ المساعد الحالي وبعد ذلك تطلب ملخصًا لمعلومات قاطعة وجديرة بالتنفيذ كما هو موضح في الشكل أدناه. 

بمساعدة آلية المساعدة الذاتية، يتم تشجيع مساعد ChatDev على التفكير وتحليل القرارات التي يقترحها. 

البرمجة

هناك ثلاثة أدوار محددة مسبقًا في مرحلة البرمجة وهي CTO، والمبرمج، والمصمم الفني، وكالعادة، تقوم آلية سلسلة الدردشة بتقسيم مرحلة البرمجة إلى مهام فرعية فردية مثل توليد الأكواد (المبرمج وCTO)، أو ابتكار واجهة المستخدم الرسومية أو واجهة المستخدم الرسومية (مبرمج ومصمم). يقوم CTO بعد ذلك بإرشاد المبرمج لاستخدام تنسيق تخفيض السعر لتنفيذ نظام برمجي يقترح بعده المصمم الفني واجهة مستخدم رسومية سهلة الاستخدام وتفاعلية تستخدم الرموز الرسومية للتفاعل مع المستخدمين بدلاً من الاعتماد على الأوامر النصية التقليدية. 

إدارة الكود

يستخدم إطار عمل ChatDev لغات برمجة موجهة للكائنات مثل Python وJava وC++ للتعامل مع أنظمة البرامج المعقدة لأن نمطية لغات البرمجة هذه تتيح استخدام كائنات قائمة بذاتها لا تساعد فقط في استكشاف الأخطاء وإصلاحها، ولكن أيضًا في التطوير التعاوني ويساعد أيضًا في إزالة التكرار عن طريق إعادة استخدام الكائنات من خلال مفهوم الميراث. 

تعليمات الفكر

غالبًا ما تؤدي الطرق التقليدية للإجابة على الأسئلة إلى معلومات غير ذات صلة، أو معلومات غير دقيقة خاصة عند إنشاء التعليمات البرمجية حيث أن تقديم تعليمات ساذجة قد يؤدي إلى هلوسة LLM، وقد تصبح مشكلة صعبة. لمعالجة هذه المشكلة، يقدم إطار عمل ChatDev آلية "تعليمات الفكر" التي تستمد الإلهام من مطالبات سلسلة الأفكار. تتناول آلية "تعليمات الفكر" بشكل صريح أفكار حل المشكلات الفردية المضمنة في التعليمات، على غرار حل المهام بطريقة تسلسلية ومنظمة. 

الاختبار

إن كتابة تعليمات برمجية خالية من الأخطاء في المحاولة الأولى يمثل تحديًا ليس فقط بالنسبة إلى ماجستيرولكن أيضًا بالنسبة للمبرمجين البشر، فبدلاً من التخلص تمامًا من التعليمات البرمجية غير الصحيحة، يقوم المبرمجون بتحليل التعليمات البرمجية الخاصة بهم لتحديد الأخطاء وتصحيحها. تنقسم مرحلة الاختبار في إطار عمل ChatDev إلى ثلاثة أدوار: المبرمج، والمختبر، والمراجع. تنقسم عملية الاختبار أيضًا إلى مهمتين دون ذريتين متسلسلتين: مراجعة الأقران أو التصحيح الثابت (مراجع ومبرمج) و اختبار النظام أو التصحيح الديناميكي (مبرمج ومختبر). يقوم تصحيح الأخطاء الثابت أو مراجعة الأقران بتحليل الكود المصدري لتحديد الأخطاء بينما يتحقق تصحيح الأخطاء الديناميكي أو اختبار النظام من تنفيذ البرنامج من خلال اختبارات مختلفة يتم إجراؤها باستخدام مترجم بواسطة المبرمج. يركز التصحيح الديناميكي بشكل أساسي على اختبار الصندوق الأسود لتقييم التطبيقات. 

توثيق

بعد الانتهاء من إطار عمل ChatDev بمراحل التصميم والترميز والاختبار، فإنه يستخدم أربعة وكلاء وهم الرئيس التنفيذي، CTO، CPO، والمبرمج لإنشاء الوثائق الخاصة بمشروع البرنامج. يستخدم إطار عمل ChatDev LLMs للاستفادة من المطالبات القليلة مع أمثلة في السياق لإنشاء المستندات. يقوم CTO بإرشاد المبرمج لتوفير التعليمات الخاصة بتكوين التبعيات البيئية، وإنشاء مستند مثل "dependency requires.txt". في الوقت نفسه، يتم إرسال المتطلبات وتصميم النظام إلى كبير موظفي الشراء من قبل الرئيس التنفيذي، لإنشاء دليل المستخدم للمنتج. 

النتائج

إحصائيات البرمجيات

لتحليل أداء إطار عمل ChatDev، أجرى فريق المطورين تحليلاً إحصائيًا لتطبيقات البرامج التي تم إنشاؤها بواسطة إطار العمل على أساس عدد قليل من المقاييس الرئيسية بما في ذلك الرموز المميزة المستهلكة، وإجمالي دورات الحوار، وأصول الصور، وملفات البرامج، وتحديثات الإصدار، والمزيد، والنتائج هي موضح في الجدول أدناه. 

تحليل المدة

لفحص وقت إنتاج ChatDev لبرنامج لمطالبات طلبات مختلفة، أجرى المطورون أيضًا تحليلًا للمدة، ويعكس الاختلاف في وقت التطوير للمطالبات المختلفة تباين وضوح المهام المعينة وتعقيدها، وتظهر النتائج في الشكل أدناه . 

دراسة الحالة

يوضح الشكل التالي قيام ChatDev بتطوير لعبة Five in a Row أو لعبة Gomoku. 

يوضح الشكل الموجود في أقصى اليسار البرنامج الأساسي الذي تم إنشاؤه بواسطة إطار العمل دون استخدام أي واجهة مستخدم رسومية. كما هو واضح، فإن التطبيق الذي لا يحتوي على أي واجهة مستخدم رسومية يوفر تفاعلًا محدودًا، ويمكن للمستخدمين لعب هذه اللعبة فقط من خلال محطة الأوامر. يوضح الشكل التالي لعبة أكثر جاذبية من الناحية المرئية تم إنشاؤها باستخدام واجهة المستخدم الرسومية، وتوفر تجربة مستخدم أفضل وتفاعلًا محسنًا لبيئة لعب جذابة يمكن للمستخدمين الاستمتاع بها بشكل أكبر. يقوم وكيل المصمم بعد ذلك بإنشاء رسومات إضافية لتعزيز سهولة الاستخدام وجماليات طريقة اللعب دون التأثير على أي وظيفة. ومع ذلك، إذا لم يكن المستخدمون البشريون راضين عن الصورة التي أنشأها المصمم، فيمكنهم استبدال الصور بعد أن يكمل إطار عمل ChatDev البرنامج. تتيح المرونة التي يوفرها إطار عمل ChatDev لاستبدال الصور يدويًا للمستخدمين تخصيص التطبيقات وفقًا لتفضيلاتهم لتحسين التفاعل وتجربة المستخدم دون التأثير على وظائف البرنامج بأي شكل من الأشكال. 

افكار اخيرة

في هذه المقالة، تحدثنا عن ChatDev، وهو LLM أو نموذج اللغة الكبير نموذج مبتكر قائم على أساس يهدف إلى إحداث ثورة في مجال تطوير البرمجيات من خلال إلغاء الحاجة إلى نماذج متخصصة خلال كل مرحلة من مراحل عملية التطوير. يهدف إطار عمل ChatDev إلى الاستفادة من قدرات أطر عمل LLM باستخدام التواصل باللغة الطبيعية لتوحيد وتبسيط عمليات تطوير البرامج الرئيسية. يستخدم إطار عمل ChatDev آلية سلسلة الدردشة لتقسيم عملية تطوير البرمجيات إلى مهام فرعية متسلسلة، وبالتالي تمكين التركيز الدقيق وتعزيز المخرجات المطلوبة لكل مهمة دون ذرية. 

"مهندس بالمهنة كاتب عن ظهر قلب". كونال كاتب تقني لديه حب وفهم عميقان للذكاء الاصطناعي والتعلم الآلي ، مكرس لتبسيط المفاهيم المعقدة في هذه المجالات من خلال وثائقه الجذابة والغنية بالمعلومات.