عملی با Gemini CLI

۱. مقدمه

در این آزمایشگاه کد، شما با رابط خط فرمان Gemini ، یک عامل هوش مصنوعی متن‌باز که قدرت Gemini را مستقیماً به ترمینال شما می‌آورد، آشنا خواهید شد.

آنچه یاد خواهید گرفت

  1. نصب و پیکربندی رابط خط فرمان Gemini
  2. بررسی ابزارها، دستورات داخلی و پیکربندی سرورهای MCP در Gemini CLI
  3. سفارشی‌سازی رابط خط فرمان Gemini از طریق فایل GEMINI.md
  4. بررسی چند مورد استفاده با Gemini CLI

آنچه نیاز دارید

این codelab را می‌توان به‌طور کامل در Google Cloud Shell اجرا کرد، که از قبل با Gemini CLI نصب شده است.

از طرف دیگر، اگر ترجیح می‌دهید روی دستگاه خودتان کار کنید، بخشی برای نصب Gemini CLI به صورت محلی وجود دارد.

شما به موارد زیر نیاز خواهید داشت:

  • مرورگر وب کروم
  • یک حساب جیمیل

این آزمایشگاه کد، برای کاربران و توسعه‌دهندگان در تمام سطوح (از جمله مبتدیان) طراحی شده است. موارد استفاده در آزمایشگاه کد به وظایف توسعه‌دهنده و غیر توسعه‌دهنده طبقه‌بندی شده‌اند. موارد استفاده توسعه‌دهنده، نحوه کدنویسی با Gemini CLI و کار با مخزن GitHub را برای انجام وظایف توسعه رایج مانند توضیح/درک کد، تولید مستندات، رفع مشکلات و موارد دیگر نشان می‌دهد. توصیه می‌شود این موارد استفاده را در آزمایشگاه کد تکمیل کنید. در انتها یک بخش اختیاری وجود دارد که چندین کار روزمره را که متمرکز بر غیر توسعه‌دهنده هستند، پوشش می‌دهد.

۲. قبل از شروع

ایجاد یک پروژه

  1. در کنسول گوگل کلود ، در صفحه انتخاب پروژه، یک پروژه گوگل کلود را انتخاب یا ایجاد کنید.
  2. مطمئن شوید که صورتحساب برای پروژه ابری شما فعال است. یاد بگیرید که چگونه بررسی کنید که آیا صورتحساب در یک پروژه فعال است یا خیر .
  3. شما از Cloud Shell ، یک محیط خط فرمان که در Google Cloud اجرا می‌شود و bq از قبل روی آن بارگذاری شده است، استفاده خواهید کرد. روی Activate 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>

۳. نصب

قبل از انجام تنظیمات و اجرای Gemini CLI، بیایید یک پوشه ایجاد کنیم که از آن به عنوان پوشه اصلی برای تمام پروژه‌هایی که درون آن ایجاد می‌کنیم استفاده خواهیم کرد. این یک نقطه شروع برای کار Gemini CLI است، اگرچه به برخی پوشه‌های دیگر روی سیستم شما نیز اشاره خواهد کرد که در صورت نیاز بعداً به آنها مراجعه خواهید کرد.

یک پوشه نمونه ( gemini-cli-projects ) ایجاد کنید و از طریق دستورات نشان داده شده در زیر به آن بروید. اگر ترجیح می‌دهید از نام پوشه دیگری استفاده کنید، لطفاً این کار را انجام دهید.

mkdir gemini-cli-projects

بیایید به آن پوشه برویم:

cd gemini-cli-projects

شما می‌توانید مستقیماً از طریق دستور gemini ، رابط خط فرمان Gemini را اجرا کنید.

لطفاً مستقیماً به بخش بعدی (پیکربندی رابط خط فرمان Gemini از طریق settings.json) بروید.

اگر می‌خواهید Gemini CLI را به صورت محلی نصب کنید، دستورالعمل‌های زیر را دنبال کنید. توجه داشته باشید که Gemini CLI از قبل روی Cloud Shell و Cloud Workstations نصب شده است.

اولین قدم نصب 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

می‌توانید با اجرای دستور زیر از نصب CLI اطمینان حاصل کنید:

gemini --version

با فرض اینکه Gemini CLI را از طریق هر یک از روش‌های بالا اجرا کرده‌اید، در اولین اجرا، ممکن است از شما در مورد انتخاب تم سوال شود. در این صورت، می‌توانید از تم پیش‌فرض استفاده کنید یا تم دلخواه خود را انتخاب کنید.

نکته مهم بعدی احراز هویت است. در این مرحله از شما روش احراز هویت پرسیده می‌شود. توصیه می‌شود در این آزمایش از حساب گوگل شخصی خود استفاده کنید و از حساب‌های غیر گوگل یا حساب‌های مرتبط با Google Workspace استفاده نکنید.

اگر با سهمیه رایگان فعلی که به حساب‌های گوگل داده می‌شود، به محدودیت برخوردید، می‌توانید از کلید API Gemini یا حتی Google Cloud Vertex AI استفاده کنید، که در آن به یک شناسه پروژه و نام مکان برای آن پروژه نیاز خواهید داشت. اگر قصد دارید از روش‌های دیگر احراز هویت استفاده کنید، به بخش احراز هویت در مستندات مراجعه کنید.

57bad75cedaaaa38.png

ادامه دهید و روی Enter کلیک کنید. این کار یک صفحه احراز هویت گوگل در مرورگر باز می‌کند. احراز هویت را با حساب گوگل خود انجام دهید، شرایط را بپذیرید و پس از تأیید موفقیت‌آمیز، متوجه خواهید شد که رابط خط فرمان Gemini آماده و منتظر دستور شماست.

نمونه‌ای از اسکرین‌شات در زیر آورده شده است:

8fc80ad44c19f782.png

در این مورد، ما گزینه Vertex AI را انتخاب کرده‌ایم، اما در مورد شما می‌تواند حساب شخصی باشد. متوجه خواهید شد که ما مدل Gemini 2.5 (که در پایین سمت راست قابل مشاهده است) را انتخاب کرده‌ایم. شما می‌توانید مدل خاص خود را در هر زمان با استفاده از دستور /model انتخاب کنید.

۴. پیکربندی رابط خط فرمان Gemini از طریق settings.json

اگر Cloud Shell را برای اجرای Gemini انتخاب کنید، یک تم پیش‌فرض برای Gemini CLI و روش احراز هویت از قبل برای شما انتخاب و پیکربندی شده است.

اگر Gemini CLI را روی دستگاه خود نصب کرده و برای اولین بار آن را اجرا کرده‌اید، یک تم و سپس یک روش احراز هویت را انتخاب کرده‌اید.

اکنون، در اجراهای بعدی Gemini CLI، دیگر از شما خواسته نمی‌شود که یک قالب و روش احراز هویت را انتخاب کنید. این بدان معناست که در جایی ذخیره می‌شود و فایلی که از آن استفاده می‌کند settings.json نام دارد و این روشی برای سفارشی‌سازی Gemini CLI است.

تنظیمات با اولویت زیر اعمال می‌شوند (Cloud Shell فقط تنظیمات کاربر را در دسترس قرار می‌دهد):

  1. سیستم: /etc/gemini-cli/settings.json (برای همه کاربران اعمال می‌شود، تنظیمات کاربر و فضای کاری را لغو می‌کند).
  2. فضای کاری: .gemini/settings.json (تنظیمات کاربر را لغو می‌کند).
  3. کاربر: ~/.gemini/settings.json .

کاربر ویندوز : %USERPROFILE%.gemini\settings.json (که معمولاً به C:\Users&lt;YourUsername>.gemini\settings.json گسترش می‌یابد)

System : %ProgramData%\gemini-cli\settings.json (که معمولاً به C:\ProgramData\gemini-cli\settings.json گسترش می‌یابد)

کاربر مک : ~/.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"
  }
}

۵. اولین تعامل ما با رابط خط فرمان Gemini

بیایید با 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 و دستورات مختلفی که پشتیبانی می‌کند، تایپ کردن /help (علامت اسلش رو به جلو) است و انواع دستورات و میانبرهای صفحه کلید را مشاهده خواهید کرد.

بیایید فعلاً از Gemini CLI خارج شویم. می‌توانید این کار را یا از طریق دستور /quit انجام دهید یا می‌توانید دو بار Ctrl-C در جلسه ترمینال تعاملی Gemini CLI فشار دهید. وقتی از Gemini CLI خارج می‌شوید، آمار جلسه شما را نشان می‌دهد که بینشی در مورد جلسه، میزان استفاده از مدل و سایر معیارها به شما می‌دهد.

۶. رابط خط فرمان Gemini - پارامترهای فرمان

چند پارامتر خط فرمان وجود دارد که می‌توان هنگام شروع 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 با اعلان مربوطه باز می‌شود و ادامه کار در داخل آن انجام می‌شود.

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

۷. رابط خط فرمان Gemini - ابزارهای داخلی

رابط خط فرمان Gemini با مجموعه‌ای از ابزارهای داخلی ارائه می‌شود و در مستندات ابزارها آمده است: «مدل 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

برای لحظه‌ای تصور کنید که چه کاری باید انجام دهد. در حالت ایده‌آل، باید برای دریافت اخبار از منابع اطلاعاتی مرتبط که می‌توانند اخبار مالی را در اختیارش قرار دهند، در گوگل جستجو کند. سپس باید فایلی با نام 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>

۸. رابط خط فرمان Gemini - حالت پوسته

الان زمان خوبی برای یادگیری نحوه کار مستقیم با Shell از داخل رابط خط فرمان Gemini است. می‌توانید با فشار دادن ! در کادر پیام، به حالت shell بروید. این کار شما را به حالت Shell تغییر می‌دهد. می‌توانید با فشار دادن دوباره ! یا زدن کلید ESC به حالت اولیه برگردید.

وقتی در حالت shell هستید، علامت ! را در ابتدای اعلان فرمان، مطابق شکل زیر، مشاهده خواهید کرد:

aab5d032116fa5e8.png

شما می‌توانید مستقیماً با استفاده از دستورات استاندارد مانند pwd و ls همانطور که در زیر نشان داده شده است، بررسی کنید. لطفاً توجه داشته باشید که این دستورات فرض می‌کنند سیستم عامل از نوع لینوکس است. اگر از سیستم عامل دیگری (ویندوز) استفاده می‌کنید، لطفاً از دستورات معادل مانند ( cd ، dir و type ) استفاده کنید. توجه داشته باشید که خروجی این فراخوانی‌ها در پنجره context مدل گنجانده شده است.

f6e6d45174a9997d.png

شما می‌توانید محتویات فایل را از طریق دستور cat نیز چاپ کنید، مثلاً cat finance-news-today.txt .

تمرین : در اینجا یک تمرین کوتاه برای امتحان کردن ارائه شده است. یک فید RSS به دلخواه خود انتخاب کنید. به Gemini CLI دستور دهید تا محتوای فید RSS را دریافت کرده و نتایج را به روشی خاص برای شما قالب‌بندی کند. این روش خوبی برای خودکارسازی کاری در ابتدای روز است. حتی می‌توانید از Gemini CLI بخواهید که بررسی کند آیا فید RSS برای یک بخش خاص، مثلاً یادداشت‌های انتشار پلتفرم ابری گوگل، وجود دارد یا خیر.

یک نمونه اعلان در زیر نشان داده شده است:

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

در حالت ایده‌آل، این اعلان ابتدا باید ابزار GoogleSearch را برای یافتن فید RSS پلتفرم ابری گوگل فراخوانی کند و سپس از ابزار WebFetch برای دریافت محتوای فید RSS و نمایش آنها استفاده کند. ممکن است از شما مجوزهای لازم برای فراخوانی این ابزارها درخواست شود، لطفاً مجوزهای لازم را صادر کنید.

۹. افزونه‌های رابط خط فرمان Gemini

همانطور که در مستندات آمده است، افزونه‌های Gemini CLI، اعلان‌های بسته، سرورهای MCP و دستورات سفارشی را در قالبی آشنا و کاربرپسند ارائه می‌دهند. با افزونه‌ها، می‌توانید قابلیت‌های Gemini CLI را گسترش داده و آن قابلیت‌ها را با دیگران به اشتراک بگذارید. این مکانیزم اصلی برای گسترش عملکرد Gemini CLI فراتر از ابزارهای داخلی آن است.

یک افزونه، یک بسته‌ی مستقل، قابل نسخه‌بندی و به راحتی قابل توزیع است. آن را به عنوان "ظرف حمل و نقل" برای سفارشی‌سازی‌های Gemini CLI خود در نظر بگیرید که هر آنچه را که برای یک گردش کار خاص نیاز دارید، در یک بسته‌ی واحد و مرتب قرار می‌دهد.

f5ae3e229462c130.png

یک افزونه می‌تواند هر ترکیبی از موارد زیر را در خود جای دهد:

  • دستورات اسلش سفارشی (فایل‌های .toml شما).
  • پیکربندی‌های سرور MCP (که قبلاً در settings.json قرار داشتند).
  • فایل‌های زمینه (GEMINI.md) برای ارائه دستورالعمل‌ها و راهنماهای خاص به مدل.
  • محدودیت‌های ابزار (excludeTools) برای ایجاد محیطی امن‌تر و متمرکزتر.

گالری افزونه‌ها، بازار مرکزی برای کشف تمام افزونه‌های رسمی ساخته‌شده توسط گوگل و شخص ثالث است:

  1. آدرس اینترنتی زیر را در مرورگر خود باز کنید: https://geminicli.com/extensions/
  2. این گالری موتور کشف‌پذیری برای این اکوسیستم است. می‌توانید افزونه‌های شرکت‌هایی مانند GitHub، Redis و DynaTrace را ببینید که وسعت ابزارهای موجود را نشان می‌دهند.
  3. به پایین اسکرول کنید و کارت افزونه‌ی Cloud Run را پیدا کنید یا لینک آن را اینجا ببینید.
  4. توجه داشته باشید که این کارت شامل توضیحات، نام نویسنده (گوگل) و دکمه‌ی دستور 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.

پیکربندی سرور Cloud Run MCP

افزونه Cloud Run که در گالری افزونه‌های Gemini CLI موجود است، یک سرور MCP است که به ما امکان می‌دهد برنامه‌های خود را در Cloud Run مستقر کنیم.

کارت افزونه Cloud Run از گالری افزونه‌ها در زیر نشان داده شده است:

ed9b19eac1fbde78.png

ابتدا افزونه Cloud Run را با کلیک روی دستور Copy install همانطور که در بالا نشان داده شده است نصب می‌کنیم. سپس آن دستور را در ترمینال Cloud Shell پیست کنید (باید مشابه زیر باشد):

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

با اجرای دستور بالا، یک تأیید از شما خواسته می‌شود. آن را تأیید کنید. افزونه Cloud Run از شما شناسه پروژه گوگل و مکان پروژه گوگل شما را می‌خواهد. حتماً آنها را ارائه دهید. سپس افزونه 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 اجرا کنید، موارد زیر را مشاهده خواهید کرد. به ابزارها و اعلان‌های Cloud Run MCP Server توجه کنید.

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 است که نحوه پیکربندی آن را نشان داده‌ایم. می‌توانید برای آشنایی بیشتر با افزونه‌ها، به گالری افزونه‌ها مراجعه کنید.

۱۰. از موارد برای امتحان کردن استفاده کنید

رابط خط فرمان Gemini می‌تواند در طیف گسترده‌ای از موارد استفاده، چه برای توسعه‌دهندگان و چه برای غیر توسعه‌دهندگان، اعمال شود. در اینجا چند سناریو ارائه شده است و بسته به حوزه مورد علاقه‌تان، می‌توانید هر یک یا همه آنها را امتحان کنید.

در هر یک از این موارد، اعلانی ارائه می‌شود. شما می‌توانید این را در حالت تعاملی Gemini CLI یا حالت غیر تعاملی از طریق پارامتر -p در زمان اجرای Gemini CLI امتحان کنید.

کدنویسی Vibe با Gemini CLI

بیایید از Gemini CLI برای کدنویسی vibe یک برنامه استفاده کنیم. در این کار، از Gemini CLI می‌خواهید که یک برنامه تولید کند و سپس نسخه اولیه را به یک مخزن GitHub ارسال کند.

پیش‌نیاز

برای انجام وظایف این بخش، چند پیش‌نیاز وجود دارد:

فرض می‌کنیم که شما Gemini CLI را در یک پوشه خاص به دلخواه خود اجرا کرده‌اید. در مورد ما، ما Gemini CLI را از پوشه اصلی home یعنی 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.

این نمونه صفحه‌ای است که ایجاد کرده است:

۱۲۶۶۴۹۳۳۳۰۲b۳۸۶۷.png

شما می‌توانید با کمک Gemini CLI تغییرات بیشتری ایجاد کنید. هنگامی که از تغییرات راضی بودید، می‌توانید آنها را به مخزن GitHub ارسال کنید.

اول از همه، بیایید یک فایل .gitignore ایجاد کنیم و می‌توانید از Gemini CLI کمک بگیرید.

Create a .gitignore file for this project.

مرحله بعدی برای شما این است که به Gemini CLI دستور دهید تا این مخزن را تحت حساب GitHub ما قرار دهد و این باید ابزارهای GitHub MCP Server را در پس‌زمینه اجرا کند.

یک درخواست مشابه درخواست زیر بدهید:

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. این برنامه از چندین دستور گیت شامل init، add و commit برای مدیریت مخزن محلی گیت استفاده خواهد کرد.
  3. سپس ریموت گیت را تنظیم کرده و یک push انجام می‌دهد.

توجه: مواردی وجود دارد که ممکن است رابط خط فرمان Gemini دچار وقفه زمانی شود یا از نام کاربری نادرست استفاده کند و غیره. با آن تعامل داشته باشید و اصلاحات را پیشنهاد دهید.

اگر همه چیز خوب پیش برود، باید یک مخزن GitHub داشته باشید. یک نمونه تصویر در زیر نشان داده شده است:

b393c67b13ddf19a.png

توجه داشته باشید که شما برای این پروژه README.md ایجاد نکرده‌اید و این تمرین خوبی برای بخش بعدی است، جایی که اکنون با این مخزنی که شما ایجاد کرده‌اید کار خواهیم کرد.

استفاده از رابط خط فرمان Gemini برای کار روی مخزن GitHub

در این مورد استفاده، شما باید از رابط خط فرمان Gemini برای کار با مخزن GitHub استفاده کنید. شما چندین کار انجام خواهید داد که شامل موارد زیر است:

  • درک پایه کد
  • تولید مستندات
  • پیاده‌سازی یک ویژگی جدید
  • تغییرات را کامیت کرده و به مخزن برگردانید (push)
  • روی یک مشکل گیت‌هاب کار کنید و تغییرات پیشنهادی را پیاده‌سازی کنید

این باید پایه خوبی برای کار با مخازن شما و استفاده از Gemini CLI به عنوان دستیار در مقابل این وظایف خاص توسعه‌دهنده باشد.

پیش‌نیاز

برای انجام وظایف این بخش، به موارد زیر نیاز دارید:

  • گیت
  • رابط خط فرمان Gemini و ابزار خط فرمان gh ( ابزار GitHub CLI )
  • آشنایی با اصول اولیه گیت و کمی دانش برنامه‌نویسی (ما در این مثال از Node.js استفاده خواهیم کرد زیرا ممکن است به دلیل نصب Gemini CLI، این محیط را از قبل روی دستگاه خود داشته باشید). اما بعداً می‌توانید مخزن مورد نظر خود را با زبان و چارچوب برنامه‌نویسی دیگری انتخاب کنید.
  • شما باید بخش قبلی را تکمیل کرده باشید و مخزن را که در آن یک وب‌سایت گفتگوهای رویداد ایجاد کردیم، در دسترس داشته باشید.

بیایید به استفاده از Gemini CLI از پوشه/دایرکتوری که برای تولید برنامه Event Talks استفاده کرده‌اید ادامه دهیم یا در صورت نیاز، می‌توانید مخزن را به دستگاه محلی خود کپی کنید و سپس Gemini CLI را از آن دایرکتوری اجرا کنید. سناریوهای زیر را مطابق لیست زیر امتحان کنید:

درک پایه کد

  • من می‌خواهم این پروژه را با جزئیات درک کنم. به من کمک کنید تا ویژگی‌های اصلی را درک کنم و سپس آن را به سمت سرور و کلاینت تقسیم کنم. یک نمونه از جریان کاری آن را در نظر بگیرید و نحوه عملکرد درخواست و پاسخ را به من نشان دهید.
  • Explain @server.js

تولید فایل README

  • برای این پروژه یک فایل README ایجاد کنید.

پیاده‌سازی یک ویژگی جدید

  • من می‌خواهم یک ویژگی جدید پیاده‌سازی کنم که در آن کاربر بتواند بر اساس یک گوینده خاص نیز جستجو کند. ابتدا طرحی از نحوه پیاده‌سازی این تغییر را به من نشان دهید و سپس می‌توانیم کد را تولید کنیم.

این باید طرحی را در اختیار شما قرار دهد که بتوانید آن را تأیید کنید. پس از تأیید، Gemini CLI آن تغییرات را اعمال خواهد کرد. تغییرات خود را آزمایش کنید و اگر اشکالاتی (احتمالاً) وجود دارد، از Gemini CLI بخواهید که آن را برطرف کند.

وقتی تغییرات خوب به نظر رسیدند، می‌توانید همین مراحل را برای ثبت و ارسال آنها به مخزن راه دور دنبال کنید. حتی ممکن است این کار را به صورت خودکار برای شما انجام دهد. همیشه می‌توانید به Gemini CLI بگویید که چه کاری می‌تواند یا نمی‌تواند انجام دهد.

تولید مسائل بر اساس ویژگی‌های پیشنهادی

بیایید اینجا یک چیز جالب را امتحان کنیم. شما قرار است از Gemini CLI بپرسید که چگونه می‌تواند تجربه کاربری این برنامه را بهبود بخشد و بر اساس ارزیابی‌اش، می‌تواند آن پیشنهادات را به عنوان مسائل در همان مخزن GitHub ایجاد کند. این ابزار از ابزار " create_issue " از سرور GitHub MCP استفاده خواهد کرد.

دستور زیر را امتحان کنید:

  • از شما می‌خواهم که برنامه را از دیدگاه تجربه کاربری ارزیابی کنید. سهولت استفاده، پاسخگویی، پیام‌های مفید و موارد دیگر. لطفاً فهرستی از بهبودها را ارائه دهید و من از شما می‌خواهم که آنها را به عنوان مشکلات در مخزن گیت‌هاب ایجاد کنید.

در حالت ایده‌آل، ابتدا بهبودها را با شما به اشتراک می‌گذارد و سپس با اجازه شما، مشکلات را در مخزن گیت‌هاب ایجاد می‌کند. در اینجا نمونه‌ای از تصویر اجرای ما آمده است:

10a31e665be46f9d.png

روی یک مشکل گیت‌هاب کار کنید و تغییرات پیشنهادی را پیاده‌سازی کنید

اکنون می‌توانید یکی از مسائلی که قبلاً ایجاد شده است را بردارید و از Gemini CLI بخواهید که آن را اجرا کند.

یک نمونه از مشکلاتی که ایجاد کرده است در زیر نشان داده شده است:

۲۷۷۸bde35f41efe9.png

کل URL مشکل را بگیرید و یک اعلان مانند این ارائه دهید:

  • لطفاً به بخش <YOUR_ISSUE_URL> مراجعه کنید و متوجه شوید چه تغییراتی باید اعمال شود. ابتدا طرح را مورد بحث قرار دهید و سپس تغییرات پیشنهادی را در کد نشان دهید.

می‌توانید تغییرات را تأیید کرده و آنها را به مخزن ارسال کنید. حتی می‌توانید از آن بخواهید که مشکل را ببندد.

(اختیاری) کارهای روزمره

موارد استفاده‌ای که در زیر آورده شده است، کارهایی هستند که ممکن است مرتباً انجام دهید. این موارد شامل مرتب کردن فایل‌ها در پوشه‌ها، دریافت و خلاصه‌سازی محتوا از وب، پردازش فایل‌های تصویری و استخراج محتوا از آنها، کار با پایگاه‌های داده و موارد دیگر می‌شود.

در صورت تمایل می‌توانید هر یک از موارد استفاده‌ای را که دوست دارید، بررسی کنید.

سازماندهی فایل‌ها/پوشه‌ها

شما می‌توانید از رابط خط فرمان Gemini برای سازماندهی فایل‌ها بسته به نوع آنها در پوشه‌های مختلف در صورت نیاز استفاده کنید. به پوشه‌ای در دستگاه خود بروید که چندین فایل با پسوندهای .txt، .png، .jpg، .pdf، .mp4 و موارد دیگر دارد. این احتمالاً پوشه دسکتاپ یا دانلودهای شما خواهد بود.

در اینجا یک پوشه نمونه وجود دارد و محتویات پوشه در زیر نشان داده شده است (ممکن است فایل‌های دیگری نیز داشته باشید):

7011e3dfaf628e9b.png

به آن پوشه بروید و Gemini CLI را اجرا کنید. ابتدا از Gemini CLI می‌خواهید که چند پوشه ایجاد کند: تصاویر، اسناد، ویدیوها و سپس از Gemini CLI می‌خواهید که فایل‌های موجود در پوشه‌ها را سازماندهی کند.

رابط خط فرمان Gemini اغلب قبل از اجرای دستورات، به خصوص آنهایی که سیستم فایل شما را تغییر می‌دهند (مانند نوشتن، انتقال یا حذف فایل‌ها)، از شما اجازه می‌خواهد. همیشه قبل از اعطای مجوز، این درخواست‌ها را با دقت بررسی کنید. این شبکه امنیتی شماست.

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» ایجاد کنید که شامل خلاصه‌ای ۳ جمله‌ای از نکات اصلی سند باشد.
  2. دسته‌بندی بر اساس نوع: تمام فایل‌های PDF و DOCX موجود در این پوشه را اسکن کنید. تمام فایل‌هایی که نام یا محتوای آنها «فاکتور» است را به پوشه «مالی/فاکتورها» منتقل کنید. فایل‌هایی که «رسید» دارند را به «مالی/رسیدها» منتقل کنید. سایر فایل‌های .docx به «گزارش‌ها» می‌روند.
  3. استخراج اطلاعات کلیدی (و "برچسب‌گذاری"): برای هر فایل PDF در پوشه 'Financial/Invoices'، محتوای آن را بخوانید. اگر تاریخی پیدا کردید، نام فایل را تغییر دهید تا آن تاریخ را با فرمت YYYY-MM-DD شامل شود، مثلاً 'invoice_2025-07-26_original_name.pdf'.

سازماندهی تصاویر

بیایید ببینیم چگونه می‌توانید محتوای تصویر را در دستگاه خود سازماندهی کنید.

برای امتحان کردن این:

  • شما به یک پوشه/دایرکتوری با فایل‌های تصویری مختلف (.jpg، .png و غیره) نیاز خواهید داشت. برخی از آنها را با داده‌های EXIF ​​​​اضافه کنید (بیشتر عکس‌های دوربین‌ها/تلفن‌ها این را دارند).
  • به این دایرکتوری بروید.
  • رابط خط فرمان Gemini را اجرا کنید.

هر یک از سناریوهای زیر را امتحان کنید (دستورالعمل‌ها در کنار هر سناریو داده شده‌اند):

  • تغییر نام بر اساس تاریخ (داده‌های 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 CLI" را پیدا کنید. برای 5 مقاله برتر مرتبط، هر کدام را در 2-3 جمله خلاصه کنید و URL های آنها را فهرست کنید.
  • خلاصه کردن یک فایل متنی محلی: نکات اصلی مقاله را در فایل 'my_research_paper.txt' خلاصه کنید. روی روش‌شناسی و نتیجه‌گیری تمرکز کنید.
  • خلاصه‌ای از یک فایل PDF محلی: فایل «financial_report_Q2_2025.pdf» را مطالعه کنید. خلاصه‌ای از عملکرد مالی و چالش‌های کلیدی ذکر شده را ارائه دهید.

استخراج اطلاعات خاص (فایل‌های محلی یا وب)

برای هر یک از سناریوهای زیر، می‌توانید آدرس اینترنتی (url)، موضوع مورد علاقه و نام فایل‌های محلی را در صورت لزوم تغییر دهید. نام فایل‌های ارائه شده، نام فایل‌های نمونه هستند، می‌توانید آنها را با نام فایل‌هایی که در سیستم خود دارید جایگزین کنید.

هر یک از سناریوهای زیر را امتحان کنید (دستورالعمل‌ها در کنار هر سناریو داده شده‌اند):

  • استخراج موجودیت‌ها از یک مقاله محلی: از 'biography.txt'، تمام افراد نامبرده و تاریخ‌های مهم مرتبط با آنها را فهرست کنید.
  • استخراج داده‌ها از جدول در فایل PDF: در فایل 'quarterly_sales.pdf'، داده‌ها را از جدول صفحه ۳ که «فروش محصول بر اساس منطقه» را نشان می‌دهد، استخراج کرده و آن را در قالب جدول 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)، موضوع مورد علاقه و نام فایل‌های محلی را تغییر دهید.

هر یک از سناریوهای زیر را امتحان کنید (دستورالعمل‌ها در کنار هر سناریو داده شده‌اند):

  • از یک مقاله، خلاصه خبری تهیه کنید: @tech_innovation_article.txt را بخوانید. یک خلاصه خبری کوتاه و جذاب (حدود ۱۵۰ کلمه) مناسب برای خبرنامه شرکت بنویسید و فناوری جدید و پتانسیل آن را برجسته کنید.
  • پیش‌نویس ایمیلی حاوی خلاصه متن جلسه: فایل متن جلسه به آدرس @meeting_transcript.txt است. پیش‌نویس ایمیلی را برای تیم تهیه کنید که در آن خلاصه‌ای از تصمیمات کلیدی گرفته شده و موارد اجرایی تعیین شده، از جمله اینکه چه کسی مسئول هر یک از آنهاست، ارائه شود.

پشتیبانی چندوجهی Gemini CLI

Gemini CLI has multi-model support via Gemini and you can ask it to process files of different content formats as per your requirements.

You are going to process a bunch of invoice images with Gemini CLI and extract key information from them. Follow the steps given below:

  • Create a folder on your machine and download some invoices from the following GitHub repository .
  • Launch Gemini CLI from that folder

Give the following prompt to extract out information from the invoices in the form of a table.

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.

You should ideally get an output that looks like this:

7203d699d875a91f.png

Here is another scenario, where you can ask for additional derived columns. Let's say that you want to show a red cross emoji for all the invoice due dates that are in the past. You can give a prompt as follows:

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.

This produces the following output:

e11fcde0400f5a0b.png

Apply this to any of your own files that are in formats other than text.

Using Gemini CLI to work with databases

You can use Gemini CLI to more efficiently work with various databases. You can use it for multiple scenarios: querying with natural language, exporting data, designing database schemas, generating realistic test data and more.

You shall be using SQLite3 to do this task. You will need to install SQLite3 and have the sample Chinook database .

Here are brief instructions for setting up SQLite3:

  1. macOS: SQLite3 comes pre-installed. Verify with sqlite3 --version . If needed, install with Homebrew: brew install sqlite3 .
  2. Windows: Download the precompiled binaries from the SQLite website . Extract the files to a directory (eg, C:\sqlite ). Add that directory to your system's PATH environment variable.
  3. Linux: Debian/Ubuntu: sudo apt update && sudo apt install sqlite3

Download the sample Chinook database (here is a direct link to download it).

To run these prompts, it is suggested that you create a folder ( database-tasks ) in the gemini-cli-projects directory. Copy the Chinook database file to that folder. Ensure that the sqlite3 tool is set up on your system and available in the path, so that Gemini CLI can use that. Launch Gemini CLI.

The database schema diagram is shown below:

4178b54e03a07d60.png

Let's assume that you are in a folder named database-tasks and the Chinook database file is named chinook.db .

Several prompts are given below that can help you work with databases. Let's cover the first one in brief to demonstrate the permission that will be requested.

Start off with the prompt to list down the tables that are present in the database, give the following prompt:

What tables are present in the file: chinook.db 

This uses the tool to read the file and then wants to use sqlite3 utility present on your system to do the needful:

a8d782201eba1eb8.png

Provide the permission to run it once to get the expected output:

69e96f22610e7892.png

Try out the following prompts or any other prompt of your choice:

  • چند کارمند وجود دارد؟
  • What is the schema of the invoices table?
  • Which are the top 3 invoices by total and which customers have placed those invoices?

You will notice that Gemini CLI takes care of two things: Generating the correct SQL statement to meet your requirement and giving the correct sqlite3 command.

Using Gemini CLI to generate data

You can prompt Gemini CLI to produce data in various data formats. This could range from content pieces to JSON data, that you might need to mock. Let's focus here on scenarios applicable to developers/testers.

Here are some prompts to try out:

Generate JSON data of sample customer reviews

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).

Generating Mock API Responses (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').

Generating Sample Database Insert Statements (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'.

Generating CSV Data for Data Loading/Analysis

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).

Generate a Configuration file (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.

Generating Test Data for Edge Cases/Validation

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. Congratulations

Congratulations, you've successfully explored Gemini CLI, its capabilities and applied it to a few use cases.

Reference docs