سير عمل GitHub وتحليل التعليقات المدعوم بالذكاء الاصطناعي

  • تعلم الإجراءات الأساسية لـ GitHub لإدارة الكود والتعاون
  • اتصل بخدمات الذكاء الاصطناعي الخارجية بطريقة آمنة ومأمونة
  • استخدم الذكاء الاصطناعي لتجميع التعليقات من مصادر متعددة وتحويلها إلى رؤى قابلة للتنفيذ
  1. أداة تتبع أصحاب المصلحة: نظام بسيط لتنظيم أبحاثك المتعلقة بأصحاب المصلحة 
  2. محلل التعليقات: أداة مدعومة بالذكاء الاصطناعي تكتشف الأنماط والأولويات في جميع التعليقات التي تم جمعها.

لقد جمعت تعليقات من الأصدقاء والعائلة، وتحدّيت طريقة تفكيرك، وأجريت مقابلات مع أصحاب المصلحة. 

في درس " Vibe Coding Your Own Founder’s Tookit " (ترميز مجموعة أدوات المؤسس الخاصة بك)، قمت بإنشاء مجموعة أدوات المؤسس الخاصة بك باستخدام وحدة تخزين الملاحظات واستخدمت localStorage لحفظ بياناتك بين عمليات تحديث الصفحة. 

في هذا الدرس، سنتعلّم كيفية إضافة ملاحظات مدعومة بالذكاء الاصطناعي إلى مجموعة أدوات المؤسِّس الخاصة بنا، للمساعدة في تحليل وتجميع جميع الملاحظات التي جمعناها.  

ولكن أولاً، ستتعلم كيفية تحسين مهاراتك في GitHub. يستخدم المطورون المحترفون الفروع وطلبات السحب للتجربة بأمان والتعاون مع الآخرين. ستفيدك هذه المهارات طوال رحلتك في مجال ريادة الأعمال.

تطوير مهاراتك في GitHub

قبل إضافة ميزات جديدة، ستتعلم كيف يعمل المطورون المحترفون – باستخدام الفروع للتجربة بأمان وإجراء عمليات التزام بالكود لحفظ التقدم وطلبات السحب/الدفع لدمج الكود. 

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

كل هذا يتم عبر Git ولفهم ذلك، دعونا نتعمق في بعض المفاهيم.

Git هو نظام للتحكم في الإصدارات يتتبع كل تغيير تقوم به في الكود الخاص بك. يتيح لك القيام بأمور مثل:

  • جرب بأمان: جرب الميزات الجديدة دون المخاطرة برمزك العامل
  • تراجع عن الأخطاء: العودة إلى إصدار سابق إذا حدث خلل ما أو إذا غيرت رأيك
  • التعاون: اعمل مع الآخرين دون مسح تغييرات بعضكم البعض

الفروع

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

تعمل فروع Git في GitHub بنفس الطريقة. وإليك كيفية عملها:

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

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

في النشاط التالي، ستقوم بإجراء تحديث بسيط على تطبيقك، فقط لتتدرب على عملية التفرع والدمج في Github. 

النشاط 1

ممارسة سير عمل Github

الوقت المقدر: 20 دقيقة

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

ستلاحظ ظهور رسالة تفيد بأن هذا الفرع متقدم بـ 1 التزام على "الفرع الرئيسي". 

يحدث هذا لأننا أجرينا تغييرات على الكود في هذا الفرع ولكننا لم ننقل هذه التغييرات إلى الفرع الرئيسي. 

لنقم بذلك بالضغط على رابط الرسالة.

github screenshot of branch out of sync message

بالنقر على الرابط، ستفتح صفحة طلب السحب (Pull Request) في GitHub حيث يمكننا مقارنة التغييرات ثم إنشاء طلب سحب.

  1. أضف عنوانًا ووصفًا. قد يكون Github قد أدخل بالفعل عنوانًا من وقت إنشاء الفرع، ولكن يمكنك تعديله وإضافة وصف لما قمت به.
screenshot of github pull request page

2. انقر على الزر الأخضر زر إنشاء طلب سحب .

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

  1. انقر لدمج طلب السحب وتأكيد الطلب.

    لاحظ أن هناك عملية من خطوتين هنا. إنها إجراء مهم، لذا جعل GitHub منها عملية من خطوتين لضمان عدم حدوث أخطاء.
github merge pull request window
  1. يجب أن ترى زرًا لحذف الفرع الذي استخدمته لإجراء تغييرات على الكود. هذا يحافظ على نظافة وتنظيم مستودعك دون أن تزدحمه الفروع المتبقية. انقر على الزر لحذف الفرع.
  1. ارجع إلى مستودعك.
  2. حدد "الفرع" الرئيسي في أعلى يسار مستودعك لعرض قائمة الفروع المتاحة. 
  3. حدد "عرض الفروع" ثم أنشئ فرعًا جديدًا.
  4. أعطِ هذا الدرس الخاص بالتحقق من صحة المعلومات المقدمة من أصحاب المصلحة اسمًا وصفياً.
  5. انقر إنشاء فرع جديد. 

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

بينما نقوم بفتح فرع (Branch) جديد، سنستمر في استخدام الـ Codespace الذي استخدمناه في الدرس السابق. تذكّر أننا قمنا بحفظ بعض الملاحظات من العائلة والأصدقاء في localStorage، وهي محفوظة داخل المتصفح ولكنها مرتبطة بعنوان URL معيّن. ولكل Codespace عنوان URL خاص به. إذا قمنا بفتح Codespace جديد، فسنفقد البيانات المحفوظة في localStorage. 

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

  1. في Github، انتقل إلى Codespaces من قائمة الهامبرغر على اليسار.
  2. ابحث عن مساحة الكود الخاصة بك من النشاط الأخير، وافتحها.

نظرًا لأننا حذفنا الفرع القديم وفتحنا فرعًا جديدًا، نريد التأكد من أن مساحة الكود لدينا تقوم بتحديث الفرع الجديد.

  1. في نافذة الطرفية أسفل الشاشة، اكتب (على سطرين منفصلين):

    git checkout main
    git pull origin main

    يؤدي هذا إلى مزامنة مساحة الكود الخاصة بك مع الفرع الرئيسي. 

  2. النوع

    git checkout -b my-branch
    حيث my-branch هو الاسم الذي أعطيته لفرعك الجديد في Github في الخطوة 5.

يؤدي هذا إلى التبديل إلى الفرع الجديد، بحيث يتم إرسال أي تحديثات جديدة — عند حفظها (commit) ودفعها (push) — إلى هذا الفرع الجديد. وفي الوقت نفسه، ستحتفظ بالـ Codespace الخاص بك وبالبيانات المخزنة في localStorage داخل المتصفح.

  1. انسخ هذا الأمر والصقه في قسم دردشة Copilot، والذي يجب أن يكون في اللوحة الموجودة في أقصى اليمين.

تقليل ارتفاع جميع حقول إدخال النموذج إلى سطر واحد فقط

  1. اختبر التغييرات عن طريق كتابة python3 -m http.server 8000 في علامة تبويب المحطة الطرفية في اللوحة السفلية.
  2. تحقق من التطبيق قيد التشغيل لترى أن ارتفاع النموذج قد انخفض الآن.

في الدرس السابق، قمت بحفظ هذه التغييرات وإرسالها إلى GitHub باستخدام ميزة Source Control في Codespaces. 

تمكنت من رؤية الملفات التي تم تغييرها، وإضافة رسالة توضيحية للتحديث (commit statement)، ثم النقر على Commit لحفظ التغييرات في فرع المستودع الخاص بك.

source control feature in codespaces

يمكنك القيام بالشيء نفسه هنا. ولكن لمعرفة كيفية القيام بذلك باستخدام أوامر الطرفية (Terminal)، اتبع الخطوات التالية.

  1. افتح علامة التبويب الفرعية "المحطة الطرفية" في اللوحة السفلية.
  2. انقر على أيقونة + لفتح القائمة.
  3. حدد " محطة جديدة".
  1. اكتب git statusلعرض معلومات عن الفرع.
    سيُعلمك هذا بأي تغييرات قمت بها قد تكون جاهزة للمضي قدمًا في عملية الكود. يجب أن ترى شيئًا مشابهًا لهذا:
git status screenshot
  1. اقرأ الرسالة لترى التغييرات التي تم إجراؤها.
  2. اكتب git add . إلى stash التغييرات التي أجريتها. تعني علامة "." أنك تقوم بتجهيز جميع التغييرات التي أجريتها على الملفات.
  3. اكتب git status مرة أخرى للتحقق من أن التغييرات التي أجريتها جاهزة للتنفيذ.
  4. احفظ تغييراتك في Commit بكتابة:

    `git commit -m "Update form height"`

    “Update form height” هي ما يُعرف برسالة الـ Commit، ومن المهم أن تكون وصفية بما يكفي لك ولأي شخص آخر سيراجع الـ Commit.
  5. الآن ادفع التغييرات إلى GitHub بكتابة:

    `git push origin tech-unit-2-activity1-updating-form`

    أو استخدم اسم الفرع الذي اخترته بعد `origin`.

    هذا يخبر Git بدفع عمليات الـ Commit إلى مستودع GitHub البعيد (`origin`) ووضعها في الفرع المحدد، وفي هذه الحالة: `tech-unit-2-activity1-updating-form`.

    نصيحة: استخدام الخيار `-u`، كما في:

    `git push -u origin tech-unit-2-activity1-updating-form`

    يضبط `origin` وفرعك كإعداد افتراضي، لذلك ستحتاج في المستقبل فقط إلى كتابة:

    `git push`

  1. عُد إلى GitHub في المتصفح، وارجع إلى الفرع الذي دفعت إليه تلك التغييرات.

    يجب أن ترى رسالة تفيد بأنه تم إجراء Push حديث على ذلك الفرع.
  2. انقر على Compare & pull request، وهذا سيبدأ العملية التي تعلّمتها في الخطوات السابقة.
  1. أكمل خطوات إنشاء Pull Request ودمج التغييرات في الفرع الرئيسي.

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

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

النشاط 2

أنشئ متتبّع أصحاب المصلحة الخاص بك.

الوقت المقدر: 30 دقيقة

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

في Codespaces، داخل لوحة Copilot، أضِف الأمر التالي.

أضِف تبويب متتبّع أصحاب المصلحة حيث يمكنني عرض ملاحظات أصحاب المصلحة بطريقة منظّمة.

يجب أن يحتوي تبويب متتبّع أصحاب المصلحة على:

  • العنوان: "أداة تتبع أصحاب المصلحة"
  • العنوان الفرعي: “إدارة بحث المقابلات الخاص بك”
  • نموذج يحتوي على الحقول التالية:
    • الاسم (نص)
    • النوع (قائمة منسدلة: مقابلة، استبيان، بريد إلكتروني، رسالة نصية)
    • الملاحظات الرئيسية (الرؤى، المخاوف التي أُثيرت، ما لاقى صدى) (مربع نص).

عند النقر على الزر:

  1. تخزين جميع المعلومات في سجلات التخزين المحلي، بتنسيق JSON
  2. عرض جميع معلومات أصحاب المصلحة في جدول أسفل الشاشة
  3. عرض رسالة نجاح بعد إضافة سجل بنجاح

إرشادات أخرى:

  • حافظ على واجهة المستخدم نظيفة ومتسقة

 

ملاحظة حول تخزين البيانات: 

يتم حفظ بيانات أصحاب المصلحة في ذاكرة التخزين المحلية لمتصفحك، والتي تعلمنا من الوحدة التقنية 1 أنها:

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

في الوقت الحالي، هذا مناسب لتنظيم أبحاثك. في الوحدات اللاحقة، ستتعرف على التخزين السحابي للبيانات الدائمة.

 

هذا هو شكل مجموعة أدوات المؤسس الخاصة بنا عند استخدام هذه المطالبة. قد يبدو شكل تطبيقك مختلفًا.

stakeholder tracker form
  1. أدخل المعلومات من ورقة عمل AIVA 3: Stakeholder Validation (التحقق من صحة المعلومات من الأطراف المعنية) في النموذج.
    لاحظ أننا تركنا النموذج بسيطًا ومفتوحًا، لذا ابذل قصارى جهدك لإدخال المعلومات المهمة التي جمعتها من كل طرف معني.
  2. تحقق من ظهور جميع المعلومات التي تم إدخالها في الجدول.
  3. تحقق أيضًا من localStorage باستخدام أدوات المطورين للتأكد من أن جميع المعلومات مخزنة بشكل صحيح في JSON. 
full screenshot of stakeholder tracker

 

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

ملاحظة: يقتصر استخدام Copilot المجاني على:

  • 50 رسالة دردشة/ شهريًا
  • 2000 إكمال كود شهريًا (كود مضمّن).

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

الاتصال بخدمات الذكاء الاصطناعي

لقد تمكّنت من تنظيم ملاحظات أصحاب المصلحة في هذا التبويب. كما أجريت بالفعل بعض التحليل للمعلومات التي جمعتها.

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

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

سنستخدم Gemini من Google كنموذج LLM لأنه يوفر حدودًا مجانية سخية على نماذج LLM القوية.

كيف تعمل التطبيقات المدعومة بالذكاء الاصطناعي

ربما استخدمت ChatGPT أو Claude أو Gemini من قبل. ولكن هل تساءلت يومًا عن كيفية قيام تطبيقات أخرى مثل Notion أو Grammarly أو Duolingo بدمج ميزات الذكاء الاصطناعي في منتجاتها؟

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

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

عادةً ما يستغرق هذا التبادل أقل من بضع ثوانٍ. يرسل تطبيقك طلب API AI، وينتظر الرد، ثم يعرض النتيجة.

هكذا تعمل كل تطبيقات الذكاء الاصطناعي

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

اختيار مزود خدمات الذكاء الاصطناعي

مثلما يمكنك الاختيار بين مختلف مزودي خدمات التخزين السحابي (Google Drive و Dropbox و iCloud)، يمكنك الاختيار بين مختلف مزودي خدمات الذكاء الاصطناعي. فيما يلي بعض الخيارات:

المزود

الطبقة المجانية

معروف بـ

جوجل (جيميني Gemini)

سخية مع تقديم أفضل الموديلات

التطبيقات التي تتطلب نماذج متعددة بأفضل نسبة من حيث الأداء والتكلفة

OpenAI (ChatGPT)

محدود (مستوى مجاني فقط عبر تطبيق ChatGPT الخاص بهم)

أول شركة لديها نموذج LLM عام، وتُعد المعيار الصناعي.

Groq

مناسب للتطوير، 30 طلبًا في الدقيقة و1000 رمز في الدقيقة، لا حاجة لبطاقة ائتمان

مزود لنماذج اللغة الكبيرة (LLM) في السحابة. مناسب أكثر للتطبيقات التي تتطلب نماذج مختلفة لحالات استخدام مختلفة، بما في ذلك النماذج مفتوحة المصدر.

أنثروبيك (كلود)

Anthropic (Claude)

محدود (إصدار مجاني عبر تطبيق Claude)

التطبيقات التي تحلل المستندات الطويلة والمنطق والاستدلال

بالنسبة لهذه الدورة، نوصي بما يلي نماذج Gemini للأسباب التالية:

  1. لا تطلب Google بطاقة ائتمان للوصول إلى واجهات برمجة التطبيقات الخاصة بالذكاء الاصطناعي
  2. فئة مجانية سخية مع نماذج متقدمة جدًا.
  3. إعداد سهل جدًا: يمكنك الحصول على مفتاح API في أقل من 5 دقائق.
  4. توثيق جيد: من السهل استكشاف الأخطاء وإصلاحها إذا حدثت مشكلة.

المفاهيم التي تتعلّمها هنا قابلة للتطبيق مع أي مزوّد لنماذج اللغة الكبيرة (LLM). إذا أردت لاحقًا استخدام OpenAI أو Claude في تطبيقك الإنتاجي، فإن الكود والبنية تكونان متشابهتين تقريبًا. غالبًا ما يتطلب الأمر فقط مفتاح API مختلفًا.

ما هي مفاتيح API؟

عندما تستخدم Google Drive، تعرف Google هويتك لأنك سجّلت الدخول. لكن عندما يتحدث الكود الخاص بك مع ذكاء Google الاصطناعي، كيف تعرف Google أنه أنت؟

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

عادةً ما تكون مفاتيح API عبارة عن سلسلة طويلة من الأحرف تشبه ما يلي:

AIzaSyB1234567890abcdefghijklmnopqrstuvwx

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

لماذا يجب أن تظل مفاتيح API سرية

نظرًا لأن مفاتيح API تشبه كلمات المرور، يجب الحفاظ على أمانها. 

 إذا حصل شخص ما على مفتاحك، فيمكنه التسبب في الكثير من الأضرار، مثل:

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

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

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

  1. ملف `.env`: ملف خاص يخزّن الإعدادات.
  2. يجب إضافة هذا الملف إلى ملف `.gitignore` حتى يعرف Git أنه لا يجب أبدًا رفعه إلى سحابة GitHub.
  3. ستقوم حزمة كود تُسمّى `dotenv` بتحميل المفتاح من البيئة

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

في الوحدات اللاحقة، ستتعرف على طرق أكثر أمانًا وموثوقية للمصادقة، مثل استخدام GitHub Secrets.

النشاط 3

إعداد تكامل نموذج اللغة الكبير (LLM) وبناء محلّل الملاحظات الخاص بك.

الوقت المقدر: 45 دقيقة

  1. انتقل إلى aistudio.google.com
  2. تسجيل الدخول باستخدام حساب Google الخاص بك (أو إنشاء حساب جديد)
  3. انتقل إلى لوحة التحكم -> صفحة مفاتيح API
  4. إذا كنت جديدًا على AI Studio، فستنشئ Google مفتاح Gemini API افتراضيًا لك. ما زلت بحاجة إلى النقر على “Create API Key”، وقد يُطلب منك أيضًا إنشاء مشروع سحابي.

    إذا كنت قد استخدمت AI Studio من قبل، فابحث في هذه الشاشة عن شيء مثل “Default Gemini API Key”.

    أيضًا، إذا كانت لديك أي مشاريع موجودة في Google Cloud، فقد يطلب منك AI Studio إما اختيار أحد هذه المشاريع الحالية لربط مفتاح API به، أو يمكنك إنشاء مشروع جديد في Google Cloud Console وربط مفتاح API الجديد بذلك المشروع الجديد.
default api key in list in google ai studio
  1. أضِف اسمًا وصفيًا يساعدك على تذكّر التطبيق الذي يستخدم هذا المفتاح. إذا كنت تستخدم المفتاح الافتراضي، فانقر على النقاط الثلاث في أقصى اليمين لإعادة تسمية المفتاح.
  2. يمكنك نسخ المفتاح وتخزينه مؤقتًا في مكان آمن. سنستخدمه لاحقًا.
copy api key in google ai studio

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

انتقل إلى Codespaces في GitHub وافتح الـ Codespace من النشاط 2.

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

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

  1. انتقل إلى مدير الملفات في اللوحة اليسرى: انقر على الأيقونة التي تبدو مثل مستندين في الشريط الجانبي العلوي الأيسر.
  2. أنشئ ملفًا جديدًا: مرّر مؤشر الفأرة فوق اسم مشروعك (المجلد الجذر). انقر على أيقونة علامة الجمع الصغيرة (+) المسمّاة “New File”.
  3. سمِّ الملف `.env` (لاحظ النقطة في اسم الملف)، ثم أضِف هذا النص من خلال المحرر داخل ذلك الملف واحفظه.

GEMINI_API_KEY=<paste your key here>

على سبيل المثال:

GEMINI_API_KEY=AIzaSyB1234567890abcdefghijklmnopqrstuvwx

  1. ابحث عن ملف `.gitignore` في مدير الملفات وافتحه.
  2. تأكد من أنه يتضمن هذين السطرين من النص:
    • .env 
    • node_modules/

هذان السطران يوجهان Git لتجاهل هذه الملفات والمجلدات في جميع عمليات الالتزام، بحيث لا يتم تخزينها مرة أخرى على خادم Github.

السطر الأول مخصص لملف مفتاح API ‏(`.env`)، والسطر الثاني مخصص لجميع حزم الكود التي يحتاجها تطبيقنا للتشغيل. يُنصح بتضمين المجلدات التي تحتوي على حزم الكود، لأننا لا نريد استخدام كل المساحة المخصصة لنا على GitHub من أجلها. قد يكون Copilot قد أضاف تلقائيًا العديد من الملفات والمجلدات الأخرى ليتم تجاهلها، لكن ابحث للتأكد من وجود `.env` و`node_modules/` داخل الملف.

إذا لم تكن موجودة، فأضِفها في أسطر جديدة واحفظ الملف.

  1. تحقّق من أن ملف `.env` يتم تجاهله عن طريق كتابة `git status` في نافذة الطرفية.
  2. تحقّق مما يعيده الأمر `git status` للتأكد من أنك لا ترى ملف `.env` مدرجًا. إذا ظهر، فتأكد من أن ملف `.gitignore` محفوظ بشكل صحيح، وأنه يتضمن السطر `.env` الذي أضفناه.

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

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

  1. انتقل إلى لوحة الطرفية واكتب:

    `npm install dotenv`
  2. انتظر حتى يتم تثبيت الحزمة (من المفترض أن يتم ذلك خلال بضع ثوانٍ فقط)

الآن بعد أن أضفت مفتاح API بطريقة آمنة ومحمية، وثبّتَّ حزمة الكود `dotenv` التي يمكنها تحميل متغيرات البيئة من ملف `.env`، أي مفتاح API الخاص بك، أصبحت جاهزًا لاستخدام Copilot لإضافة وحدة **محلّل الملاحظات**.

انسخ هذا الأمر والصقه:

مهمتك هي إجراء التغييرات التالية:

  1. أنشئ علامة تبويب جديدة باسم "محلل الملاحظات" مع الإرشادات المحددة أدناه

بالنسبة لعلامة التبويب "محلل الملاحظات":

  • أضِف عنوانًا فرعيًا بالنص: “اكتشف الأنماط عبر جميع ملاحظاتك”.
  • حقل يتيح للمستخدم إدخال المشكلة.
  • زر “حفظ المشكلة” وتخزينها في `localStorage`.
  • زر “تحليل جميع الملاحظات” 
  • منطقة مخرجات للنتائج.

عند النقر على زر الحفظ، يتم تخزين المشكلة في التخزين المحلي.

عند النقر على زر التحليل:

  1. استعلام عن المشكلة وجميع سجلات أصحاب المصلحة المخزنة في localStorage.
  2. أرسل جميع معلومات المشكلة وملاحظات أصحاب المصلحة إلى الذكاء الاصطناعي لتحليلها من خلال إجراء استدعاء API لنموذج Gemini.
  3. اعرض نتائج تحليل الذكاء الاصطناعي كما أعادها نموذج اللغة الكبير (LLM).

أمر الذكاء الاصطناعي: 

استخدم أمر تعليمات النظام التالي:

“أنت محلل أعمال خبير. حلّل ملاحظات أصحاب المصلحة المقدّمة من حيث ارتباطها بالمشكلة، ونظّم إجابتك بالأقسام التالية:

  1. الأنماط: ما هي الموضوعات التي تظهر في مصادر متعددة؟ (3-5 نقاط)
  2. المفاجآت: حيث تختلف المصادر وما قد يعنيه ذلك (3-5 نقاط)
  3. الافتراضات التي يجب إعادة النظر فيها: ما هي الافتراضات التي تم الطعن فيها أو ثبت خطأها؟ (3-5 نقاط)
  4. العلامات الحمراء: ما هي المخاوف أو المخاطر التي ظهرت؟ (3-5 نقاط)
  5. أهم 3 استنتاجات: أهم النقاط التي يمكن استخلاصها لمشكلتك (3-5 نقاط) "

المتطلبات الفنية:

  • استخدم بيئة env المحلية لتحميل مفتاح API
  • أضِف خادمًا خلفيًا بسيطًا باستخدام Node.js/Express لقراءة ملف `.env`.
  • أجرِ طلب API باستخدام مفتاح Gemini API، مع اتباع إرشادات مواصفات واجهة API الخاصة بهم
  • استخدم نموذج Gemini ‏`gemini-2.5-flash` مع الإعدادات التالية:

درجة الحرارة = 0.7

لاحظ المتطلبات التقنية. لأننا نريد قراءة مفتاح API من ملف `.env` ليكون أكثر أمانًا، فإن ذلك يتطلب خادمًا خلفيًا للقيام بهذا. لهذا السبب نطلب منه استخدام خادم Node.js/Express. 

قد يطلب منك برنامج «Copilot» تثبيت حزم «express» و«node» و«@google/generative-ai». اتبع التعليمات التي يقدمها لتثبيت الحزم المطلوبة. 

نصيحة: من المستحيل تتبّع جميع أحدث نماذج Google. اعتبارًا من 7 يناير 2026، يُعد “Gemini 3 Pro” أحدث وأقوى نموذج ذكاء اصطناعي من Google، وهو متاح مجانًا في Google AI Studio ضمن حدود معيّنة. عادةً، يُنصح في هذه المرحلة المبكرة من عملية تطوير فكرة مشروعك المعتمد على الذكاء الاصطناعي باستخدام أكثر نموذج مجاني متقدّم متاح. لكن بمجرد النشر، عليك التأكد من اختيار النموذج المناسب الذي يلبي احتياجاتك المحددة ويوازن بين التكلفة والأداء. تشغيل Gemini Pro 3 في بيئة إنتاج حية مكلف جدًا، لذلك يجب استخدامه بحكمة.

بمجرد انتهاء الذكاء الاصطناعي من بناء الوحدة النمطية، يمكنك اختبارها.

  1. قم بتثبيت أي تبعيات مطلوبة، وفقًا لتعليمات Copilot.
  2. قبل تشغيل التطبيق، تحقق من أن Copilot قد أضاف إصدار Gemini الصحيح (لشهر يناير 2026!).
    • افتح ملف server.js
    • ابحث عن السلسلة "generativelanguage.googleapis.com" وتأكد من استخدام gemini-2.5-flash. 
  1. شغّل التطبيق بكتابة `npm start` في لوحة الطرفية.

    هذا أمر مختلف لأنك الآن تشغّل خادمًا خلفيًا، لذلك توجد تبعيات.
  2. سيفتح الأمر `npm start` منفذًا مختلفًا (`3000`)، لذلك سيكون لديه `localStorage` خاص به.

    ستحتاج إلى إعادة إدخال أصحاب المصلحة والملاحظات داخل التطبيق.
  3. ثم انتقل إلى تبويب المحلّل، وأدخل بيان المشكلة الخاص بك واحفظه.
  4. انقر على زر تحليل جميع الملاحظات لاستدعاء واجهة Gemini API. 
  5. انتظر النتائج. قد يستغرق الأمر بضع ثوانٍ. 

ما يجب أن تراه:

  • يجب أن يجمع تحليل الذكاء الاصطناعي جميع التعليقات الواردة من جميع الأطراف المعنية.
  • يجب تنظيم الناتج في الأقسام المطلوبة

ماذا لو لم ينجح الأمر:

  • تأكد من صحة مفتاح API الخاص بك وتخزينه في ملف .env
  • اطلب من Copilot (أو نموذج لغة كبير LLM آخر) مساعدتك في تصحيح المشكلة.

خذ بضع دقائق لقراءة المخرجات من Gemini API. قد ترغب في نسخ المخرجات وحفظها في مستند للرجوع إليها لاحقًا.

فيما يلي بعض الأمور التي يجب أخذها في الاعتبار:

  • ما الأنماط عالية الثقة التي اكتشفها الذكاء الاصطناعي ولم تكن لتلاحظها بنفسك؟ والعكس أيضًا. 
  • هل قال أصحاب المصلحة شيئًا مختلفًا عن الأصدقاء والعائلة؟
  • ما هي الثغرات التي قد تحتاج إلى مزيد من الاستكشاف؟
  1. بمجرد أن تتأكد من أن **المحلّل** يعمل بشكل جيد، احفظ تغييراتك في Commit وادفعها إلى GitHub، إما باستخدام ميزة **Source Control** في Codespaces، أو بكتابة أوامر `git` في نافذة الطرفية.
  2. افتح GitHub والمستودع الخاص بك في نافذة جديدة، وابحث عن الـ Commit الخاص بفرعك، ثم أنشئ Pull Request وادمجه.
  3. للحفاظ على التنظيم، يمكنك حذف الفرع الذي أنشأته لهذه الوحدة.
  4. أغلق تبويب Codespace لتوفير أرصدة Codespace الخاصة بك (انظر النصيحة أدناه)، لكن لا تحذف الـ Codespace. 

نصيحة: يمنحك حساب GitHub المجاني مقدارًا محدودًا من الوقت في Codespaces، بالإضافة إلى أرصدة محدودة لـ Copilot. بالنسبة إلى Codespaces، تحصل على:

  • 120 ساعة نواة شهريًا (على جهاز شائع ثنائي النواة، يعني ذلك حوالي 60 ساعة شهريًا).
  • 15 جيجابايت من سعة التخزين

يجب أن يكون هذا كافيًا من استخدام Codespace لهذا المشروع.

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

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

الانعكاس

لقد قضيت وقتًا جيدًا في البرمجة بالوصف لإنشاء تطبيق مجموعة أدوات المؤسّس لتخزين وتجميع أجزاء مختلفة من المعلومات. إليك بعض الأسئلة للتفكير فيها:

Sunset and reflection over lake
01 منظمة «

»
كيف يؤثر تنظيم جميع تعليقاتك في مكان واحد على طريقة تفكيرك في مشكلتك؟
02 أنماط «

»
ما هي الأنماط التي اكتشفها تحليل الذكاء الاصطناعي والتي لم تكن قد لاحظتها عند قراءة التعليقات بشكل منفصل؟
03

هو أفضل لاعب لديك
كيف يمكنك استخدام تحليلات الذكاء الاصطناعي في تطبيقك لمساعدة المستخدمين؟

المصطلحات الرئيسية

  • Git — نظام للتحكم في الإصدارات يتتبع كل تغيير يُجرى على الكود الخاص بك بمرور الوقت، مما يتيح لك التراجع عن الأخطاء، وإجراء التجارب بأمان، والتعاون مع الآخرين.
  • الفرع — نسخة موازية لقاعدة الكود الخاصة بك، حيث يمكنك تطوير ميزات جديدة أو إجراء تغييرات دون التأثير على الإصدار الرئيسي المستقر.
  • التسجيل — لقطة محفوظة للتغييرات التي أجريتها على الكود في وقت محدد، مصحوبة برسالة توضيحية تشرح ما الذي تغير ولماذا.
  • طلب الدمج (PR) — اقتراح رسمي لدمج التغييرات من فرع إلى آخر، وغالبًا ما يُستخدم كفرصة لمراجعة الكود قبل أن تصبح التغييرات رسمية.
  • "Push " — تحميل عمليات الالتزام المحلية إلى مستودع بعيد على GitHub بحيث يتم حفظها في السحابة وتصبح متاحة للمتعاونين.
  • المستودع (Repo) — الموقع المركزي الذي يتم فيه تخزين جميع ملفات مشروعك ومجلداته وسجل إصداراته، سواء محليًّا أو على GitHub.
  • واجهة برمجة التطبيقات (API) — طريقة موحدة للتواصل بين برنامجين. عندما يحتاج تطبيقك إلى قدرات الذكاء الاصطناعي، فإنه يرسل طلبًا إلى واجهة برمجة التطبيقات الخاصة بخدمة الذكاء الاصطناعي ويتلقى ردًا.
  • مفتاح API — سلسلة سرية فريدة تُستخدم لتوثيق تطبيقك لدى خدمة خارجية، وتعمل ككلمة مرور تحدد هوية الجهة التي ترسل الطلب.
  • ملف .env — ملف تكوين مخفي يُستخدم لتخزين القيم الحساسة، مثل مفاتيح واجهة برمجة التطبيقات (API)، محليًّا، مما يضمن إبقاءها خارج شفرة المصدر وبعيدة عن نظام التحكم في الإصدارات.
  • .gitignore — ملف يُحدد لـ Git الملفات والمجلدات التي يجب استبعادها من عمليات الإرسال، مما يمنع تحميل البيانات الحساسة (مثل .env) أو الملفات غير الضرورية (مثل node_modules) إلى GitHub.
  • dotenv — حزمة برمجية تقوم بقراءة ملف .env الخاص بك وتتيح قيمه لتطبيقك أثناء التشغيل، دون الحاجة إلى تضمين المعلومات السرية بشكل ثابت في الكود.
  • LLM (نموذج اللغة الكبير) — نوع من نماذج الذكاء الاصطناعي التي تم تدريبها على كميات هائلة من النصوص، وهي قادرة على فهم اللغة البشرية وتوليدها، وتُستخدم هنا لتحليل ملاحظات أصحاب المصلحة وتوليفها.
  • درجة حرارة LLM — معلمة تتحكم في مدى إبداع استجابات نموذج الذكاء الاصطناعي مقابل مدى قابليتها للتنبؤ. تؤدي القيم المنخفضة إلى نتائج أكثر اتساقًا؛ بينما تضفي القيم المرتفعة مزيدًا من التنوع والإبداع.
  • npm (مدير حزم Node) — أداة تُستخدم لتثبيت وإدارة حزم الكود القابلة لإعادة الاستخدام (مثل dotenv وExpress) التي تضيف وظائف إلى مشروعك دون الحاجة إلى كتابة كل شيء من الصفر.

الموارد الإضافية