تجربة استخدام Gemini CLI

1- مقدمة

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

ما ستتعلمه

  1. تثبيت Gemini CLI وإعداده
  2. استكشاف الأدوات والأوامر المضمّنة وإعداد خوادم MCP في Gemini CLI
  3. تخصيص Gemini CLI من خلال ملف GEMINI.md
  4. استكشاف بعض حالات الاستخدام مع Gemini CLI

المتطلبات

يمكن تشغيل هذا الدرس العملي بالكامل ضمن Google Cloud Shell، الذي يأتي مثبَّتًا مسبقًا مع Gemini CLI.

بدلاً من ذلك، إذا كنت تفضّل العمل على جهازك الخاص، يتوفّر قسم لتثبيت Gemini CLI محليًا.

ستحتاج إلى ما يلي:

  • متصفّح الويب Chrome
  • حساب Gmail

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

2. قبل البدء

إنشاء مشروع

  1. في Google Cloud Console، في صفحة اختيار المشروع، اختَر أو أنشِئ مشروعًا على Google Cloud.
  2. تأكَّد من تفعيل الفوترة لمشروعك على Cloud. تعرَّف على كيفية التحقّق مما إذا كانت الفوترة مفعَّلة في مشروع.
  3. ستستخدم Cloud Shell، وهي بيئة سطر أوامر تعمل في Google Cloud ومحمّلة مسبقًا بأداة bq. انقر على "تفعيل Cloud Shell" في أعلى "وحدة تحكّم Google Cloud".

صورة زر تفعيل Cloud Shell

  1. بعد الاتصال بـ Cloud Shell، يمكنك التأكّد من أنّك قد أثبتّ هويتك وأنّه تم ضبط المشروع على معرّف مشروعك باستخدام الأمر التالي:
gcloud auth list
  1. نفِّذ الأمر التالي في Cloud Shell للتأكّد من أنّ أمر gcloud يعرف مشروعك.
gcloud config list project
  1. إذا لم يتم ضبط مشروعك، استخدِم الأمر التالي لضبطه:
gcloud config set project <YOUR_PROJECT_ID>

3- تثبيت

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

أنشئ مجلدًا نموذجيًا (gemini-cli-projects) وانتقِل إليه باستخدام الأوامر الموضّحة أدناه. إذا كنت تفضّل استخدام اسم مجلد آخر، يمكنك ذلك.

mkdir gemini-cli-projects

لننتقل إلى هذا المجلد:

cd gemini-cli-projects

يمكنك تشغيل Gemini CLI مباشرةً من خلال الأمر gemini.

يُرجى الانتقال مباشرةً إلى القسم التالي (ضبط إعدادات Gemini CLI من خلال ملف settings.json).

إذا أردت تثبيت Gemini CLI على جهازك، اتّبِع التعليمات الواردة أدناه.

الخطوة الأولى هي تثبيت Node 20+ على جهازك. بعد إكمال ذلك، يمكنك تثبيت Gemini CLI وتشغيله باستخدام أيّ من الطرق التالية:

  1. يمكنك تثبيت Gemini CLI على مستوى النظام أولاً. قد تحتاج إلى إذن وصول من المشرف لتنفيذ هذه الخطوة.
# option 1: install Gemini CLI

npm install -g @google/gemini-cli

# .. and then run
gemini
  1. نفِّذها باستخدام الأمر التالي:
# option 2: run without installing Gemini CLI

npx https://github.com/google-gemini/gemini-cli

يمكنك التأكّد من تثبيت واجهة سطر الأوامر من خلال تنفيذ الأمر التالي:

gemini --version

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

35a98edaf7f22e8e.png

بعد اختيار ذلك، سيُطلب منك تحديد طريقة المصادقة. ننصحك باستخدام حسابك الشخصي على Google وليس حسابات غير تابعة لـ Google أو حسابات مرتبطة بـ Google Workspace في هذه التجربة. تتيح لك هذه الرخصة المجانية الوصول إلى Gemini 2.5 Pro وقدرته على استيعاب مليون رمز مميّز. تتيح الطبقة المجانية 60 طلبًا للنموذج في الدقيقة و1,000 طلب في اليوم بدون أي رسوم.

إذا بلغت الحدود القصوى للحصة المجانية الحالية الممنوحة لحسابات Google، يمكنك اختيار استخدام مفتاح Gemini API أو حتى Google Cloud Vertex AI، حيث ستحتاج إلى معرّف المشروع واسم الموقع الجغرافي لهذا المشروع. يُرجى الرجوع إلى قسم المصادقة في المستندات إذا كنت تخطّط لاستخدام طرق مصادقة أخرى.

57bad75cedaaaa38.png

انقر على "إدخال". سيؤدي ذلك إلى فتح صفحة "مصادقة Google" في المتصفّح. تابِع عملية المصادقة باستخدام حسابك على Google، واقبل البنود، وبعد إتمام عملية المصادقة بنجاح، ستلاحظ أنّ واجهة سطر الأوامر في Gemini جاهزة وتنتظر أمرك. في ما يلي نموذج للقطة شاشة:

4dbc0138b78dc354.png

4. إعداد Gemini CLI من خلال ملف settings.json

إذا اخترت Cloud Shell لتشغيل Gemini، سيتم تلقائيًا اختيار مظهر تلقائي لأداة Gemini CLI وطريقة المصادقة وإعدادهما لك.

إذا ثبّت Gemini CLI على جهازك وشغّلته للمرة الأولى، اخترت مظهرًا ثم طريقة مصادقة.

بعد ذلك، لن يُطلب منك اختيار مظهر وطريقة مصادقة مرة أخرى عند تشغيل Gemini CLI في المرات اللاحقة. هذا يعني أنّه يتم حفظه في مكان ما، ويُطلق على الملف الذي يستخدمه اسم settings.json، وهو الطريقة المتاحة لتخصيص Gemini CLI.

يتم تطبيق الإعدادات حسب الأولوية التالية (لا يتيح Cloud Shell سوى إعدادات المستخدم):

  1. النظام: /etc/gemini-cli/settings.json (ينطبق على جميع المستخدمين، ويتجاهل إعدادات المستخدم والمساحة).
  2. ‫Workspace: .gemini/settings.json (تتجاوز إعدادات المستخدم).
  3. المستخدم: ~/.gemini/settings.json

مستخدم Windows: %USERPROFILE%.gemini\settings.json (الذي يتم توسيعه عادةً إلى C:\Users&lt;YourUsername&gt;.gemini\settings.json)

النظام: %ProgramData%\gemini-cli\settings.json (الذي يتم توسيعه عادةً إلى C:\ProgramData\gemini-cli\settings.json)

مستخدم Mac: ‎~/.gemini/settings.json (الذي يتوسّع إلى ‎ /Users/<YourUsername>/.gemini/settings.json)

النظام: /etc/gemini-cli/settings.json

إذا تذكّرت، عند اختيار المظهر، اخترت حفظ الإعدادات في "إعدادات المستخدم". لذا، انتقِل إلى ~/.gemini folder وستلاحظ الملف settings.json.

يظهر ملف settings.json أدناه. إذا كنت قد اخترت مظهرًا آخر، سيظهر لك الاسم هناك.

{
  "theme": "Default",
  "selectedAuthType": "oauth-personal" or "cloud-shell"
}

5- تفاعلنا الأول مع Gemini CLI

لنبدأ باستخدام Gemini CLI ونكتب طلب البحث الأول كما هو موضّح أدناه:

Give me a famous quote on Artificial Intelligence and who said that?

تظهر الاستجابة المتوقّعة أدناه:

GoogleSearch Searching the web for: "famous quote on Artificial Intelligence and who said it"                                                                                                                 ...
Search results for "famous quote on Artificial Intelligence and who said it" returned.                                                                                                                             

✦ "The development of full artificial intelligence could spell the end of the human race." - Stephen Hawking.

ستلاحظ أنّ طلب البحث الخاص بنا أدى إلى استدعاء أداة GoogleSearch (أداة مدمجة في Gemini CLI). بعبارة أخرى، لقد استخدمت إحدى أدوات Gemini CLI المضمّنة الفعّالة، وهي GoogleSearch التي تستند في ردودها إلى المعلومات التي تحصل عليها من الويب. سنتعرّف على مزيد من المعلومات عن "الأدوات" في القسم التالي.

للتعرّف بسرعة على Gemini CLI والأوامر المختلفة التي يتيحها، اكتب /help (شرطة مائلة للأمام) وستظهر لك مجموعة متنوعة من الأوامر واختصارات لوحة المفاتيح.

لنغلق Gemini CLI الآن. يمكنك إجراء ذلك من خلال الأمر /quit أو من خلال تنفيذ الأمر Ctrl-C مرتين في جلسة طرفية تفاعلية لواجهة سطر الأوامر في Gemini.

6. ‫Gemini CLI - مَعلّمات الأوامر

تتوفّر بعض مَعلمات سطر الأوامر التي يمكن تقديمها عند بدء Gemini CLI. للحصول على قائمة كاملة بالخيارات، يمكنك استخدام --help كما هو موضّح أدناه.

gemini --help

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

لنلقِ نظرة على بعضها. الخيار الأول هو ضبط Gemini CLI لاستخدام نموذج Pro أو Flash. في الوقت الحالي، وهما النموذجان الوحيدان المتاحان. يتم استخدام نموذج Gemini 2.5 Pro تلقائيًا، ولكن إذا أردت استخدام نموذج Flash، يمكنك إجراء ذلك عند بدء استخدام Gemini CLI من خلال المَعلمة -m كما هو موضّح أدناه:

gemini -m "gemini-2.5-flash"

ستلاحظ أنّه في حال البدء بالطريقة الموضّحة أعلاه، يمكنك التحقّق من النموذج في أسفل يسار نافذة Gemini CLI كما هو موضّح أدناه:

60c4c0e6d277ade7.png

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

4bd48822b92ba012.png

الوضع غير التفاعلي

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

gemini "What is the gcloud command to deploy to Cloud Run"

يُرجى العِلم أنّه لا يمكن مواصلة المحادثة بطرح أسئلة متابعة. لا يسمح لك هذا الوضع أيضًا بمنح الإذن للأدوات (بما في ذلك WriteFile) أو بتنفيذ أوامر shell.

7. ‫Gemini CLI - أدوات مدمجة

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

للحصول على قائمة بالأدوات المضمّنة الحالية، استخدِم الأمر /tools كما هو موضّح أدناه:

Available Gemini CLI tools:

  - Codebase Investigator Agent (codebase_investigator)
  - Edit (replace)
  - FindFiles (glob)
  - GoogleSearch (google_web_search)
  - ReadFile (read_file)
  - ReadFolder (list_directory)
  - SaveMemory (save_memory)
  - SearchText (search_file_content)
  - Shell (run_shell_command)
  - WebFetch (web_fetch)
  - WriteFile (write_file)
  - WriteTodos (write_todos)

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

على الرغم من توفّر --yolo عند بدء واجهة سطر الأوامر (لا يُنصح بذلك عادةً)، ستلاحظ أنّ Gemini CLI سيطلب منك الإذن بتشغيل الأداة التي اختارها. يمكنك رفض الإذن أو السماح بتشغيل التطبيق مرة واحدة أو منحه إذنًا شاملاً بالتشغيل دائمًا. يجب أن تكون أنت المتحكّم بشكل كامل في كل شيء.

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

لنفترض أنّك تريد الحصول على معلومات حول آخر الأخبار المالية في جميع أنحاء العالم وحفظها في ملف في دليل العمل المحلي الذي أطلقت منه Gemini CLI. استخدِم الطلب التالي:

Search for the latest headlines today in the world of finance and save them in a file named finance-news-today.txt

لنفترض أنّك تريد أن يقدّم لك هذا التطبيق الأخبار المالية. من المفترض أن يبحث على Google عن الأخبار من بعض المصادر ذات الصلة التي يمكنها تقديم الأخبار المالية. بعد ذلك، يجب إنشاء ملف باسم finance-news-today.txt (عملية كتابة على نظامك المحلي تتطلّب إذنك) يتضمّن محتواه.

لنلاحظ ما سيحدث (عليك اتّباع الخطوات نفسها على جهازك).

أول ما تفعله هو استدعاء الأداة GoogleSearch للبحث على الويب واسترداد النتائج، كما هو موضّح أدناه:

GoogleSearch Searching the web for: "latest finance headlines today"                                                                                                                                            

Search results for "latest finance headlines today" returned.  

بعد ذلك، يصبح جاهزًا لكتابة هذا المحتوى في الملف وسيستخدم أداة WriteFile، ولكن بما أنّ هذه العملية حساسة (كتابة)، سيطلب منك الإذن. يمكنك تحديد نوع الإذن، أي السماح مرة واحدة أو السماح دائمًا وما إلى ذلك. اختَر "السماح مرة واحدة" في الوقت الحالي.

c84c5b58e202f98f.png

سيؤدي ذلك إلى كتابة المعلومات في الملف وستظهر رسالة نجاح على النحو التالي:

✦ I have successfully saved the latest finance headlines into the file finance-news-today.txt.

كيف يمكن التحقّق مما إذا كان الملف مكتوبًا أم لا؟ يمكنك استخدام @file لطلب قراءة المحتوى. أثناء كتابة @، ستظهر قائمة بالملفات في المجلد الحالي، وسيظهر الملف الذي تم إنشاؤه للتو. اختَر ذلك الخيار وأرسِل الطلب. يظهر طلبي أدناه:

read the contents of @finance-news-today.txt

يؤدي ذلك إلى استدعاء الأدوات المطلوبة (ReadManyFiles وReadFile) ويتم عرض المحتوى كما هو موضّح أدناه:

7a5fc5d834cbb93b.png

8. ‫Gemini CLI - وضع Shell

هذا هو الوقت المناسب لتعلُّم كيفية استخدام Shell مباشرةً من داخل واجهة سطر الأوامر في Gemini. يمكنك الانتقال إلى وضع الصدفة من خلال الضغط على ! في مربّع الرسالة. سيؤدي ذلك إلى التبديل إلى وضع Shell. يمكنك الرجوع إلى الصفحة السابقة بالضغط على ! مرة أخرى أو على المفتاح ESC.

عندما تكون في وضع shell، سترى ! في بداية الطلب كما هو موضّح أدناه:

a87f54bb3066b82d.png

يمكنك التحقّق مباشرةً باستخدام الأوامر العادية، مثل pwd وls كما هو موضّح أدناه. يُرجى العِلم أنّ الأوامر تفترض استخدام نظام تشغيل من نوع Linux. إذا كنت تستخدم نظام تشغيل آخر (Windows)، يُرجى استخدام الأوامر المكافئة، مثل (cd وdir وtype). يُرجى العلم أنّ ناتج هذه الطلبات مضمّن في نافذة السياق الخاصة بالنموذج.

33a18abe5581ff74.png

يمكنك طباعة محتوى الملف باستخدام الأمر cat اليوم.

6dbe0049ed002553.png

تمرين: إليك تمرينًا قصيرًا لتجربته. اختَر خلاصة RSS التي تريدها. قدِّم طلبًا إلى Gemini CLI لجلب محتوى خلاصة RSS وتنسيق النتائج بطريقة محدّدة. هذه طريقة جيدة لأتمتة إجراء معيّن في بداية اليوم. يمكنك حتى أن تطلب من Gemini CLI معرفة ما إذا كان هناك خلاصة RSS لمنطقة معيّنة، مثل ملاحظات إصدار Google Cloud Platform.

في ما يلي نموذج لطلب:

Get the latest release notes for Google Cloud from its RSS Feed and display the key points in a well-formatted list.

من المفترض أن يؤدي هذا الطلب أولاً إلى استدعاء أداة GoogleSearch للعثور على خلاصة RSS الخاصة بمنصة Google Cloud، ثم سيستخدم أداة WebFetch للحصول على محتوى خلاصة RSS وعرضه.

9- إضافات Gemini CLI

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

الإضافة هي حزمة مستقلة وقابلة للتحديث ويمكن توزيعها بسهولة. يمكنك اعتبارها "حاوية الشحن" لتخصيصات Gemini CLI، إذ تجمع كل ما يلزم لمسار عمل معيّن في حزمة واحدة منظَّمة.

f5ae3e229462c130.png

يمكن أن تتضمّن الإضافة أي مجموعة من العناصر التالية:

  • أوامر مخصّصة تبدأ بشرطة مائلة (ملفات .toml).
  • إعدادات خادم MCP (التي كانت متوفّرة سابقًا في ملف settings.json)
  • ملفات السياق (GEMINI.md) لتقديم تعليمات وإرشادات محدّدة للنموذج
  • قيود الأدوات (excludeTools) لإنشاء بيئة أكثر أمانًا وتركيزًا

معرض الإضافات هو السوق المركزي لاكتشاف جميع الإضافات الرسمية التي أنشأتها Google وتلك التي أنشأتها جهات خارجية:

  1. افتح عنوان URL التالي في المتصفّح: https://geminicli.com/extensions/browse/.
  2. هذا المعرض هو محرك العثور على التطبيقات في النظام المتكامل. يمكنك الاطّلاع على إضافات من شركات مثل GitHub وRedis وDynaTrace، ما يوضّح مدى توفّر الأدوات.
  3. انتقِل للأسفل وابحث عن بطاقة إضافة Cloud Run.
  4. لاحظ أنّ البطاقة تقدّم وصفًا والمؤلف (Google) وزرّ أمر Copy بنقرة واحدة. هذه هي أبسط طريقة للحصول على أمر تثبيت إضافة.

إضافات Gemini CLI - أوامر الإدارة

الأمر gemini extensions هو نقطة الدخول لإدارة الإضافات المحلية.

شغِّله في الوحدة الطرفية للاطّلاع على قائمة الأوامر المتاحة.

gemini extensions <command>

Manage Gemini CLI extensions.

Commands:
  gemini extensions install <source> [--auto-update] [--pre-release]   
      Installs an extension from a git repository URL or a local path.
  gemini extensions uninstall <names..>                                  
      Uninstalls one or more extensions.
  gemini extensions list
      Lists installed extensions.
  gemini extensions update [<name>] [--all]                           
      Updates all extensions or a named extension to the latest version.
  gemini extensions disable [--scope] <name>                          
      Disables an extension.
  gemini extensions enable [--scope] <name>                           
      Enables an extension.
  gemini extensions link <path>                                       
     Links an extension from a local path. Updates made to the local path 
     will always be reflected.
  gemini extensions new <path> [template]                             
     Create a new extension from a boilerplate example.
  gemini extensions validate <path>                                   
     Validates an extension from a local path.

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

التحقّق من قائمة الإضافات الحالية

قبل تثبيت أي شيء، لنراجع "الوضع التلقائي".

  1. نفِّذ الأمر gemini extensions list:
  2. من المفترض أن تظهر لك النتيجة التالية التي تؤكّد أنّه لم يتم تثبيت أي إضافات بعد.
No extensions installed.

إعداد خادم MCP على GitHub

أحد أنواع إضافات Gemini CLI هو خادم MCP. خادم MCP هو تطبيق يعرض الأدوات والموارد على واجهة سطر الأوامر (CLI) في Gemini من خلال بروتوكول سياق النموذج، ما يسمح له بالتفاعل مع الأنظمة الخارجية ومصادر البيانات. تعمل خوادم MCP كجسر بين نموذج Gemini وبيئتك المحلية أو الخدمات الأخرى، مثل واجهات برمجة التطبيقات.

يتوفّر لدينا خادم Github MCP في معرض "إضافات Gemini". انقر على ذلك الرمز وسيتم فتح بطاقة "الإضافات"، حيث سيظهر لك أيضًا الأمر لتثبيت الإضافة:

4eee33951dabd2db.png

ما عليك سوى نسخ ذلك أو استخدام الأمر أدناه:

gemini extensions install https://github.com/github/github-mcp-server

يُرجى منح الأذونات اللازمة. بعد تثبيتها، من المفترض أن تتمكّن من رؤية هذه الإضافة متاحة في قائمة الإضافات عند إدخال الأمر gemini extensions list.

✓ github (1.0.0)
 ID: faa318861b48de8d83c95eb8cd5e82c02393493978d198a0e7bf67fcb1bd22cb
 name: c0b0109d9439de57fe3cf03abeccbc52f4c98170c732d3b69af5e6395ace574e
 Path: /home/romin/.gemini/extensions/github
 Source: https://github.com/github/github-mcp-server (Type: git)
 Enabled (User): true
 Enabled (Workspace): true
 MCP servers:
  github

يمكنك الاطّلاع على مسار الإضافة، وفي هذا المجلد، سيكون لديك ملف باسم gemini-extension.json، ويظهر محتواه أدناه:

{
  "name": "github",
  "version": "1.0.0",
  "mcpServers": {
    "github": {
      "description": "--description–",
      "httpUrl": "https://api.githubcopilot.com/mcp/",
      "headers": {
            "Authorization": "Bearer $GITHUB_MCP_PAT"
      }
     }
  }
}

ستلاحظ أنّه يتم قراءة رمز PAT من خلال متغيّر بيئة. يجب أن يكون لديك رمز دخول شخصي (PAT) من Github أولاً. بعد الحصول على ذلك، تأكَّد من إنشاء ملف ‎ .env بالكامل ووضع هذه القيمة فيه أو إنشاء متغيّر بيئة على النحو التالي (استبدِل PAT_VALUE بالقيمة الفعلية):

export GITHUB_MCP_PAT=PAT_VALUE

عليك إعادة تشغيل Gemini CLI. بعد إطلاقها، يمكنك استخدام الأمر /mcp list للاطّلاع على قائمة بخوادم MCP والأدوات المتاحة لكل منها. من المفترض أن يظهر خادم MCP على GitHub باللون الأخضر مع أدواته (أكثر من 30 أداة). في ما يلي قائمة جزئية:

‫🟢 github (من github) - جاهز (40 أداة)

الأدوات:

  • add_comment_to_pending_review
  • add_issue_comment
  • assign_copilot_to_issue
  • create_branch
  • create_or_update_file
  • create_pull_request
  • create_repository
  • delete_file
  • fork_repository
  • get_commit
  • get_file_contents
  • get_label
  • get_latest_release
  • get_me
  • get_release_by_tag
  • get_tag
  • get_team_members
  • get_teams
  • issue_read

لنبدأ بطلب سيؤدي إلى استدعاء إحدى الأدوات من خادم GitHub MCP. قدِّم الطلب التالي (من أنا على GitHub؟). سيؤدي ذلك إلى أن يختار Gemini CLI الأداة المناسبة ويطلب إذنك.

c9873c3f51b26866.png

بعد الموافقة، سيتم استرداد النتيجة كما هو موضّح أدناه:

✦ You are rominirani, a Developer Advocate at Google Cloud, located in Mumbai. You have 125 public repositories and 256 followers.

عليك الآن العمل مع أحد مشاريعك على GitHub. قدِّم طلبات البحث باللغة الطبيعية، مثل:

  • ما هو <repo-name>؟
  • استنسِخ <repo-name> على جهازي المحلي.
  • وصف @<اسم-الملف> أو @<اسم-الدليل>/
  • ما هي المكوّنات المختلفة لهذا المستودع؟
  • لقد أجريتُ التغييرات اللازمة. هل يمكنك إرسال التغييرات إلى Github واستخدام أدوات خادم MCP في Github لتنفيذ ذلك؟

ستجد تمرينًا للتعامل مع خادم MCP على Github بالتفصيل لاحقًا في الدرس التطبيقي.

ضبط خادم MCP على Cloud Run

إضافة Cloud Run المتوفّرة في معرض إضافات Gemini CLI هي خادم MCP يتيح لنا نشر تطبيقاتنا على Cloud Run.

في ما يلي بطاقة "إضافة Cloud Run" من معرض "الإضافات":

ed9b19eac1fbde78.png

لنبدأ أولاً بتثبيت إضافة Cloud Run من خلال النقر على نسخ أمر التثبيت كما هو موضّح أعلاه. بعد ذلك، الصِق هذا الأمر في وحدة Cloud Shell الطرفية (يجب أن يكون مشابهاً لما يلي):

gemini extensions install https://github.com/GoogleCloudPlatform/cloud-run-mcp

عند تنفيذ الأمر أعلاه، سيظهر لك طلب تأكيد. يُرجى الموافقة على ذلك. بعد ذلك، من المفترض أن يتم تثبيت إضافة Cloud Run بنجاح.

إذا نفّذت الآن الأمر gemini extensions list، من المفترض أن ترى إضافة Cloud Run مثبَّتة كما هو موضّح أدناه:

✓ cloud-run (1.0.0)
 ID: 3c1a38909b6d7d90b6acc8ca1e80d97b4a867253a3cd12d841b2aab4e556a58f
 name: 0b1820c1f0c043bbb3b54f496d862c02172424c930eb965d61f468be52e6f127
 Path: /home/romin/.gemini/extensions/cloud-run
 Source: https://github.com/GoogleCloudPlatform/cloud-run-mcp (Type: git)
 Enabled (User): true
 Enabled (Workspace): true
 Context files:
  /home/romin/.gemini/extensions/cloud-run/gemini-extension/GEMINI.md
 MCP servers:
  cloud-run

إذا شغّلت Gemini CLI الآن ونفّذت الأمر /mcp list، سيظهر لك ما يلي:

🟢 cloud-run (from cloud-run) - Ready (8 tools, 2 prompts)
  Tools:
  - create_project
  - deploy_container_image
  - deploy_file_contents
  - deploy_local_folder
  - get_service
  - get_service_log
  - list_projects
  - list_services
  Prompts:
  - deploy
  - logs

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

10. حالات استخدام يمكنك تجربتها

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

في كلّ من هذه الحالات، يتم تقديم الطلب. يمكنك تجربة ذلك في الوضع التفاعلي أو غير التفاعلي في Gemini CLI من خلال المَعلمة -p عند تشغيل Gemini CLI.

ترميز الأغاني باستخدام Gemini CLI

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

المتطلّبات الأساسية

لإجراء المهام في هذا القسم، يجب استيفاء بعض الشروط المسبقة:

  • Git
  • ‫Gemini CLI مع إضافة Github Gemini CLI (أجرينا ذلك سابقًا) أو إذا كنت قد أعددت gh ( أداة Github CLI)، سيعمل ذلك أيضًا.
  • الإلمام بأساسيات Git ومعرفة بعض المعلومات عن البرمجة

سنفترض أنّك شغّلت Gemini CLI في مجلد معيّن من اختيارك.

ابدأ بطلب أولي. يمكنك تعديلها بالطريقة التي تناسبك. يُرجى العِلم أنّه سيطلب منك Gemini CLI خلال الجلسة منح الأذونات اللازمة لإنشاء الملفات وما إلى ذلك.

في هذه المهمة، لا نريد أن ينفّذ Gemini CLI التطبيق أو يختبره نيابةً عنّا لأنّنا نريد المزيد من التحكّم. ولكنّ القرار يعود إليك تمامًا.

Generate a website for a 1-day event filled with technical talks. There are going to be 6 talks in a single track of 1 hour each. Each talk has the following information: title, 1 or maximum of 2 speakers, category (1 or maximum of 3 keywords), duration and a description. The website has a single page where users can see the schedule for the entire day with the timings. There will be one lunch break of an hour and the event starts at 10:00 AM. Keep a 10 minute transition between talks. I would like to use Node.js on the server side and standard HTML, JavaScript and CSS on the front-end. The users should be able to search the talks based on category.

I would like you to proceed in the following way: 
1. Plan out how you would design and code this application.
2. Ask me for any clarifications along the way.
3. Once I am fine with it, do generate the code and provide me instructions to run and test locally. 

الطلبات والردود القليلة التالية هي نموذج لتدفق تمت ملاحظته. سيضع Gemini CLI خطة ويطلب منك تقديم أي تأكيدات أو توضيحات أو المتابعة. يُرجى اتّباع التعليمات. في ما يلي عيّنة من سلسلة المحادثات:

   1. Backend (Node.js/Express):
       * Set up an Express server to serve the static frontend files.
       * Create an /api/schedule endpoint that will:
           * Generate the event schedule dynamically, including talk timings and the lunch break, based on your requirements.
           * Store mock talk data (title, speakers, category, description).
           * Filter the schedule based on a category query parameter.

   2. Frontend (HTML, CSS, JavaScript):
       * Create an index.html file for the main structure.
       * Develop style.css for a clean and responsive design.
       * Write script.js to:
           * Fetch the schedule data from the backend.
           * Dynamically render the talks and lunch break on the page.
           * Implement a search input that filters talks by category, updating the displayed schedule without a full page reload.

   3. Schedule Logic:
       * The backend will handle calculating the precise start and end times for each 1-hour talk, factoring in the 10:00 AM start, 10-minute transitions, and the 1-hour lunch break.

  Before I proceed with the code, could you please clarify the following:

   * Example Talk Data: Could you provide some example talk titles, speakers, categories (keywords), and descriptions? This will help me create realistic dummy data for the schedule.
   * Lunch Break Placement: Where should the 1-hour lunch break be placed in the schedule? (e.g., after the 3rd talk, at 1 PM, etc.)
   * Styling Preferences: Do you have any specific styling preferences (e.g., color scheme, modern/minimalist, etc.)? If not, I will go with a clean, simple design.

 I will create a single-page website for your event. Here's my plan:

  WriteTodos Set 7 todo(s)                                                                                                                                                                                        

 I am waiting for your clarifications regarding the example talk data, lunch break placement, and styling preferences before I proceed with generating the code.

أخيرًا، قدّم لي الملخّص التالي:

 Instructions to Run and Test Locally:

   1. Start the server:
      Open your terminal in the project directory (/home/romin/gemini-cli-projects/event-website/) and run:
   1     node server.js
      You should see a message in the terminal indicating: Server running on http://localhost:3000.

   2. Open in your browser:
      Open your web browser and navigate to:
      http://localhost:3000

   3. Test functionality:
       * You should see the event schedule displayed on the page, with talks and a lunch break.
       * Search by category: In the "Search by category..." input box, type a category keyword (e.g., "AI", "Web Development", "Python", "Security").
       * Click the "Search" button. The schedule displayed should filter to only show talks matching that category.
       * Click the "Reset" button to clear the search filter and view the full schedule again.

  Let me know if you encounter any issues or if you'd like to make any modifications or additions to the website!

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

78c224b7ce29bb4d.png

يمكنك مواصلة إجراء المزيد من التغييرات بمساعدة Gemini CLI. بعد أن تصبح راضيًا عن التغييرات، يمكنك نقلها إلى مستودع Github.

أولاً، لننشئ ملف ‎ .gitignore، ويمكنك الاستعانة بأداة Gemini CLI.

Create a .gitignore file for this project.

الخطوة التالية هي تقديم تعليمات إلى Gemini CLI لنقل هذا المستودع إلى حسابنا على GitHub، ويجب أن يؤدي ذلك إلى استخدام أدوات خادم MCP على GitHub في الخلفية.

أدخِل طلبًا مشابهًا لما يلي:

Great! I would now like to push all of this to a new repository in my Github account. I would like to name this repository <Your-Name>-event-talks-app

سيتم تنفيذ عدد من الأوامر هنا:

  1. أنشئ المستودع.
  2. سيستخدم عدة أوامر Git، مثل init وadd وcommit، لإدارة مستودع Git المحلي.
  3. سيتم بعد ذلك إعداد Git عن بُعد وتنفيذ عملية دفع

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

إذا سارت الأمور على ما يرام، من المفترض أن يكون لديك مستودع Github. في ما يلي نموذج لقطة شاشة:

d046ee11d28e4d33.png

يُرجى العِلم أنّك لم تنشئ README.md لهذا المشروع، وهذا تمرين جيد للقسم التالي، حيث سنعمل الآن مع هذا المستودع الذي أنشأته للتو.

استخدام Gemini CLI للعمل على مستودع Github

في حالة الاستخدام هذه، عليك استخدام Gemini CLI للعمل مع مستودع Github. ستنفّذ مهام متعددة تشمل ما يلي:

  • فهم قاعدة الرموز البرمجية
  • جارٍ إنشاء المستندات
  • تنفيذ ميزة جديدة
  • تنفيذ التغييرات وإرسالها إلى المستودع
  • العمل على مشكلة في Github وتنفيذ التغييرات المقترَحة

من المفترض أن يمنحك ذلك أساسًا جيدًا للعمل مع مستودعاتك واستخدام Gemini CLI كمساعد في ما يتعلق بهذه المهام الخاصة بالمطوّرين.

المتطلّبات الأساسية

لتنفيذ المهام الواردة في هذا القسم، عليك إجراء ما يلي:

  • Git
  • ‫Gemini CLI مع إضافة Github MCP Gemini CLI (لقد أجرينا ذلك سابقًا) أو إذا كنت قد أعددت gh ( أداة Github CLI)، سيعمل ذلك أيضًا.
  • الإلمام بأساسيات Git ومعرفة بسيطة بالبرمجة (سنستخدم Node.js في هذا المثال لأنّك قد تكون جهّزت البيئة على جهازك مسبقًا بسبب تثبيت Gemini CLI). ولكن يمكنك في وقت لاحق اختيار مستودع من اختيارك باستخدام لغة برمجة وإطار عمل مختلفَين.
  • يجب أن تكون قد أكملت القسم السابق وأن يكون لديك المستودع جاهزًا، حيث أنشأنا موقعًا إلكترونيًا باسم Event Talks.

لنواصل استخدام Gemini CLI من المجلد/الدليل الذي استخدمته لإنشاء تطبيق Event Talks، أو يمكنك استنساخ المستودع إلى جهازك المحلي ثم بدء Gemini CLI من هذا الدليل إذا لزم الأمر. جرِّب السيناريوهات التالية كما هو موضّح أدناه:

فهم قاعدة الرموز البرمجية

  • أريد فهم هذا المشروع بالتفصيل. أريد فهم الميزات الرئيسية ثم تقسيمها إلى جهة الخادم وجهة العميل. قدِّم لي نموذجًا لعملية وأوضِح لي طريقة عمل الطلب والاستجابة.
  • Explain @server.js

إنشاء ملف README

  • أنشئ ملف README لهذا المشروع.

تنفيذ ميزة جديدة

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

من المفترض أن تقدّم لك خطة يمكنك الموافقة عليها. عند الموافقة، سيُجري Gemini CLI هذه التغييرات. جرِّب التغييرات التي أجريتها، وإذا ظهرت أخطاء (وهذا محتمل)، اطلب من Gemini CLI إصلاحها.

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

إنشاء "مشاكل" استنادًا إلى الميزات المقترَحة

لنجرّب شيئًا مثيرًا للاهتمام هنا. ستطرح على Gemini CLI سؤالاً حول كيفية تحسين تجربة المستخدم لهذا التطبيق، وبناءً على تقييمه، يمكنه إنشاء هذه الاقتراحات كمشاكل في مستودع GitHub نفسه. سيتم استخدام الأداة "create_issue" من خادم Github MCP.

جرِّب الطلب التالي:

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

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

86c33b7815c7872a.png

العمل على مشكلة في Github وتنفيذ التغييرات المقترَحة

يمكنك الآن اختيار إحدى المشاكل التي تم إنشاؤها سابقًا وطلب تنفيذها من Gemini CLI.

في ما يلي مثال على مشكلة تم إنشاؤها:

2778bde35f41efe9.png

خذ عنوان URL الكامل للمشكلة وقدِّم طلبًا مثل هذا:

  • يُرجى الانتقال إلى "المشكلة:" <YOUR_ISSUE_URL> والتعرّف على التغييرات التي يجب إجراؤها. ناقِش الخطة أولاً، ثم اعرض التغييرات المقترَحة في الرمز البرمجي.

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

(اختياري) المهام اليومية

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

يمكنك استكشاف أي من حالات الاستخدام التي تعجبك.

تنظيم الملفات/المجلدات

يمكنك استخدام Gemini CLI لتنظيم الملفات حسب أنواعها في مجلدات مختلفة حسب الحاجة. انتقِل إلى مجلد على جهازك يحتوي على عدة ملفات بتنسيقات ‎ .txt و‎.png و‎.jpg و‎.pdf و‎.mp4 وغيرها. من المحتمل أن يكون هذا هو سطح المكتب أو مجلد "عمليات التنزيل".

في ما يلي نموذج مجلد ويظهر محتوى المجلد أدناه (قد تتضمّن مجلداتك ملفات أخرى):

7011e3dfaf628e9b.png

انتقِل إلى هذا المجلد وابدأ Gemini CLI. ستطلب من Gemini CLI إنشاء بعض المجلدات أولاً: "الصور" و"المستندات" و"الفيديوهات"، ثم ستطلب من Gemini CLI تنظيم الملفات في المجلدات.

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

Create the following folders "Images","Documents","Videos"

بعد ذلك، وجِّه الطلب التالي:

Go through all the files in this folder and then organize them by moving all the files ending with .jpg, .jpeg, .gif into the "Images" folder. Move all ".txt" files into the "Documents" folder. Move all the ".mp4" files in the "Videos" folder.

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

4c1ee9ddea4b3f5f.png

في ما يلي بعض السيناريوهات الأخرى لتنظيم الملفات (تظهر الطلبات بجانب كل سيناريو):

  1. التلخيص: لكل مستند في مجلد "المستندات"، أنشئ ملف txt في المجلد نفسه باسم "summary_ORIGINAL_FILENAME.txt" يتضمّن ملخّصًا من 3 جمل للنقاط الرئيسية في المستند.
  2. التصنيف حسب النوع: تفحص هذه السمة جميع ملفات PDF وDOCX في هذا الدليل. انقل جميع الملفات التي تتضمّن كلمة "فاتورة" في اسمها أو محتواها إلى المجلد "الشؤون المالية/الفواتير". نقل الملفات التي تتضمّن كلمة "إيصال" إلى مجلد "المستندات المالية/الإيصالات" يتم نقل أي ملفات docx .أخرى إلى مجلد "التقارير".
  3. استخراج المعلومات الأساسية (و"وضع العلامات"): بالنسبة إلى كل ملف PDF في المجلد "المستندات المالية/الفواتير"، يتم قراءة محتواه. إذا عثرت على تاريخ، أعِد تسمية الملف لتضمين هذا التاريخ بالتنسيق YYYY-MM-DD، مثلاً: ‘invoice_2025-07-26_original_name.pdf'.

تنظيم الصور

لنتعرّف على كيفية تنظيم محتوى الصور على جهازك.

لتجربة هذه الميزة:

  • يجب أن يكون لديك دليل أو مجلد يحتوي على ملفات صور مختلفة (‎.jpg و‎.png وما إلى ذلك). أدرِج بعض الصور التي تتضمّن بيانات EXIF (تحتوي معظم الصور من الكاميرات/الهواتف على هذه البيانات).
  • انتقِل إلى هذا الدليل.
  • شغِّل Gemini CLI.

جرِّب أيًا من السيناريوهات التالية (تظهر الطلبات بجانب كل سيناريو):

  • إعادة التسمية حسب التاريخ (بيانات EXIF): إعادة تسمية جميع ملفات ‎ .jpg و‎ .png في هذا الدليل لتضمين تاريخ إنشائها من بيانات EXIF بالتنسيق ‎YYYYMMDD_HHMMSS_original_name.jpg. إذا لم يتم العثور على تاريخ EXIF، استخدِم تاريخ آخر تعديل للملف.
  • إنشاء أوصاف للصور: لكل صورة في هذا المجلد، صف محتوى الصورة واحفظ الوصف في ملف نصي باسم description_ORIGINAL_FILENAME.txt في الدليل نفسه.
  • تحديد الصور المكرّرة (مفهومية، تتطلّب منطقًا أكثر تقدّمًا): ابحث عن أي صور مكرّرة في هذا المجلد استنادًا إلى محتواها المرئي، وأدرِج أسماء ملفاتها. لا تحذفها بعد.

تلخيص المقالات (الملفات المحلية أو الويب)

في كل سيناريو من السيناريوهات أدناه، يمكنك تغيير عنوان URL وموضوع الاهتمام وأسماء الملفات المحلية حسب الاقتضاء. أسماء الملفات المقدَّمة هي أسماء ملفات نموذجية، ويمكنك استبدالها بأسماء ملفات لديك على نظامك.

جرِّب أيًا من السيناريوهات التالية (تظهر الطلبات بجانب كل سيناريو):

  • تلخيص مقالة على الويب (عنوان URL واحد): انتقِل إلى https://medium.com/google-cloud/getting-started-with-gemini-cli-8cc4674a1371 ولخِّص أهم 3 نقاط رئيسية من هذه المقالة الإخبارية.
  • تلخيص عدّة مقالات على الويب (مثل تلك التي تظهر في نتائج البحث): ابحث عن أحدث المقالات الإخبارية حول "واجهة سطر الأوامر في Gemini" باستخدام "بحث Google". بالنسبة إلى أهم 5 مقالات ذات صلة، يجب تلخيص كل مقالة في جملتين أو ثلاث جمل وإدراج عناوين URL الخاصة بها.
  • تلخيص ملف نصي محلي: أريد تلخيص النقاط الرئيسية في المقالة في الملف my_research_paper.txt. ركِّز على المنهجية والاستنتاجات.
  • تلخيص ملف PDF محلي: "اقرأ financial_report_Q2_2025.pdf". قدِّم ملخّصًا للأداء المالي والتحديات الرئيسية المذكورة.

استخراج معلومات محدّدة (الملفات المحلية أو الويب)

في كل سيناريو من السيناريوهات أدناه، يمكنك تغيير عنوان URL وموضوع الاهتمام وأسماء الملفات المحلية حسب الاقتضاء. أسماء الملفات المقدَّمة هي أسماء ملفات نموذجية، ويمكنك استبدالها بأسماء ملفات لديك على نظامك.

جرِّب أيًا من السيناريوهات التالية (تظهر الطلبات بجانب كل سيناريو):

  • استخراج الكيانات من مقالة محلية: من الملف biography.txt، أدرِج جميع الأشخاص المذكورين والتواريخ المهمة المرتبطة بهم.
  • استخراج البيانات من جدول في ملف PDF: في الملف "quarterly_sales.pdf"، استخرِج البيانات من الجدول في الصفحة 3 الذي يعرض "مبيعات المنتجات حسب المنطقة" وقدِّمها بتنسيق جدول Markdown.
  • استخراج عناوين الأخبار ومصادرها من موقع إلكتروني للأخبار: انتقِل إلى "https://news.google.com/" (أو موقع إلكتروني مشابه للأخبار). استخراج العناوين الرئيسية من الصفحة الأولى ومصادرها الإخبارية قدِّمها على شكل قائمة نقطية.
  • العثور على مواصفات المنتج من صفحة للتجارة الإلكترونية: انتقِل إلى "https://www.amazon.in/Google-Cloud-Certified-Associate-Engineer/dp/1119871441" (مثال على كتاب). استخرِج عنوان الكتاب والمؤلف والتفاصيل الأخرى. يجب عرض هذه المعلومات بتنسيق JSON منظَّم.
  • استخرِج المدة من فيديو بتنسيق معيّن (مثلاً "2h37m42s").

الإجابة عن الأسئلة استنادًا إلى المحتوى (سلوك مشابه لنموذج RAG)

في كل سيناريو من السيناريوهات أدناه، يمكنك تغيير عنوان URL وموضوع الاهتمام وأسماء الملفات المحلية حسب الاقتضاء. أسماء الملفات المقدَّمة هي أسماء ملفات نموذجية، ويمكنك استبدالها بأسماء ملفات لديك على نظامك.

جرِّب أيًا من السيناريوهات التالية (تظهر الطلبات بجانب كل سيناريو):

  • سؤال وجواب حول مستند محلي: أرفقتُ الملف user_manual.pdf. ما هي خطوات تحديد مشاكل اتصال الشبكة وحلّها؟
  • سؤال وجواب على صفحة ويب: استنادًا إلى المحتوى من"https://www.who.int/news-room/fact-sheets/detail/climate-change-and-health"، ما هي المخاطر الصحية الأساسية المرتبطة بتغيّر المناخ وفقًا لمنظمة الصحة العالمية؟
  • مقارنة المعلومات من مصادر متعددة: لديّ مقالتان إخباريتان: article1.txt وarticle2.txt، وكلتاهما تناقشان التغييرات الأخيرة في السياسة الاقتصادية. قارِن بين وجهات نظرهم بشأن التأثير المحتمَل على الأنشطة التجارية الصغيرة.

إنشاء المحتوى استنادًا إلى المعلومات المستخرَجة

في كل سيناريو من السيناريوهات أدناه، يمكنك تغيير عنوان URL وموضوع الاهتمام وأسماء الملفات المحلية حسب الاقتضاء.

جرِّب أيًا من السيناريوهات التالية (تظهر الطلبات بجانب كل سيناريو):

  • إنشاء موجز إخباري من مقالة: Read @tech_innovation_article.txt اكتب موجزًا إخباريًا قصيرًا وجذّابًا (حوالي 150 كلمة) مناسبًا لنشرة إخبارية خاصة بالشركة، مع تسليط الضوء على التكنولوجيا الجديدة وإمكاناتها.
  • إعداد مسودة رسالة إلكترونية تلخّص محضر اجتماع: إليك ملف محضر اجتماع: ‎@meeting_transcript.txt. أنشئ مسودة رسالة إلكترونية للفريق تلخّص القرارات الرئيسية المتّخذة وبنود العمل المحدّدة، بما في ذلك الجهة المسؤولة عن كل منها.

إتاحة Gemini CLI للوسائط المتعددة

يتوافق Gemini CLI مع عدة نماذج من خلال Gemini، ويمكنك أن تطلب منه معالجة ملفات بتنسيقات محتوى مختلفة وفقًا لمتطلباتك.

ستعالج مجموعة من صور الفواتير باستخدام Gemini CLI وتستخرج منها المعلومات الرئيسية. يُرجى اتّباع الخطوات التالية:

  • أنشئ مجلدًا على جهازك ونزِّل بعض الفواتير من مستودع Github التالي.
  • تشغيل Gemini CLI من هذا المجلد

قدِّم الطلب التالي لاستخراج المعلومات من الفواتير في شكل جدول.

The current folder contains a list of invoice files in Image format. Go through all the files in this folder and extract the following invoice information in the form of a table: Invoice No, Invoice Date, Invoice Sent By, Due Date, Due Amount.

من المفترض أن تحصل على نتيجة بالشكل التالي:

7203d699d875a91f.png

إليك سيناريو آخر يمكنك فيه طلب أعمدة إضافية مشتقة. لنفترض أنّك تريد عرض رمز تعبيري على شكل علامة X حمراء لجميع تواريخ استحقاق الفواتير السابقة. يمكنك تقديم طلب على النحو التالي:

list all files with .png extension in this folder. Extract the invoice information from it by reading them locally and display it in a table format containing the following column headers: : Invoice No, Invoice Date, Invoice Sent By, Due Date, Due Amount. Add a column at the end of the table that shows a red cross emoji in case the due date is in the past.

يؤدي ذلك إلى ظهور الناتج التالي:

e11fcde0400f5a0b.png

يمكنك تطبيق ذلك على أي من ملفاتك بتنسيقات أخرى غير النص.

استخدام Gemini CLI للعمل مع قواعد البيانات

يمكنك استخدام Gemini CLI للعمل بكفاءة أكبر مع قواعد بيانات مختلفة. يمكنك استخدامها في سيناريوهات متعدّدة، مثل الاستعلام باللغة الطبيعية وتصدير البيانات وتصميم مخططات قواعد البيانات وإنشاء بيانات اختبار واقعية وغير ذلك.

يجب استخدام SQLite3 لإكمال هذه المهمة. عليك تثبيت SQLite3 واستخدام قاعدة بيانات Chinook النموذجية.

في ما يلي تعليمات موجزة لإعداد SQLite3:

  1. ‫macOS: يتم تثبيت SQLite3 مسبقًا. أكِّد هويتك باستخدام sqlite3 --version. إذا لزم الأمر، ثبِّت الأداة باستخدام Homebrew: brew install sqlite3.
  2. ‫Windows: نزِّل الملفات الثنائية المجمَّعة مسبقًا من موقع SQLite الإلكتروني. استخرِج الملفات إلى دليل (مثل C:\sqlite) أضِف هذا الدليل إلى متغير بيئة PATH في نظامك.
  3. ‫Linux: Debian/Ubuntu: sudo apt update && sudo apt install sqlite3

نزِّل نموذج قاعدة بيانات Chinook (إليك رابطًا مباشرًا لتنزيلها).

لتشغيل هذه الطلبات، يُقترح إنشاء مجلد (database-tasks) في الدليل gemini-cli-projects. انسخ ملف قاعدة بيانات Chinook إلى هذا المجلد. تأكَّد من إعداد أداة sqlite3 على نظامك وتوفّرها في المسار، حتى يتمكّن Gemini CLI من استخدامها. شغِّل Gemini CLI.

في ما يلي مخطط قاعدة البيانات:

4178b54e03a07d60.png

لنفترض أنّك في مجلد باسم database-tasks وأنّ ملف قاعدة بيانات Chinook اسمه chinook.db.

في ما يلي عدة طلبات يمكن أن تساعدك في العمل مع قواعد البيانات. سنشرح بإيجاز الإذن الأول لتوضيح الإذن الذي سيُطلب.

ابدأ بطلب إدراج الجداول المتوفّرة في قاعدة البيانات، وذلك من خلال إدخال الطلب التالي:

What tables are present in the file: chinook.db 

يستخدم هذا الأمر الأداة لقراءة الملف، ثم يريد استخدام أداة sqlite3 المتوفّرة على نظامك لتنفيذ الإجراء اللازم:

a8d782201eba1eb8.png

امنح الإذن بتشغيله مرة واحدة للحصول على الناتج المتوقع:

69e96f22610e7892.png

جرِّب الطلبات التالية أو أي طلب آخر من اختيارك:

  • كم عدد الموظفين؟
  • ما هو مخطط جدول الفواتير؟
  • ما هي أعلى 3 فواتير حسب الإجمالي وما هم العملاء الذين أصدروا هذه الفواتير؟

ستلاحظ أنّ Gemini CLI يهتم بأمرين: إنشاء عبارة SQL الصحيحة لتلبية متطلباتك وتقديم الأمر sqlite3 الصحيح.

استخدام Gemini CLI لإنشاء بيانات

يمكنك أن تطلب من Gemini CLI إنشاء البيانات بتنسيقات مختلفة. يمكن أن يتراوح ذلك بين أجزاء المحتوى وبيانات JSON التي قد تحتاج إلى محاكاتها. سنركّز هنا على السيناريوهات التي تنطبق على المطوّرين/المختبِرين.

في ما يلي بعض الطلبات التي يمكنك تجربتها:

إنشاء بيانات JSON لعينات من مراجعات العملاء

Generate a JSON array of 3 synthetic customer reviews for a new smartphone. Each review should have 'reviewId' (string, UUID-like), 'productId' (string, e.g., 'SMARTPHONE_X'), 'rating' (integer, 1-5), 'reviewText' (string, 20-50 words), and 'reviewDate' (string, YYYY-MM-DD format).

إنشاء ردود وهمية من واجهة برمجة التطبيقات (JSON)

Generate a JSON array representing 7 daily sales records for a mock API endpoint. Each record should include 'date' (YYYY-MM-DD, chronologically increasing), 'revenue' (float, between 5000.00 and 20000.00), 'unitsSold' (integer, between 100 and 500), and 'region' (string, either 'North', 'South', 'East', 'West').

إنشاء عبارات إدراج في قاعدة بيانات نموذجية (SQL)

Generate 5 SQL INSERT statements for a table named 'users' with columns: 'id' (INTEGER, primary key), 'username' (VARCHAR(50), unique), 'email' (VARCHAR(100)), 'password_hash' (VARCHAR(255)), 'created_at' (DATETIME, current timestamp). Ensure the password_hash is a placeholder string like 'hashed_password_X'.

إنشاء بيانات CSV لتحميل البيانات/تحليلها

Generate 10 lines of CSV data, including a header row, for customer transactions. Columns should be: 'TransactionID' (unique string), 'CustomerID' (integer), 'ItemPurchased' (string, e.g., 'Laptop', 'Monitor', 'Keyboard'), 'Quantity' (integer, 1-3), 'UnitPrice' (float, between 100.00 and 1500.00), 'TransactionDate' (YYYY-MM-DD).

إنشاء ملف إعدادات (YAML)

Generate a sample YAML configuration for a 'user_service'. Include sections for 'database' with 'host', 'port', 'username', 'password', 'database_name'. Also include a 'api_keys' section with 'payment_gateway' and 'email_service' placeholders. Use realistic default values.

إنشاء بيانات اختبار للحالات الحدّية/التحقّق من الصحة

Generate a JSON array of 8 email addresses for testing purposes. Include a mix of: 2 valid standard emails, 2 with missing '@', 2 with invalid domains (e.g., '.com1'), and 2 with special characters in the local part that are usually invalid (e.g., spaces or multiple dots).

11. تهانينا

تهانينا، لقد استكشفتَ بنجاح أداة Gemini CLI وإمكاناتها وطبّقتها على بعض حالات الاستخدام.

المستندات المرجعية