عملی با 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 را به صورت محلی نصب کنید، دستورالعمل‌های زیر را دنبال کنید.

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

35a98edaf7f22e8e.png

پس از انتخاب آن، از شما روش احراز هویت پرسیده می‌شود. توصیه می‌شود در این آزمایشگاه از حساب گوگل شخصی خود استفاده کنید و از حساب‌های غیر گوگل یا مرتبط با Google Workspace استفاده نکنید. این مجوز رایگان به شما امکان دسترسی به Gemini 2.5 Pro و پنجره زمینه ۱ میلیون توکنی آن را می‌دهد. نسخه رایگان امکان ۶۰ درخواست مدل در دقیقه و ۱۰۰۰ درخواست در روز را بدون هزینه فراهم می‌کند.

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

57bad75cedaaaa38.png

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

4dbc0138b78dc354.png

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

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

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

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

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

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

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

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

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

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

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

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

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

a87f54bb3066b82d.png

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

33a18abe5581ff74.png

شما می‌توانید امروز محتویات فایل را از طریق دستور cat چاپ کنید.

6dbe0049ed002553.png

تمرین : در اینجا یک تمرین کوتاه برای امتحان کردن ارائه شده است. یک فید 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/browse/ .
  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.

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

لیست افزونه‌های فعلی خود را بررسی کنید

قبل از نصب هر چیزی، بیایید «صفحه سفید» خود را بررسی کنیم.

  1. دستور gemini extensions list را اجرا کنید:
  2. شما باید خروجی زیر را ببینید که تأیید می‌کند هنوز هیچ افزونه‌ای نصب نشده است.
No extensions installed.

پیکربندی سرور Github MCP

یکی از انواع افزونه‌های Gemini CLI، سرور MCP است. سرور MCP برنامه‌ای است که ابزارها و منابع را از طریق پروتکل Model Context در اختیار Gemini CLI قرار می‌دهد و به آن اجازه می‌دهد تا با سیستم‌های خارجی و منابع داده تعامل داشته باشد. سرورهای MCP به عنوان پلی بین مدل Gemini و محیط محلی شما یا سایر سرویس‌ها مانند APIها عمل می‌کنند.

ما سرور 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) از گیت‌هاب داشته باشید. پس از دریافت آن، مطمئن شوید که یک فایل .env ایجاد کرده‌اید و این مقدار را در آنجا قرار داده‌اید یا یک متغیر محیطی به شرح زیر ایجاد کرده‌اید ( PAT_VALUE با مقدار واقعی جایگزین کنید):

export GITHUB_MCP_PAT=PAT_VALUE

شما باید رابط خط فرمان Gemini را مجدداً راه‌اندازی کنید. پس از راه‌اندازی، می‌توانید از دستور /mcp list برای مشاهده لیست سرورهای MCP و ابزارهای مربوطه موجود در آنها استفاده کنید. باید بتوانید سرور GitHub MCP را که با رنگ سبز نشان داده شده است، به همراه ابزارهای آن (بیش از 30 مورد) مشاهده کنید. فهرستی جزئی در زیر نشان داده شده است:

🟢 گیت‌هاب (از گیت‌هاب) - آماده (۴۰ ابزار)

ابزارها:

  • add_comment_to_pending_review
  • add_issue_comment
  • assign_copilot_to_issue
  • ایجاد_شاخه
  • ایجاد_یا_به_روزرسانی_فایل
  • درخواست_کششی_ایجاد
  • مخزن را ایجاد کنید
  • حذف_فایل
  • مخزن چنگال
  • دریافت_کامیت
  • دریافت_محتویات_فایل
  • دریافت_برچسب
  • دریافت_آخرین_نسخه
  • دریافت_من
  • دریافت_رهاسازی_توسط_برچسب
  • دریافت_تگ
  • دریافت_اعضای_تیم
  • تیم‌های_دریافتی
  • موضوع_خوانده شده

بیایید با یک اعلان شروع کنیم که یکی از ابزارهای سرور 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.

حالا باید روی یکی از پروژه‌های گیت‌هاب خود کار کنید. کوئری‌های خود را به زبان طبیعی مانند زیر بنویسید:

  • <نام مخزن> را برای من توصیف کنید؟
  • <repo-name> را روی دستگاه محلی خود کپی کنید.
  • @<file-name> یا @<directory-name>/ را شرح دهید.
  • اجزای مختلف این مخزن چیست؟
  • من تغییرات لازم را انجام داده‌ام. آیا می‌توانید تغییرات را به گیت‌هاب ارسال کنید و از ابزارهای Github MCP Server برای انجام این کار استفاده کنید؟

بعداً در این تمرین، تمرینی برای کار با Github MCP Server به تفصیل خواهید یافت.

پیکربندی سرور 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 باید با موفقیت نصب شود.

اگر اکنون دستور 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 » انجام دهید.

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

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

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

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

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

پیش‌نیاز

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

  • گیت
  • رابط خط فرمان Gemini با Github، افزونه‌ی Gemini CLI (که قبلاً این کار را انجام دادیم) یا اگر gh ( ابزار Github CLI ) را راه‌اندازی کرده باشید، این هم کار خواهد کرد.
  • آشنایی با اصول اولیه گیت و کمی دانش برنامه‌نویسی

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

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

d046ee11d28e4d33.png

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

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

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

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

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

پیش‌نیاز

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

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

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

درک پایه کد

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

تولید فایل README

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

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

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

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

وقتی تغییرات خوب به نظر رسیدند، می‌توانید همین مراحل را برای اعمال و ارسال آنها به مخزن راه دور دنبال کنید.

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

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

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

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

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

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

For each of the scenarios below, feel free to change the url, topic of interest and the local file names as applicable. The filenames provided are sample file names, you can replace them with filenames of files that you have on your system.

Try out any of the following scenarios (the prompts are given next to each scenario):

  • Q&A on a local document: I'm attaching 'user_manual.pdf'. What are the steps to troubleshoot network connectivity issues?
  • Q&A on a web page: Using the content from 'https://www.who.int/news-room/fact-sheets/detail/climate-change-and-health', what are the primary health risks associated with climate change according to WHO?
  • Compare information across multiple sources: I have two news articles: 'article1.txt' and 'article2.txt', both discussing the recent economic policy changes. Compare and contrast their views on the potential impact on small businesses.

Content Generation based on Extracted Information

For each of the scenarios below, feel free to change the url, topic of interest and the local file names as applicable.

Try out any of the following scenarios (the prompts are given next to each scenario):

  • Generate a news brief from an article: Read @tech_innovation_article.txt. Write a short, engaging news brief (around 150 words) suitable for a company newsletter, highlighting the new technology and its potential.
  • Draft an email summarizing a meeting transcript: Here is a meeting transcript file: @meeting_transcript.txt. Draft an email to the team summarizing the key decisions made and action items assigned, including who is responsible for each.

Gemini CLI multi-modal support

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:

  • How many employees are there?
  • 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).

۱۱. تبریک

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

اسناد مرجع