تجربة استخدام 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. تأكَّد من تفعيل الفوترة لمشروعك على السحابة الإلكترونية. تعرَّف على كيفية التحقّق مما إذا كانت الفوترة مفعَّلة في مشروع.
  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 CLI، مع أنّها ستستعين أيضًا ببعض المجلدات الأخرى على نظامك والتي ستتعرّف عليها لاحقًا حسب الحاجة.

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

mkdir gemini-cli-projects

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

cd gemini-cli-projects

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

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

إذا أردت تثبيت Gemini CLI على جهازك، اتّبِع التعليمات الواردة أدناه. يُرجى العِلم أنّ Gemini CLI مثبّت مسبقًا على Cloud Shell ومحطات عمل Cloud.

الخطوة الأولى هي تثبيت 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 باستخدام أي من الطرق المذكورة أعلاه، قد يُطلب منك عند التشغيل الأول اختيار مظهر. إذا كان الأمر كذلك، يمكنك إما استخدام المظهر التلقائي أو اختيار مظهر من اختيارك.

الأمر المهم التالي هو المصادقة. سيُطلب منك تحديد طريقة المصادقة. ننصحك باستخدام حساب Google شخصي وليس حسابات غير تابعة لـ Google أو Google Workspace في هذه التجربة.

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

57bad75cedaaaa38.png

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

في ما يلي نموذج للقطة شاشة:

8fc80ad44c19f782.png

في هذه الحالة، اخترنا خيار Vertex AI، ولكن يمكن أن يكون الحساب الشخصي في حالتك. ستلاحظ أنّنا اخترنا نموذج Gemini 2.5 (يظهر في أسفل يسار الصفحة). يمكنك اختيار النموذج المحدّد في أي وقت باستخدام الأمر /model.

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>.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 أدناه. إذا كنت قد اخترت مظهرًا آخر، سيظهر لك اسمه هناك.

{
  "security": {
    "auth": {
      "selectedType": "oauth-personal" or "cloud-shell"
    }
  },
  "ui": {
    "theme": "Default"
  }
}

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

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

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

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

 > Give me a famous quote on Artificial Intelligence and who said that?                 
✦ "The only way to do great work is to love what you do." - Steve Jobs (While not directly about AI, it's a famous quote related to technology and innovation, which underpins AI development.)
Alternatively:
  "The development of full artificial intelligence could spell the end of the human race." - Stephen Hawking

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

لنتوقف عن استخدام Gemini CLI في الوقت الحالي. يمكنك إجراء ذلك من خلال الأمر /quit أو من خلال تنفيذ الأمر Ctrl-C مرتين في جلسة طرفية تفاعلية في Gemini CLI. عند الخروج من Gemini CLI، ستظهر لك إحصاءات الجلسة التي تقدّم لك بعض المعلومات عن جلستك واستخدام النموذج والمقاييس الأخرى.

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

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

gemini --help

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

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

gemini -m "gemini-2.5-flash"

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

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

69154a6bf6553f35.png

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

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

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

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

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

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

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

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

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

Available Gemini CLI tools:
  - Activate Skill (activate_skill)
  - Ask User (ask_user)
  - Edit (replace)
  - Enter Plan Mode (enter_plan_mode)
  - FindFiles (glob)
  - GoogleSearch (google_web_search)
  - Invoke Subagent (invoke_agent)
  - List Background Processes (list_background_processes)
  - Read Background Output (read_background_output)
  - ReadFile (read_file)
  - ReadFolder (list_directory)
  - SearchText (grep_search)
  - Shell (run_shell_command)
  - Update Topic Context (update_topic)
  - WebFetch (web_fetch)
  - WriteFile (write_file)

أحد الأسئلة التي يجب أن تطرحها على نفسك على الفور هو ما إذا كان بإمكان 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 للبحث على الويب واسترداد النتائج، كما هو موضّح أدناه:

 Searching for Finance News: 
  I will first search for the latest finance headlines and then save them to a file.
  ✓  GoogleSearch  Searching the web for: "latest finance headlines"
   → Search results for "latest finance headlines" returned.
  Saving Finance News: I will now save the finance headlines to the file 'finance-news-today.txt'.

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

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

✦ I have saved the latest finance news to finance-news-today.txt.
  Finance News Saved: The task is complete.

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

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

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

    ReadManyFiles  Attempting to read files from finance-news-today.txt  Read 1 file(s)
  Topic: Summarizing the financial news headlines.
 The latest finance headlines as of May 15, 2026, include:
  Global Markets & Economy:
   * The Dow Jones Industrial Average surpassed 50,000 for the first time, driven by strong earnings from Cisco
     Systems and a 2% rise in Nasdaq due to tech stocks.
   * Inflation concerns are growing, hinting at potential Fed interest rate hikes.
   * Kevin Warsh has been confirmed as the new Federal Reserve head.
   * A "constructive" U.S.-China summit took place in Beijing between President Trump and President Xi, with
     markets watching for impacts from proposed tariffs.
  Corporate & Tech News:
   
<REST OF THE CONTENT>

8. ‫Gemini CLI - وضع Shell

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

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

aab5d032116fa5e8.png

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

f6e6d45174a9997d.png

يمكنك أيضًا طباعة محتوى الملف باستخدام الأمر cat، أي cat finance-news-today.txt.

تمرين: إليك تمرينًا قصيرًا لتجربته. اختَر خلاصة 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 Platform، ثم تستخدم الأداة 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/
  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.
  gemini extensions config [name] [setting]                  
    Configure extension settings.
Options:

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

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

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

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

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

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

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

ed9b19eac1fbde78.png

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

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

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

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

✓ cloud-run (1.0.0)
 ID: 3c1a38909b6d7d90b6acc8ca1e80d97b4a867253a3cd12d841b2aab4e556a58f
 name: 0b1820c1f0c043bbb3b54f496d862c02172424c930eb965d61f468be52e6f127
 Path: /Users/romin/.gemini/extensions/cloud-run
 Source: https://github.com/GoogleCloudPlatform/cloud-run-mcp (Type: github-release)
 Release tag: v1.10.0
 Enabled (User): true
 Enabled (Workspace): true
 Context files:
  /Users/romin/.gemini/extensions/cloud-run/gemini-extension/GEMINI.md
 MCP servers:
  cloud-run
 Settings:
  Project ID: YOUR_GCP_PROJEC_ID (User - /Users/romin/.gemini/extensions/cloud-run/.env)
  Region: YOUR_GCP_PROJECT_LOCATION (User - /Users/romin/.gemini/extensions/cloud-run/.env)

إذا شغّلت Gemini CLI الآن ونفّذت الأمر /mcp list، سيظهر لك ما يلي. لاحظ الأدوات والطلبات في خادم MCP على Cloud Run.

Configured MCP servers:
🟢 cloud-run (from cloud-run) - Ready (8 tools, 2 prompts)
  Tools:
  - mcp_cloud-run_create_project
  - mcp_cloud-run_deploy_container_image
  - mcp_cloud-run_deploy_file_contents
  - mcp_cloud-run_deploy_local_folder
  - mcp_cloud-run_get_service
  - mcp_cloud-run_get_service_log
  - mcp_cloud-run_list_projects
  - mcp_cloud-run_list_services
  Prompts:
  - deploy
  - logs

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

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

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

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

البرمجة الوصفية باستخدام Gemini CLI

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

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

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

  • Git
  • Gemini CLI
  • إعداد gh ( أداة GitHub CLI)
  • الإلمام بأساسيات Git ومعرفة بعض المعلومات عن البرمجة

سنفترض أنّك شغّلت Gemini CLI في مجلد محدّد من اختيارك. في حالتنا، أطلقنا Gemini CLI من مجلد الصفحة الرئيسية الأولي gemini-cli-projects ومجلد آخر event-website بداخله.

ابدأ بطلب أولي. يمكنك اعتبارها مواصفات لتطبيقك. يمكنك تعديله بالطريقة التي تناسبك. يُرجى العِلم أنّ 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 خطة ويطلب منك تقديم أي تأكيدات أو توضيحات أو المتابعة. يُرجى اتّباع التعليمات. في ما يلي عيّنة من سلسلة المحادثات:

    Of course. I will start by creating a plan for the application.
  Plan:
   1. Backend (Node.js):
       * I'll set up a simple Node.js server using the Express.js framework.
       * This server will have two main purposes:
           1. Serve the static frontend files (HTML, CSS, JavaScript).
           2. Provide an API endpoint (e.g., /api/talks) that will send the event schedule data to the frontend as a JSON object.
       * The talk data will be stored in a separate talks.json file for easy management.
   2. Frontend (HTML, CSS, JS):
       * HTML: A single index.html file will define the structure of the page, including a container for the schedule and a search input field for filtering by category.
       * CSS: A style.css file will be used to style the website for a clean and professional look, ensuring the schedule is easy to read.
       * JavaScript: A script.js file will handle the dynamic aspects of the site:
           1. It will fetch the talk data from the backend API when the page loads.
           2. It will dynamically render the schedule on the page based on the fetched data.
           3. It will implement the search functionality. As the user types in the search box, it will filter the displayed talks based on the category keywords.
   3. Project Structure:
      I will organize the project with a clear and standard structure:
   1     /
   2     ├── public/
   3        ├── index.html
   4        ├── style.css
   5        └── script.js
   6     ├── talks.json
   7     └── server.js
   8     └── package.json
  Before I proceed with generating the code, I have a few questions to ensure the final product meets your expectations:

حتى أنّه يطرح عليّ بعض الأسئلة (الموضّحة أدناه والتي أجيب عنها):

c6127207c54a776c.png

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

وأخيرًا، بدأ تشغيل الخادم وطلب مني المتابعة وفحص الصفحة:

The server is now running in the background.
  3. View Your Website
  You can now open your web browser and navigate to the following address to see your website:
  http://localhost:3000 (http://localhost:3000)
  4. Test the Search Functionality
  Once the page is loaded, you can test the search functionality by typing a category into the search bar (e.g., "AI", "Frontend", "Cybersecurity"). The list of talks
  will filter in real-time.
  This completes the setup and implementation of your event website. Let me know if you have any other questions.

في ما يلي نموذج الصفحة التي أنشأها:

12664933302b3867.png

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

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

Create a .gitignore file for this project.

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

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

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. في ما يلي نموذج لقطة شاشة:

b393c67b13ddf19a.png

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

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

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

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

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

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

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

  • Git
  • ‫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.

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

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

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

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

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

10a31e665be46f9d.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 محلي: اقرأ "التقرير_المالي_الربع_الثاني_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 وإمكاناته بنجاح وطبّقته على بعض حالات الاستخدام.

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