בניסוי זה, אני משתמש ב-Gemini-CLI כמודל חיפוש.
מהו Gemini CLI?
כבר דיברתי בפירוט על **Gemini CLI** ב-Gemini CLI: היכרות וצעדים ראשונים. אבל אם פספסתם, הנה הקדמה קצרה.
בקיצור, **Gemini CLI** – זהו ממשק שורת פקודה לתקשורת עם מודלי AI של גוגל. אתם מפעילים אותו בטרמינל שלכם, והוא הופך לצ'אט, שבניגוד לגרסאות ווב, יש לו גישה למערכת הקבצים שלכם.
תכונות עיקריות:
- מבין קוד: הוא יכול לנתח את הסקריפטים שלכם, למצוא בהם שגיאות ולהציע תיקונים.
- מייצר קוד: אתם יכולים לבקש ממנו לכתוב סקריפט PowerShell לפתרון המשימה שלכם, והוא יעשה זאת.
- עובד עם קבצים: יכול לקרוא קבצים, ליצור חדשים, לבצע שינויים בקיימים.
- מפעיל פקודות: יכול לבצע פקודות מעטפת, כגון
git
אוnpm
.
למטרותינו, הדבר החשוב ביותר הוא ש-Gemini CLI יודע לעבוד ב**מצב לא אינטראקטיבי**. כלומר, אנחנו יכולים להעביר לו פרומפט כארגומנט של שורת הפקודה, והוא פשוט יחזיר לנו תשובה, מבלי להפעיל את הצ'אט האינטראקטיבי שלו. זו בדיוק היכולת שנשתמש בה.
התקנה והגדרה
כדי להתחיל, עלינו להכין את הסביבה שלנו. זה נעשה פעם אחת.
שלב 1: התקנת Node.js
Gemini CLI – זוהי אפליקציה שנכתבה ב-Node.js (סביבת ריצה פופולרית ל-JavaScript). לכן, תחילה עלינו להתקין את Node.js עצמה.
- עברו לאתר הרשמי: https://nodejs.org/
- הורידו והתקינו את גרסת **LTS**. זוהי האפשרות היציבה והמומלצת ביותר. פשוט עקבו אחר הוראות ההתקנה.
- לאחר ההתקנה, פתחו חלון PowerShell חדש ובדקו שהכל עובד:
node -v npm -v
אתם אמורים לראות גרסאות, לדוגמה,v20.12.2
ו-10.5.0
.
שלב 2: התקנת Gemini CLI עצמו
כעת, כשיש לנו npm
(מנהל חבילות עבור Node.js), התקנת Gemini CLI מסתכמת בפקודה אחת. בצעו אותה ב-PowerShell:
npm install -g @google/gemini-cli
הדגל -g
פירושו "התקנה גלובלית", מה שיהפוך את הפקודה gemini
לזמינה מכל מקום במערכת שלכם.
שלב 3: אימות
בפעם הראשונה שתפעילו את Gemini CLI, הוא יבקש מכם להיכנס לחשבון הגוגל שלכם. זה נחוץ כדי שיוכל להשתמש במכסה החינמית שלכם.
- פשוט הזינו את הפקודה ב-PowerShell:
gemini
- הוא ישאל אתכם שאלה לגבי כניסה. בחרו "Sign in with Google".
- בדפדפן שלכם ייפתח חלון כניסה סטנדרטי של גוגל. היכנסו לחשבונכם ותנו את ההרשאות הנדרשות.
- לאחר מכן, בקונסולה תראו הודעת קבלת פנים מ-Gemini. מזל טוב, אתם מוכנים לעבודה! אתם יכולים להזין
/quit
כדי לצאת מהצ'אט שלו.
ה-Invoke-Expression
הנורא
לפני שנחבר הכל יחד, נכיר את אחת הפקודות המסוכנות ביותר ב-PowerShell – Invoke-Expression
, או הכינוי הקצר שלה iex
.
Invoke-Expression
לוקחת מחרוזת טקסט ומבצעת אותה כאילו הייתה פקודה שהוקלדה בקונסולה.
דוגמה:
$commandString = "Get-Process -Name 'chrome'"
Invoke-Expression -InputObject $commandString
פקודה זו תעשה את אותו הדבר כמו קריאה פשוטה ל-Get-Process -Name 'chrome'
.
מדוע היא מסוכנת? מכיוון שביצוע מחרוזת שאינכם שולטים בה (לדוגמה, שהתקבלה מהאינטרנט או מ-AI), – זהו חור אבטחה עצום. אם ה-AI בטעות או בזדון יחזיר את הפקודה Remove-Item -Path C:\ -Recurse -Force
, iex
יבצע אותה ללא היסוס.
למשימה שלנו – יצירת גשר מנוהל ומבוקר בין בקשה בשפה טבעית לבין ביצועה – היא מתאימה באופן מושלם. נשתמש בה בזהירות, תוך מודעות מלאה לסיכונים.
מחברים הכל יחד: הפקודה Invoke-Gemini
נכתוב פונקציית PowerShell פשוטה שתאפשר לנו לשלוח פרומפטים בפקודה אחת.
העתיקו את הקוד הזה והדביקו אותו לחלון PowerShell שלכם, כדי שיהיה זמין בסשן הנוכחי.
function Invoke-Gemini {
<#
.SYNOPSIS
שולח פרומפט טקסט ל-Gemini CLI ומחזיר את תגובתו.
#>
[CmdletBinding()]
param(
[Parameter(Mandatory = $true, Position = 0, ValueFromPipeline = $true)]
[string]$Prompt
)
process {
try {
# בודקים אם הפקודה gemini זמינה
$geminiCommand = Get-Command gemini -ErrorAction Stop
}
catch {
Write-Error "הפקודה 'gemini' לא נמצאה. ודאו ש-Gemini CLI מותקן."
return
}
Write-Verbose "שולח פרומפט ל-Gemini CLI..."
# מפעילים את gemini במצב לא אינטראקטיבי עם הפרומפט שלנו
$output = & $geminiCommand.Source -p $Prompt 2>&1
if (-not $?) {
Write-Warning "הפקודה gemini הסתיימה בשגיאה."
$output | ForEach-Object { Write-Warning $_.ToString() }
return
}
# מחזירים פלט נקי
return $output
}
}
מנסים את הקסם!
בואו נשאל אותו שאלה כללית ישירות מקונסולת ה-PowerShell שלנו.
Invoke-Gemini -Prompt "ספר לי על חמשת הטרנדים האחרונים בתחום למידת מכונה"
מזל טוב! הרגע הטמעתם בהצלחה AI ב-PowerShell.
במאמר הבא אספר לכם כיצד להשתמש ב-Gemini CLI להפעלת סקריפטים ואוטומציה של משימות.