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

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

تظهر التحليلات الهيكلية لـ ChatDev أن إطار ChatDev ليس فقط فعالًا جدًا في إكمال عملية تطوير البرمجيات، ولكن أيضًا فعال من حيث التكلفة، حيث يكمل عملية التطوير بالكامل في أقل من دولار. بالإضافة إلى ذلك، لا يكتشف الإطار فقط النقاط الضعيفة المحتملة، بل يخفف أيضًا من التخيلات المحتملة، مع الحفاظ على الكفاءة العالية و التكلفة الفعالة.
ChatDev : مقدمة في تطوير البرمجيات القوي باللغة
تقليدًا، تعتمد صناعة تطوير البرمجيات على أسس منهجية و منضبطة، لا فقط لتطوير التطبيقات، ولكن أيضًا لضمانها و تشغيلها. تقليدًا، عملية تطوير برمجية نمطية هي عملية معقدة و طويلة الأمد، و تحتاج إلى دورات تطوير طويلة، حيث هناك أدوار متعددة في عملية التطوير، بما في ذلك التنسيق داخل المنظمة، و تخصيص المهام، و كتابة الكود، و الاختبار، و أخيرًا، التوثيق.
في السنوات القليلة الماضية، مع مساعدة النماذج اللغوية الكبيرة (LLM)، حقق مجتمع الذكاء الاصطناعي إنجازات كبيرة في مجالات الرؤية الحاسوبية و معالجة اللغة الطبيعية، و بعد التدريب على “توقع الكلمة التالية”، أظهرت النماذج اللغوية الكبيرة أداءً فعالًا على مجموعة واسعة من المهام الخلفية مثل الترجمة الآلية و الإجابة على الأسئلة و توليد الكود.
على الرغم من أن النماذج اللغوية الكبيرة يمكن أن تكتب كودًا للبرنامج بأكمله، إلا أنها تملك عيبًا رئيسيًا: هلوسات الكود، وهو مشابه لما يواجهه إطارات معالجة اللغة الطبيعية. يمكن أن تشمل هلوسات الكود مشاكل مثل الأخطاء غير المكتشفة و الإعتماديات الناقصة و تنفيذ الوظائف غير كاملة. هناك سببان رئيسيان لهلوسات الكود.
- نقص تحديد المهمة: عند توليد كود البرنامج في خطوة واحدة، لا يحدد تحديد المهمة ي混ون النماذج اللغوية الكبيرة، حيث أن مهام مثل تحليل متطلبات المستخدم أو اختيار لغة البرمجة المفضلة غالبًا ما توفر التفكير الموجه، وهو شيء مفقود في المهام عالية المستوى التي تتعامل معها هذه النماذج.
- نقص الفحص المتقاطع: تأتي المخاطر الكبيرة عندما لا يتم إجراء فحص متقاطع، خاصة خلال عمليات اتخاذ القرارات.
يهدف ChatDev إلى حل هذه المشاكل، و تسهيل النماذج اللغوية الكبيرة لإنشاء تطبيقات برمجية فعالة و حديثة، من خلال إنشاء شركة افتراضية لتطوير البرمجيات التي تقوم بتقسيم عملية التطوير إلى أربع مراحل رئيسية,
- التصميم.
- البرمجة.
- الاختبار.
- التوثيق.
كل واحدة من هذه المراحل تُشرك فريقًا من الوكلاء الافتراضيين مثل مبرمجي الكود أو المحققين الذين يتعاونون مع بعضهم البعض باستخدام الحوارات التي تؤدي إلى تدفق عمل سلس. بالإضافة إلى ذلك، يستخدم ChatDev سلسلة محادثة تعمل كوسيط، و يقسم كل مرحلة من مراحل عملية التطوير إلى مهام فرعية ذرية، و يسمح بدور مزدوج، و يسمح بمقترحات و تحقق الحلول باستخدام اتصالات متواصلة مع السياق التي تمكن المطورين من حل المهام الفرعية المحددة.
في هذا النهج، يتحليل إطار ChatDev أولًا متطلبات العميل، و يولد أفكارًا إبداعية، و يصمم و يطبق أنظمة نموذجية، و يحدد و يعالج القضايا المحتملة، و يخلق رسومات جذابة، و يشرح معلومات التصحيح، و يولد دليل المستخدم. أخيرًا، يسلّم إطار ChatDev البرنامج إلى المستخدم مع الكود المصدري و دليل المستخدم و مواصفات بيئة الاعتماد.
ChatDev : هيكل و عمل
الآن، بعد أن قدمنا مقدمة موجزة عن ChatDev، دعونا ننظر إلى هيكل و عمل إطار ChatDev، بدءًا بسلسلة المحادثة.
سلسلة المحادثة
كما ذكرنا في القسم السابق، يستخدم إطار ChatDev طريقة المياه الساقطة لتطوير البرمجيات، و يقسم عملية التطوير إلى أربع مراحل، بما في ذلك التصميم و البرمجة و الاختبار و التوثيق. لكل واحدة من هذه المراحل دور فريد في عملية التطوير، و هناك حاجة إلى تواصل فعال بينهم، و هناك تحديات محتملة عند تحديد الأفراد للتعامل معهم، و تحديد تسلسل التفاعلات.
للمواجهة هذه القضية، يستخدم إطار ChatDev سلسلة المحادثة، و هي هيكل عام يقسم كل مرحلة إلى محادثة فرعية ذرية، و كل واحدة من هذه المراحل تركز على دور لعب موجه على المهام، و ي涉ل دورين، و يسمح بمقترحات و تحقق الحلول باستخدام اتصالات متواصلة مع السياق التي تمكن المطورين من حل المهام الفرعية المحددة.

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

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

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

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

دراسة الحالة
يظهر الشكل التالي ChatDev يطور لعبة Five in a Row أو Gomoku.

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

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












