حسنًا ، لذلك أصلح ChatGPT الآن كودي. بجد.

1-debugging(1).png

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

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

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

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

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

اختبار تطبيق ChatGPT في العالم الحقيقي

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

أيضا:كيف يعمل ChatGPT؟

Please note that I have translated the content inside the HTML tags while retaining the original HTML format.

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

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

لذلك، دعنا ننظر إلى تلك المهام ونرى كيف قام ChatGPT بأدائها.

إعادة كتابة كود التعبيرات العادية

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

أيضًا:أستخدم ChatGPT لمساعدتي في إصلاح الشفرة بشكل أسرع، ولكن بأي تكلفة؟

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

نظرًا لأنني أجد ذلك مملاً ومزعجًا ، قررت أن أطلب مساعدة من ChatGPT. إليك ما سألته:

2-regex-q.jpg

وهنا إجابة الذكاء الاصطناعي المقدمة بشكل جيد جدًا (انقر على المربع الصغير للتكبير):

3-regex-a.jpg

لقد أسقطت كود ChatGPT في وظيفتي، وعمل بشكل جيد. بدلاً من قضاء ما يقرب من 2-4 ساعات من الشعيرات، استغرق الأمر حوالي خمس دقائق لإعداد الاقتراح والحصول على إجابة من ChatGPT.

إعادة تنسيق المصفوفة

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

أيضًا:كيفية جعل ChatGPT يقدم المصادر والاستشهادات

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

بعد نحو ساعة من ذلك، فقدت الأمل وعدت إلى تقنيتي العادية في البحث في Github و StackExchange لرؤية ما إذا كان هناك أي أمثلة على ما كنت أحاول القيام به، ثم كتابة الشفرة بنفسي.

حتى الآن، هناك فوز واحد وخسارة واحدة في تجربة ChatGPT. ولكن الآن كنت سأزيد من التحدي.

فعلاً العثور على الخطأ في الكود الخاص بي

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

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

المشكلة كانت أنني لم أتوقف عن الحصول على رسالة خطأ.

الجزء البارز من هذه الرسالة هو حيث تقول "تم النجاح بنسخة" في نقطة ما و "متوقعة ٢ بالضبط" في نقطة أخرى. نظرت إلى عبارة الاستدعاء وتعريف الدالة وكان هناك معاملين في كل منهما.

Also: كيفية استخدام ChatGPT لتلخيص كتاب أو مقالة أو ورقة بحث

وحقاً -ماهذا؟

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

4-untitled.jpg

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

خلال ثوانٍ قليلة، ردّ ChatGPT بهذا (انقر على المربع الصغير لتكبيره):

5-error-with-apply-filters-in-wordpress.jpg

كما اقتُرح، قمت بتحديث المعلمة الرابعة لدالة add_filter() إلى 2، وعملت!

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

أيضًا: طلبت من ChatGPT كتابة إضافة ووردبريس التي كنت بحاجة إليها. فقد قام بذلك في أقل من 5 دقائق

يجب أن أعتبر ذلك لا يصدق ، لا يمكن إنكاره "عيش في المستقبل" لا يصدق.

ماذا يعني كل هذا؟

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

أيضًا: يقوم هؤلاء الخبراء بالسباق لحماية الذكاء الاصطناعي من القراصنة

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

لذا، إذا كنت أرغب في الحصول على مساعدة من زميل، ربما كان علي أن أقوم بإعداد طلب تقريبًا بنفس الطريقة التي أرسلت بها طلبي إلى ChatGPT.

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

أيضًا: أفضل الروبوتات الدردشة الذكية لتجربتها

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

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

نظرة نحو المستقبل (المحتملة سلبية)

أرى مستقبلًا مثيرًا جدًا، حيث سيكون من الممكن إطعام ChatGPT بكل أسطر الشفرة البالغ عددها ١٥٣ ألف سطر وطلب منه أن يخبرك بما يجب إصلاحه. شركة مايكروسوفت (التي تمتلك Github) تعمل بالفعل على أداة "copilot" لـ Github لمساعدة المبرمجين في بناء الشفرة. كما أن مايكروسوفت قد استثمرت مليارات الدولارات في OpenAI، صانع ChatGPT.

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

أيضًا: سألت ChatGPT لكتابة حلقة قصيرة لـ ستار تريك. ونجحت فعلا

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

وهنا حيث أخذ هذه المحادثة إلى مكان مظلم جدًا.

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

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

أيضًا: البارد مقابل تشات جي بي تي: هل يمكن للبارد مساعدتك في البرمجة؟

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

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

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

أيضًا: كيفية استخدام ChatGPT في كتابة الصيغ في إكسل

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

هل تجد أن الحقيقة بأن ChatGPT يمكنه تصحيح الأخطاء مفيدة أم مرعبة؟ هل تعتقد أن الذكاء الاصطناعي سيقتلنا أثناء نومنا، أم أنك تعتقد أننا سنراقب مصيرنا وعيوننا مفتوحة عيوننا؟ أم أنك، مثلي، ستحاول عدم التفكير في ذلك كثيرًا لأنه يربك رأسك؟ اتحدث معي في التعليقات أدناه. قبل فوات الأوان.

المقالات ذات الصلة

عرض المزيد >>

أطلق العنان لقوة الذكاء الاصطناعي مع HIX.AI!