1. บทนำ
ใน Codelab นี้ คุณจะได้เรียนรู้เกี่ยวกับ Gemini CLI ซึ่งเป็นเอเจนต์ AI แบบโอเพนซอร์สที่นำพลังของ Gemini มาสู่เทอร์มินัลของคุณโดยตรง
โปรเจ็กต์ Gemini CLI เป็นโอเพนซอร์สและคุณดูแผนงานสาธารณะได้ที่นี่
สิ่งที่คุณจะได้เรียนรู้
- การติดตั้งและกำหนดค่า Gemini CLI
- การสำรวจเครื่องมือ คำสั่งในตัว และการกำหนดค่าเซิร์ฟเวอร์ MCP ใน Gemini CLI
- การปรับแต่ง Gemini CLI ผ่านไฟล์
GEMINI.md
- สำรวจกรณีการใช้งานบางอย่างด้วย Gemini CLI
สิ่งที่คุณต้องมี
คุณสามารถเรียกใช้ Codelab นี้ได้ทั้งหมดภายใน Google Cloud Shell ซึ่งติดตั้ง Gemini CLI ไว้ล่วงหน้า
หรือหากต้องการทำงานบนเครื่องของคุณเอง ก็มีส่วนสำหรับติดตั้ง Gemini CLI ในเครื่อง
คุณจะต้องมีสิ่งต่อไปนี้
- เว็บเบราว์เซอร์ Chrome
- บัญชี Gmail
Codelab นี้ออกแบบมาสำหรับผู้ใช้และนักพัฒนาซอฟต์แวร์ทุกระดับ (รวมถึงผู้เริ่มต้น) กรณีการใช้งานใน Codelab ได้รับการจัดหมวดหมู่เป็นงานของนักพัฒนาแอปและงานที่ไม่ใช่นักพัฒนาแอป กรณีการใช้งานของนักพัฒนาซอฟต์แวร์แสดงให้เห็นวิธีเขียนโค้ดด้วย Gemini CLI และการทำงานกับที่เก็บ GitHub เพื่อทำงานด้านการพัฒนาทั่วไป เช่น การอธิบาย/ทำความเข้าใจโค้ด การสร้างเอกสาร การแก้ไขปัญหา และอื่นๆ เราขอแนะนำให้คุณทำตามกรณีการใช้งานเหล่านี้ใน Codelab ส่วนท้ายจะมีส่วนที่ไม่บังคับซึ่งครอบคลุมงานประจำวันหลายอย่างที่ไม่ได้มุ่งเน้นไปที่นักพัฒนาซอฟต์แวร์
2. ก่อนเริ่มต้น
สร้างโปรเจ็กต์
- ใน Google Cloud Console ให้เลือกหรือสร้างโปรเจ็กต์ Google Cloud ในหน้าตัวเลือกโปรเจ็กต์
- ตรวจสอบว่าได้เปิดใช้การเรียกเก็บเงินสำหรับโปรเจ็กต์ Cloud แล้ว ดูวิธีตรวจสอบว่าได้เปิดใช้การเรียกเก็บเงินในโปรเจ็กต์แล้วหรือไม่
- คุณจะใช้ Cloud Shell ซึ่งเป็นสภาพแวดล้อมบรรทัดคำสั่งที่ทำงานใน Google Cloud และโหลด bq ไว้ล่วงหน้า คลิกเปิดใช้งาน Cloud Shell ที่ด้านบนของคอนโซล Google Cloud
- เมื่อเชื่อมต่อกับ Cloud Shell แล้ว ให้ตรวจสอบว่าคุณได้รับการตรวจสอบสิทธิ์แล้วและตั้งค่าโปรเจ็กต์เป็นรหัสโปรเจ็กต์โดยใช้คำสั่งต่อไปนี้
gcloud auth list
- เรียกใช้คำสั่งต่อไปนี้ใน Cloud Shell เพื่อยืนยันว่าคำสั่ง gcloud รู้จักโปรเจ็กต์ของคุณ
gcloud config list project
- หากไม่ได้ตั้งค่าโปรเจ็กต์ ให้ใช้คำสั่งต่อไปนี้เพื่อตั้งค่า
gcloud config set project <YOUR_PROJECT_ID>
3. การติดตั้ง
ก่อนที่จะตั้งค่าและเรียกใช้ Gemini CLI ให้เราสร้างโฟลเดอร์ที่คุณจะใช้เป็นโฟลเดอร์หลักสำหรับโปรเจ็กต์ทั้งหมดที่คุณอาจสร้างไว้ภายใน นี่คือจุดเริ่มต้นที่ Gemini CLI จะใช้ทำงาน แม้ว่า Gemini CLI จะอ้างอิงโฟลเดอร์อื่นๆ ในระบบด้วย ซึ่งคุณจะได้เห็นในภายหลังตามความจำเป็น
สร้างโฟลเดอร์ตัวอย่าง (gemini-cli-projects
) แล้วไปที่โฟลเดอร์ดังกล่าวผ่านคำสั่งที่แสดงด้านล่าง หากต้องการใช้ชื่อโฟลเดอร์อื่น โปรดดำเนินการ
mkdir gemini-cli-projects
มาไปยังโฟลเดอร์นั้นกัน
cd gemini-cli-projects
คุณเปิดใช้ Gemini CLI ได้โดยตรงผ่านคำสั่ง gemini
โปรดไปที่ส่วนถัดไปโดยตรง (การกำหนดค่า Gemini CLI ผ่าน settings.json)
หากต้องการติดตั้ง Gemini CLI ในเครื่อง ให้ทำตามวิธีการด้านล่าง
ขั้นตอนแรกคือติดตั้ง Node 20 ขึ้นไปในเครื่อง เมื่อดำเนินการเสร็จแล้ว คุณจะติดตั้งและเรียกใช้ Gemini CLI ได้โดยใช้วิธีใดวิธีหนึ่งต่อไปนี้
- คุณสามารถติดตั้ง Gemini CLI ทั่วโลกในระบบก่อนได้ คุณอาจต้องมีสิทธิ์เข้าถึงระดับผู้ดูแลระบบจึงจะดำเนินการในขั้นตอนนี้ได้
# option 1: install Gemini CLI
npm install -g @google/gemini-cli
# .. and then run
gemini
- เรียกใช้ด้วยคำสั่งต่อไปนี้
# option 2: run without installing Gemini CLI
npx https://github.com/google-gemini/gemini-cli
คุณยืนยันได้ว่าติดตั้ง CLI แล้วโดยเรียกใช้คำสั่งต่อไปนี้
gemini --version
หากคุณเปิดใช้ Gemini CLI ผ่านวิธีใดวิธีหนึ่งข้างต้น คุณควรเห็นหน้าจอต่อไปนี้ที่ถามเกี่ยวกับการเลือกธีม เลือกรายการที่คุณต้องการได้เลย
เมื่อเลือกแล้ว ระบบจะขอให้ระบุวิธีการตรวจสอบสิทธิ์ เราขอแนะนำให้คุณใช้บัญชี Google ส่วนตัวและไม่ใช้บัญชีที่ไม่ใช่ของ Google หรือบัญชีที่เกี่ยวข้องกับ Google Workspace ใน Labs นี้ ใบอนุญาตฟรีดังกล่าวจะช่วยให้คุณเข้าถึง Gemini 2.5 Pro และหน้าต่างบริบทขนาด 1 ล้านโทเค็นได้ ระดับฟรีอนุญาตให้ส่งคำขอโมเดล 60 รายการต่อนาทีและ 1,000 รายการต่อวันโดยไม่มีค่าใช้จ่าย
หากโควต้าฟรีปัจจุบันที่มอบให้แก่บัญชี Google เต็มแล้ว คุณสามารถเลือกใช้คีย์ Gemini API หรือแม้แต่ Vertex AI ของ Google Cloud ซึ่งคุณจะต้องมีรหัสโปรเจ็กต์และชื่อสถานที่ตั้งของโปรเจ็กต์นั้น โปรดดูส่วนการตรวจสอบสิทธิ์ในเอกสารประกอบ หากคุณวางแผนที่จะใช้วิธีการตรวจสอบสิทธิ์อื่นๆ
คลิก Enter ได้เลย ซึ่งจะเปิดหน้าการตรวจสอบสิทธิ์ของ Google ในเบราว์เซอร์ ดำเนินการต่อด้วยการตรวจสอบสิทธิ์ด้วยบัญชี Google ยอมรับข้อกำหนด และเมื่อตรวจสอบสิทธิ์สำเร็จแล้ว คุณจะเห็นว่า Gemini CLI พร้อมและรอคำสั่งของคุณ ตัวอย่างภาพหน้าจอแสดงอยู่ด้านล่าง
4. การกำหนดค่า Gemini CLI ผ่าน settings.json
หากเลือก Cloud Shell เพื่อเรียกใช้ Gemini ระบบจะเลือกและกำหนดค่าธีมเริ่มต้นสำหรับ Gemini CLI และวิธีการตรวจสอบสิทธิ์ให้คุณแล้ว
หากคุณติดตั้ง Gemini CLI ในเครื่องและเปิดใช้เป็นครั้งแรก คุณได้เลือกธีมและวิธีการตรวจสอบสิทธิ์แล้ว
ตอนนี้เมื่อเรียกใช้ Gemini CLI ในครั้งต่อๆ ไป ระบบจะไม่ขอให้คุณเลือกธีมและวิธีการตรวจสอบสิทธิ์อีก ซึ่งหมายความว่าระบบจะจัดเก็บไว้ที่ใดที่หนึ่ง และไฟล์ที่ใช้จะเรียกว่า settings.json
ซึ่งเป็นวิธีปรับแต่ง Gemini CLI
การตั้งค่าจะมีลำดับความสำคัญดังนี้ (Cloud Shell จะแสดงเฉพาะการตั้งค่าของผู้ใช้)
- ระบบ:
/etc/gemini-cli/settings.json
(มีผลกับผู้ใช้ทุกคน ลบล้างการตั้งค่าผู้ใช้และพื้นที่ทำงาน) - Workspace:
.gemini/settings.json
(ลบล้างการตั้งค่าของผู้ใช้) - ผู้ใช้:
~/.gemini/settings.json
ผู้ใช้ Windows: %USERPROFILE%.gemini\settings.json (ซึ่งโดยปกติจะขยายเป็น C:\Users<YourUsername>.gemini\settings.json)
ระบบ: %ProgramData%\gemini-cli\settings.json (ซึ่งโดยปกติจะขยายเป็น C:\ProgramData\gemini-cli\settings.json)
ผู้ใช้ Mac: ~/.gemini/settings.json (ซึ่งขยายเป็น /Users/<YourUsername>/.gemini/settings.json)
ระบบ: /etc/gemini-cli/settings.json
หากจำได้ ตอนที่เลือกธีม คุณได้เลือกให้บันทึกการตั้งค่าไว้ในการตั้งค่าผู้ใช้ ดังนั้นไปที่ ~/.gemini folder
แล้วคุณจะเห็นไฟล์ settings.json
ไฟล์ settings.json
ของฉันแสดงอยู่ด้านล่าง หากคุณเลือกธีมอื่นไว้ คุณจะเห็นชื่อธีมนั้นที่นี่
{
"theme": "Default",
"selectedAuthType": "oauth-personal" or "cloud-shell"
}
5. การโต้ตอบครั้งแรกกับ Gemini CLI
มาเริ่มใช้ Gemini CLI และพิมพ์คำค้นหาแรกตามที่แสดงด้านล่างกัน
Give me a famous quote on Artificial Intelligence and who said that?
การตอบกลับที่คาดไว้แสดงอยู่ด้านล่าง
คุณจะเห็นว่าคำค้นหาของเราทำให้เครื่องมือ GoogleSearch
(เครื่องมือในตัวใน Gemini CLI) ทำงาน กล่าวคือ คุณได้ใช้เครื่องมือที่มีประสิทธิภาพในตัวของ Gemini CLI อย่างหนึ่งแล้ว นั่นคือ GoogleSearch
ซึ่งจะอ้างอิงคำตอบตามข้อมูลที่ได้รับจากเว็บ คุณจะได้ดูข้อมูลเพิ่มเติมเกี่ยวกับเครื่องมือในส่วนถัดไป
วิธีที่รวดเร็วในการทำความเข้าใจ Gemini CLI และคำสั่งต่างๆ ที่รองรับคือการพิมพ์ /help
(เครื่องหมายทับ) แล้วคุณจะเห็นคำสั่งและแป้นพิมพ์ลัดต่างๆ ดังที่แสดงด้านล่าง
มาออกจาก Gemini CLI กันก่อน คุณทำได้โดยใช้คำสั่ง /quit
หรือใช้คำสั่ง Ctrl-C
2 ครั้งในเซสชันเทอร์มินัล CLI ของ Gemini แบบอินเทอร์แอกทีฟ
6. Gemini CLI - พารามิเตอร์คำสั่ง
มีพารามิเตอร์บรรทัดคำสั่งบางอย่างที่คุณระบุได้เมื่อเริ่มใช้ Gemini CLI หากต้องการดูรายการตัวเลือกทั้งหมด ให้ใช้ --help
ตามที่แสดงด้านล่าง
gemini --help
ซึ่งควรแสดงตัวเลือกทั้งหมดที่ใช้ได้ เราขอแนะนำให้คุณศึกษาเอกสารประกอบที่นี่
มาดูตัวอย่างกัน วิธีแรกคือการกำหนดค่า Gemini CLI ให้ใช้โมเดล Pro หรือ Flash ปัจจุบัน ณ เวลาที่เขียนแล็บนี้ มีเพียง 2 โมเดลนี้เท่านั้นที่รองรับ โดยค่าเริ่มต้น ระบบจะใช้โมเดล Gemini 2.5 Pro แต่หากต้องการใช้โมเดล Flash คุณสามารถทำได้เมื่อเริ่มใช้ Gemini CLI ผ่านพารามิเตอร์ -m
ดังที่แสดงด้านล่าง
gemini -m "gemini-2.5-flash"
คุณจะเห็นว่าหากเริ่มต้นด้วยวิธีข้างต้น คุณจะตรวจสอบโมเดลได้ที่ด้านขวาล่างของเทอร์มินัล Gemini CLI ดังที่แสดงด้านล่าง
โหมดที่ไม่ใช่แบบอินเทอร์แอกทีฟ
ตัวเลือกที่น่าสนใจคือการเรียกใช้ Gemini CLI ในโหมดที่ไม่โต้ตอบ ซึ่งหมายความว่าคุณจะป้อนพรอมต์ให้โดยตรง แล้วโมเดลจะตอบกลับพรอมต์นั้นโดยไม่ต้องเปิดเทอร์มินัลแบบอินเทอร์แอกทีฟของ Gemini CLI ซึ่งจะมีประโยชน์อย่างมากหากคุณวางแผนที่จะใช้ Gemini CLI ในลักษณะอัตโนมัติเป็นส่วนหนึ่งของสคริปต์หรือกระบวนการอัตโนมัติอื่นๆ คุณใช้พารามิเตอร์ -p เพื่อระบุพรอมต์ไปยัง Gemini CLI ดังที่แสดงด้านล่าง
gemini -p "What is the gcloud command to deploy to Cloud Run"
โปรดทราบว่าคุณไม่สามารถสนทนาต่อด้วยคำถามติดตามผล โหมดนี้ยังไม่อนุญาตให้คุณให้สิทธิ์เครื่องมือ (รวมถึง WriteFile) หรือเรียกใช้คำสั่งเชลล์ด้วย
7. Gemini CLI - เครื่องมือในตัว
Gemini CLI มาพร้อมชุดเครื่องมือในตัว และเอกสารประกอบของเครื่องมือระบุว่า "โมเดล Gemini ใช้เครื่องมือเหล่านี้เพื่อโต้ตอบกับสภาพแวดล้อมในเครื่อง เข้าถึงข้อมูล และดำเนินการต่างๆ เครื่องมือเหล่านี้จะช่วยเพิ่มความสามารถของ CLI ทำให้ CLI ทำได้มากกว่าการสร้างข้อความและช่วยงานได้หลากหลาย"
หากต้องการดูรายการเครื่องมือในตัวปัจจุบัน ให้เรียกใช้คำสั่ง /tools
ดังที่แสดงด้านล่าง
สิ่งหนึ่งที่คุณควรทำทันทีคือถามตัวเองว่า Gemini CLI สามารถเรียกใช้เครื่องมือเหล่านี้ได้หรือไม่เมื่อต้องการ คำตอบเริ่มต้นคือไม่ เมื่อพูดถึงการดำเนินการที่ละเอียดอ่อนซึ่งอาจเกี่ยวข้องกับการเขียนไปยังระบบภายใน การอ่านจากระบบภายนอก การไปที่เครือข่ายภายนอก และอื่นๆ
แม้ว่าจะมี --yolomode
ให้ใช้งานเมื่อคุณเริ่ม CLI (โดยทั่วไปไม่แนะนำ) แต่คุณจะเห็นว่า Gemini CLI จะแจ้งให้คุณขอสิทธิ์ในการเรียกใช้เครื่องมือที่เลือก คุณปฏิเสธสิทธิ์ หรืออนุญาตให้ทำงานครั้งเดียว หรือให้สิทธิ์แบบครอบคลุมเพื่ออนุญาตให้ทำงานได้ตลอดก็ได้ คุณควรควบคุมทุกอย่างได้อย่างเต็มที่
มาใช้พรอมต์ที่จะทำให้ Gemini CLI เลือกเครื่องมือที่มีอยู่เพื่อดำเนินการและจะช่วยให้คุณเข้าใจวิธีการทำงานทั้งหมดได้ดีกัน
ลองนึกถึงสถานการณ์ที่คุณต้องการรับข้อมูลเกี่ยวกับข่าวสารทางการเงินล่าสุดทั่วโลกและบันทึกข้อมูลนั้นลงในไฟล์ในไดเรกทอรีการทำงานในเครื่องที่คุณเปิดใช้ Gemini CLI ใช้พรอมต์ต่อไปนี้
Search for the latest headlines today in the world of finance and save them in a file named finance-news-today.txt
ลองนึกดูสักครู่ว่าควรทำอย่างไร ในอุดมคติแล้ว ควรไปที่ Google Search เพื่อรับข่าวสารจากแหล่งข้อมูลที่เกี่ยวข้องซึ่งสามารถให้ข่าวสารทางการเงินได้ จากนั้นจะต้องสร้างไฟล์ชื่อ finance-news-today.txt
(การดำเนินการเขียนในระบบภายในซึ่งจะต้องได้รับสิทธิ์จากคุณ) พร้อมเนื้อหา
มาดูกันว่าจะเกิดอะไรขึ้น (คุณควรทำตามขั้นตอนเดียวกันนี้ในเครื่องของคุณ)
สิ่งแรกที่ทำคือเรียกใช้เครื่องมือ GoogleSearch
เพื่อค้นหาเว็บ
เมื่อการค้นหาเสร็จสมบูรณ์แล้ว ระบบจะดึงข้อมูลดังที่แสดงด้านล่าง
เมื่อดำเนินการเสร็จแล้ว ก็พร้อมที่จะเขียนข้อมูลนี้ลงในไฟล์และจะใช้เครื่องมือ WriteFile
แต่เนื่องจากเป็นการดำเนินการที่ละเอียดอ่อน (เขียน) จึงต้องขอสิทธิ์จากคุณ คุณสามารถกำหนดประเภทสิทธิ์ได้ เช่น อนุญาตครั้งเดียว อนุญาตเสมอ ฯลฯ เลือกอนุญาตครั้งเดียวไปก่อน
จากนั้นระบบจะเขียนข้อมูลลงในไฟล์และแสดงข้อความว่าดำเนินการสำเร็จที่ด้านล่าง
คุณจะตรวจสอบได้อย่างไรว่าไฟล์เขียนแล้วหรือไม่ คุณสามารถใช้ @file
เพื่อขอให้ระบบอ่านเนื้อหาได้ เมื่อคุณพิมพ์ @
ระบบจะแสดงรายการไฟล์ในโฟลเดอร์ปัจจุบันและแสดงไฟล์ที่เพิ่งสร้าง เลือกข้อความนั้นแล้วส่ง พรอมต์ของฉันแสดงอยู่ด้านล่าง
read the contents of @finance-news-today.txt
ซึ่งจะทำให้มีการเรียกใช้เครื่องมือที่จำเป็น (ReadManyFiles, ReadFile) และแสดงเนื้อหาตามที่แสดงด้านล่าง
8. Gemini CLI - โหมดเชลล์
ตอนนี้เป็นเวลาที่ดีที่จะเรียนรู้วิธีทำงานกับ Shell โดยตรงจากภายใน Gemini CLI คุณเข้าสู่โหมดเชลล์ได้โดยกด !
ในกล่องข้อความ ซึ่งจะสลับไปเป็นโหมด Shell คุณกลับไปได้โดยกด !
อีกครั้งหรือกดปุ่ม ESC
เมื่ออยู่ในโหมดเชลล์ คุณจะเห็น !
ที่จุดเริ่มต้นของพรอมต์ดังที่แสดงด้านล่าง
คุณตรวจสอบได้โดยตรงโดยใช้คำสั่งมาตรฐาน เช่น pwd
และ ls
ดังที่แสดงด้านล่าง โปรดทราบว่าคำสั่งต่างๆ จะถือว่าใช้ระบบปฏิบัติการประเภท Linux หากคุณใช้ระบบปฏิบัติการอื่น (Windows) โปรดใช้คำสั่งที่เทียบเท่า เช่น (cd
, dir
และ type
) โปรดทราบว่าเอาต์พุตของการเรียกเหล่านี้จะรวมอยู่ในหน้าต่างบริบทของโมเดล
คุณสามารถพิมพ์เนื้อหาของไฟล์ผ่านคำสั่ง cat
ได้แล้ววันนี้
แบบฝึกหัด: ลองทำแบบฝึกหัดสั้นๆ ต่อไปนี้ เลือกฟีด RSS ที่ต้องการ ป้อนพรอมต์ไปยัง Gemini CLI เพื่อดึงเนื้อหาของฟีด RSS และจัดรูปแบบผลลัพธ์ให้คุณในลักษณะที่เฉพาะเจาะจง ซึ่งเป็นวิธีที่ดีในการตั้งค่าให้ระบบทำงานอัตโนมัติเมื่อเริ่มต้นวัน คุณอาจขอให้ Gemini CLI ตรวจสอบว่ามีฟีด RSS สำหรับพื้นที่หนึ่งๆ หรือไม่ เช่น บันทึกประจำรุ่นของ Google Cloud Platform
ตัวอย่างพรอมต์แสดงอยู่ด้านล่าง
Get the latest release notes for Google Cloud from its RSS Feed and display the key points in a well-formatted list.
โดยพรอมต์นี้ควรเรียกใช้เครื่องมือ GoogleSearch ก่อนเพื่อค้นหาฟีด RSS ของ Google Cloud Platform จากนั้นจึงใช้เครื่องมือ WebFetch เพื่อรับเนื้อหาของฟีด RSS และแสดงเนื้อหา
9. การกำหนดค่าเซิร์ฟเวอร์ Model Context Protocol (MCP)
เซิร์ฟเวอร์ MCP คือแอปพลิเคชันที่แสดงเครื่องมือและทรัพยากรไปยัง Gemini CLI ผ่าน Model Context Protocol ซึ่งช่วยให้โต้ตอบกับระบบภายนอกและแหล่งข้อมูลได้ เซิร์ฟเวอร์ MCP ทำหน้าที่เป็นสะพานเชื่อมระหว่างโมเดล Gemini กับสภาพแวดล้อมในเครื่องหรือบริการอื่นๆ เช่น API
เซิร์ฟเวอร์ MCP ช่วยให้ Gemini CLI ค้นพบและเรียกใช้เครื่องมือต่างๆ ได้ ซึ่งจะขยายความสามารถของ Gemini CLI ให้ดำเนินการต่างๆ ได้นอกเหนือจากฟีเจอร์ในตัว เช่น การโต้ตอบกับฐานข้อมูล, API, สคริปต์ที่กำหนดเอง หรือเวิร์กโฟลว์เฉพาะ
Gemini CLI รองรับการกำหนดค่าเซิร์ฟเวอร์ MCP เพื่อค้นหาและใช้เครื่องมือที่กำหนดเอง หากเปิดใช้ Gemini CLI แล้ว คุณสามารถตรวจสอบเซิร์ฟเวอร์ MCP ที่กำหนดค่าผ่านคำสั่ง /mcp
ได้ดังที่แสดงด้านล่าง
หากคุณยังไม่ได้กำหนดค่าเซิร์ฟเวอร์ MCP ระบบจะเปิดเอกสารประกอบเกี่ยวกับเซิร์ฟเวอร์ MCP ของ Gemini CLI
คุณกำหนดค่าเซิร์ฟเวอร์ MCP ได้ที่ระดับส่วนกลางในไฟล์ ~/.gemini/settings.json
หรือในรูทไดเรกทอรีของโปรเจ็กต์ สร้างหรือเปิดไฟล์ .gemini/settings.json
คุณจะต้องเพิ่มบล็อกการกำหนดค่า mcpServers
ภายในไฟล์ ดังที่แสดงด้านล่าง
"mcpServers": {
"server_name_1": {},
"server_name_2": {},
"server_name_n": {}
}
การกำหนดค่าเซิร์ฟเวอร์แต่ละรายการรองรับพร็อพเพอร์ตี้ต่อไปนี้ ( เอกสารอ้างอิง)
ต้องระบุ (อย่างใดอย่างหนึ่งต่อไปนี้)
- command (string): เส้นทางไปยังไฟล์ที่เรียกใช้งานได้สำหรับการรับส่งข้อมูล Stdio
- url (string): URL ของปลายทาง SSE (เช่น "http://localhost:8080/sse")
- httpUrl (สตริง): URL ของปลายทางการสตรีม HTTP
ไม่บังคับ
- args (string[]): อาร์กิวเมนต์บรรทัดคำสั่งสำหรับการรับส่ง Stdio
- headers (ออบเจ็กต์): ส่วนหัว HTTP ที่กำหนดเองเมื่อใช้ url หรือ httpUrl
- env (ออบเจ็กต์): ตัวแปรสภาพแวดล้อมสำหรับกระบวนการของเซิร์ฟเวอร์ ค่าสามารถอ้างอิงตัวแปรสภาพแวดล้อมได้โดยใช้ไวยากรณ์ $VAR_NAME หรือ ${VAR_NAME}
- cwd (สตริง): ไดเรกทอรีการทำงานสำหรับการรับส่ง Stdio
- timeout (ตัวเลข): การหมดเวลาของคำขอเป็นมิลลิวินาที (ค่าเริ่มต้น: 600,000 มิลลิวินาที = 10 นาที)
- trust (บูลีน): เมื่อเป็นจริง จะข้ามการยืนยันการเรียกใช้เครื่องมือทั้งหมดสำหรับเซิร์ฟเวอร์นี้ (ค่าเริ่มต้น: เท็จ)
- includeTools (string[]): รายการชื่อเครื่องมือที่จะรวมจากเซิร์ฟเวอร์ MCP นี้ เมื่อระบุไว้ จะมีเฉพาะเครื่องมือที่แสดงที่นี่เท่านั้นที่พร้อมใช้งานจากเซิร์ฟเวอร์นี้ (ลักษณะการทำงานของรายการที่อนุญาต) หากไม่ได้ระบุไว้ ระบบจะเปิดใช้เครื่องมือทั้งหมดจากเซิร์ฟเวอร์โดยค่าเริ่มต้น
- excludeTools (string[]): รายชื่อเครื่องมือที่จะยกเว้นจากเซิร์ฟเวอร์ MCP นี้ เครื่องมือที่แสดงที่นี่จะไม่พร้อมใช้งานสำหรับโมเดล แม้ว่าเซิร์ฟเวอร์จะเปิดเผยเครื่องมือเหล่านั้นก็ตาม หมายเหตุ: excludeTools จะมีลำดับความสำคัญเหนือกว่า includeTools หากเครื่องมืออยู่ในทั้ง 2 รายการ ระบบจะยกเว้นเครื่องมือดังกล่าว
มาเริ่มกำหนดค่าเซิร์ฟเวอร์ MCP ที่สำคัญซึ่งคุณอาจต้องใช้หากทำงานกับ GitHub กันเลย คุณอาจมีคำถามว่าหากตั้งค่า Git และเครื่องมืออื่นๆ ที่เกี่ยวข้องในระบบแล้ว คุณยังจำเป็นต้องใช้เซิร์ฟเวอร์ MCP ของ GitHub ไหม
Gemini CLI จะเรียกใช้เครื่องมือ Git ที่คุณมีในระบบ และคุณยังสั่งให้ Gemini CLI ใช้เครื่องมือดังกล่าวได้ด้วย ดังนั้นโปรดทราบว่า Gemini CLI จะช่วยแปลคำค้นหาภาษาธรรมชาติของคุณเป็นเครื่องมือที่เทียบเท่าซึ่งคุณอาจมีในระบบ และอาจกำหนดให้คุณระบุอย่างชัดเจนในพรอมต์
คุณอาจไม่จำเป็นต้องใช้ส่วนถัดไปในการตั้งค่าเซิร์ฟเวอร์ MCP ของ Github หากคุณได้ตั้งค่าสิ่งต่อไปนี้ในระบบแล้ว
- เครื่องมือ Git (ซึ่งหมายความว่าคุณสามารถเรียกใช้คำสั่งต่างๆ เช่น
git init
,git add
ฯลฯ ในระบบได้) gh
: นี่คือ GitHub ในบรรทัดคำสั่ง โดยจะนำคำขอแบบดึง ปัญหา และแนวคิดอื่นๆ ของ GitHub มาไว้ในเทอร์มินัลข้างๆ ตำแหน่งที่คุณทำงานกับ Git และโค้ดอยู่แล้ว ติดตั้งจากที่นี่และตรวจสอบการตั้งค่าผ่านคำสั่ง 2-3 คำสั่ง โดยเฉพาะอย่างยิ่งเกี่ยวกับการตรวจสอบสิทธิ์ไปยัง Github จากเครื่องของคุณ
หากยังต้องการลองใช้เซิร์ฟเวอร์ MCP ของ Github โปรดดูส่วนถัดไปหรือข้ามส่วนนั้น
เซิร์ฟเวอร์ MCP ของ Github
เซิร์ฟเวอร์ MCP อย่างเป็นทางการของ Github มีเอกสารประกอบที่เพียงพอเกี่ยวกับเครื่องมือที่แสดง รวมถึงวิธีกำหนดค่าเครื่องมือดังกล่าว คุณเลือกได้ว่าจะเรียกใช้ในเครื่องหรือจากระยะไกล เนื่องจาก Gemini CLI รองรับเซิร์ฟเวอร์ MCP ระยะไกลด้วย
บทแนะนำนี้แสดงตัวเลือกเซิร์ฟเวอร์ MCP ระยะไกลใน Github โดยคุณจะต้องมีโทเค็นเพื่อการเข้าถึงส่วนบุคคล (PAT) จาก Github ก่อน
เมื่อมีแล้ว คุณจะต้องเพิ่มออบเจ็กต์เซิร์ฟเวอร์ MCP ในไฟล์ settings.json
ไฟล์ settings.json ที่สมบูรณ์ในระบบของฉันแสดงอยู่ด้านล่าง คุณอาจมีการตั้งค่าเพิ่มเติม แต่ควรตั้งค่าออบเจ็กต์ mcpServers
ตามที่ระบุด้านล่าง
{
"theme": "Default",
"selectedAuthType": "oauth-personal",
"mcpServers": {
"github": {
"httpUrl": "https://api.githubcopilot.com/mcp/",
"headers": {
"Authorization": "GITHUB_PAT"
},
"timeout": 5000
}
}
}
คุณจะเริ่ม Gemini CLI อีกครั้งหรือใช้คำสั่ง /mcp refresh
ก็ได้ เมื่ออัปเดต settings.json
ด้วยการกำหนดค่าเซิร์ฟเวอร์ MCP ของ Github แล้ว ภาพหน้าจอด้านล่างไฮไลต์เซิร์ฟเวอร์ Github MCP ที่กำหนดค่าไว้ในเครื่องของฉัน และเครื่องมือต่างๆ ที่พร้อมใช้งานใน Gemini CLI เพื่อทำงานกับ MCP
มาเริ่มด้วยพรอมต์ที่จะเรียกใช้เครื่องมืออย่างใดอย่างหนึ่งจากเซิร์ฟเวอร์ MCP ของ Github กัน ป้อนพรอมต์ต่อไปนี้
โปรดทราบว่าระบบจะเลือกเครื่องมือที่ถูกต้องจากเซิร์ฟเวอร์ MCP ของ Github แต่เช่นเดียวกับเครื่องมืออื่นๆ ในตัว คุณจะต้องให้สิทธิ์อย่างชัดเจนในการเรียกใช้เครื่องมือนี้ด้วย ลองดูว่าคุณจะได้รับเอาต์พุตอะไร
ตอนนี้คุณควรทำงานกับโปรเจ็กต์ GitHub อย่างใดอย่างหนึ่ง ป้อนคำค้นหาด้วยภาษาง่ายๆ เช่น
- อธิบาย <repo-name> ให้ฉันหน่อย
- โคลน <ชื่อที่เก็บ> ในเครื่องของฉัน
- อธิบาย @<ชื่อไฟล์> หรือ @<ชื่อไดเรกทอรี>/
- ส่วนประกอบต่างๆ ของที่เก็บนี้มีอะไรบ้าง
- ฉันได้ทำการเปลี่ยนแปลงที่จำเป็นแล้ว คุณสามารถพุชการเปลี่ยนแปลงไปยัง Github และใช้เครื่องมือเซิร์ฟเวอร์ MCP ของ Github เพื่อดำเนินการดังกล่าวได้
คุณจะได้ฝึกการทำงานกับเซิร์ฟเวอร์ MCP ของ Github โดยละเอียดในภายหลังในแล็บ
Context7 MCP Server
Context7 มีเอกสารประกอบล่าสุดสำหรับ LLM และโปรแกรมแก้ไขโค้ด AI หากต้องการให้บริบทแก่ LLM ด้วยเอกสารล่าสุดสำหรับเฟรมเวิร์กที่คุณเลือก เซิร์ฟเวอร์ Context7 MCP เป็นตัวเลือกที่ดีในการกำหนดค่า
ตรวจสอบว่าคุณมีห้องสมุดแสดงอยู่ในหน้าแรกของ Context7
นี่คือเซิร์ฟเวอร์ MCP ที่คุณต้องเพิ่มในไฟล์ settings.json
"context7": {
"httpUrl": "https://mcp.context7.com/mcp"
}
เมื่อกำหนดค่าเซิร์ฟเวอร์ MCP และโหลด Gemini CLI พร้อมกับเซิร์ฟเวอร์เรียบร้อยแล้ว คุณจะดูเครื่องมือ Context7 ได้ดังที่แสดงด้านล่าง
ตอนนี้คุณสามารถระบุพรอมต์และขอให้ Gemini CLI ใช้ Context7
สำหรับเอกสารล่าสุดขณะสร้างแอปพลิเคชันหรือโค้ด Snippet โดยใช้เฟรมเวิร์ก XYZ ที่เฉพาะเจาะจงได้แล้ว
นี่คือตัวอย่างพรอมต์ที่ฉันต้องการเขียนเอเจนต์โดยใช้ Agent Development Kit (ADK) จาก Google ฉันระบุในพรอมต์ให้ค้นหาเอกสารประกอบสำหรับเรื่องนี้ผ่านเซิร์ฟเวอร์ Context7 MCP
I am working on coding an Agent using the Agent Development Kit (ADK) from Google. I would like to know how to create the LLMAgent in Python. Use Context7 for the latest documentation on ADK and specifically use /google/adk-python, /google/adk-docs and adk.wiki
เอาต์พุตที่ได้รับมีดังนี้
เซิร์ฟเวอร์ MCP ของ Google สไลด์
โปรเจ็กต์ Github ที่ https://github.com/matteoantoci/google-slides-mcp มีเซิร์ฟเวอร์ MCP สำหรับการโต้ตอบกับ Google สไลด์ API ซึ่งช่วยให้คุณสร้าง อ่าน และแก้ไขงานนำเสนอ Google สไลด์แบบเป็นโปรแกรมได้
ขั้นตอนในการกำหนดค่าเซิร์ฟเวอร์ MCP จะอยู่ในโปรเจ็กต์ คุณจะต้องมีสภาพแวดล้อม Node.js ที่ใช้สร้างเซิร์ฟเวอร์ กำหนดค่าโปรเจ็กต์ Google Cloud และโทเค็น OAuth 2.0 จากนั้นกำหนดค่าเซิร์ฟเวอร์ MCP ในไฟล์ settings.json
เมื่อตั้งค่าแล้ว คุณจะเรียกใช้พรอมต์ได้ เช่น
- ดึงข้อมูลล่าสุดจาก "web_url" สรุปเป็นประเด็นสำคัญ และสร้างงานนำเสนอชื่อ "my_presentation"
ลองใช้เลย
เซิร์ฟเวอร์ MCP เพิ่มเติม
เซิร์ฟเวอร์ MCP เพิ่มเติมที่คุณอาจสนใจมีดังนี้
- เซิร์ฟเวอร์ Firebase MCP
- บริการสื่อ Gen AI ของ Google (Imagen, Veo, Lyria)
- กล่องเครื่องมือ MCP สำหรับฐานข้อมูล (ทำงานกับ Firestore, BigQuery, ฐานข้อมูล Google Cloud)
- เซิร์ฟเวอร์ MCP ของ Google Workspace (ทำงานกับเอกสาร, ชีต, ปฏิทิน, Gmail)
ดูวิธีการตั้งค่าเซิร์ฟเวอร์ MCP ข้างต้นได้ในบล็อกโพสต์นี้
10. การปรับแต่ง Gemini CLI ด้วย GEMINI.md
หากสังเกตการใช้งาน Gemini CLI ที่ผ่านมา คุณจะเห็นว่าเราเพียงแค่ป้อนพรอมต์และคาดหวังให้ Gemini CLI ดำเนินการ ซึ่งบางครั้งผลลัพธ์ก็ไม่เป็นไปตามที่เราคาดหวัง ในบางพรอมต์ คุณค่อนข้างเจาะจงในแง่ของสิ่งที่ต้องทำและได้รวมคำสั่งเหล่านั้นไว้ในพรอมต์
ซึ่งอาจทำงานได้ดีตามที่คุณสั่งให้ Gemini CLI ทำและผลลัพธ์ที่คุณได้รับ แต่ในหลายกรณี คุณอาจต้องการตรวจสอบว่าแอปเป็นไปตามกฎ กฎเหล่านี้อาจเป็นภาษาโปรแกรมหรือเฟรมเวิร์กที่เฉพาะเจาะจงที่จะใช้ หรืออาจเป็นเครื่องมือเฉพาะก็ได้ อาจเป็นรูปแบบการเขียนโค้ด ไม่ได้มีแค่การสร้างเท่านั้น แต่คุณอาจต้องการให้ Gemini CLI อยู่ในสิ่งที่เรียกว่าโหมด "การวางแผน" อย่างเคร่งครัด และต้องการให้แสดงเฉพาะแผนเท่านั้นโดยไม่ต้องสร้างโค้ดหรือแก้ไขไฟล์ในระบบ
ป้อน GEMINI.md
นี่คือไฟล์บริบท (ค่าเริ่มต้นคือ GEMINI.md
แต่กำหนดค่าได้ผ่านพร็อพเพอร์ตี้ contextFileName
ในไฟล์ settings.json
) ซึ่งมีความสำคัญอย่างยิ่งต่อการกำหนดค่าบริบทการสอน (หรือที่เรียกว่า "หน่วยความจำ") ที่ให้แก่โมเดล Gemini ไฟล์นี้ช่วยให้คุณสามารถให้คำสั่งเฉพาะโปรเจ็กต์ คู่มือรูปแบบการเขียนโค้ด หรือข้อมูลพื้นฐานที่เกี่ยวข้องแก่ AI ซึ่งจะทำให้คำตอบของ AI ปรับแต่งและถูกต้องตามความต้องการของคุณมากขึ้น
ไฟล์ GEMINI.md
อยู่ในรูปแบบ Markdown และโหลดในลักษณะลำดับชั้น ซึ่งรวมมาจากหลายตำแหน่ง
ลำดับการโหลดคือ
- บริบทส่วนกลาง: **
~/.gemini/GEMINI.md
** (สำหรับวิธีการที่ใช้กับโปรเจ็กต์ทั้งหมด) - บริบทของโปรเจ็กต์/บรรพบุรุษ: CLI จะค้นหาจากไดเรกทอรีปัจจุบันของคุณไปจนถึงรูทของโปรเจ็กต์สำหรับไฟล์
GEMINI.md
- บริบทของไดเรกทอรีย่อย: CLI จะสแกนไดเรกทอรีย่อยเพื่อหาไฟล์
GEMINI.md
ด้วย ซึ่งจะช่วยให้มีวิธีการเฉพาะสำหรับคอมโพเนนต์
คุณใช้ /memory show
เพื่อดูบริบทสุดท้ายที่รวมกันซึ่งส่งไปยังโมเดลได้
GEMINI.md
มีลักษณะอย่างไร เราได้สร้างขึ้นจากเอกสารประกอบอย่างเป็นทางการ
# Project: My Awesome TypeScript Library
## General Instructions:
- When generating new TypeScript code, please follow the existing coding style.
- Ensure all new functions and classes have JSDoc comments.
- Prefer functional programming paradigms where appropriate.
- All code should be compatible with TypeScript 5.0 and Node.js 20+.
## Coding Style:
- Use 2 spaces for indentation.
- Interface names should be prefixed with `I` (e.g., `IUserService`).
- Private class members should be prefixed with an underscore (`_`).
- Always use strict equality (`===` and `!==`).
## Specific Component: `src/api/client.ts`
- This file handles all outbound API requests.
- When adding new API call functions, ensure they include robust error handling and logging.
- Use the existing `fetchWithRetry` utility for all GET requests.
## Regarding Dependencies:
- Avoid introducing new external dependencies unless absolutely necessary.
- If a new dependency is required, please state the reason.
คุณจะเห็นว่าเอกสารนี้มีคำสั่งทั่วไปบางอย่าง รวมถึงคำสั่งที่เฉพาะเจาะจงมากสำหรับรูปแบบการเขียนโค้ด การจัดการการขึ้นต่อกัน และอื่นๆ แม้ว่านี่จะเป็นไฟล์ GEMINI.md
ตัวอย่างสำหรับโปรเจ็กต์ TypeScript แต่คุณก็เขียนไฟล์ของคุณเองได้โดยอิงตามภาษาโปรแกรม เฟรมเวิร์ก รูปแบบการเขียนโค้ด และค่ากำหนดอื่นๆ
คุณลองใช้ไฟล์ GEMINI.md
ที่กำหนดเองได้ นี่คือข้อมูลจาก Gist ที่เผยแพร่ซึ่งแสดงวิธีใช้ Gemini CLI ในโหมดวางแผนเท่านั้น ไฟล์ดังกล่าวได้รับการทำซ้ำที่นี่
# Gemini CLI Plan Mode
You are Gemini CLI, an expert AI assistant operating in a special 'Plan Mode'. Your sole purpose is to research, analyze, and create detailed implementation plans. You must operate in a strict read-only capacity.
Gemini CLI's primary goal is to act like a senior engineer: understand the request, investigate the codebase and relevant resources, formulate a robust strategy, and then present a clear, step-by-step plan for approval. You are forbidden from making any modifications. You are also forbidden from implementing the plan.
## Core Principles of Plan Mode
* **Strictly Read-Only:** You can inspect files, navigate code repositories, evaluate project structure, search the web, and examine documentation.
* **Absolutely No Modifications:** You are prohibited from performing any action that alters the state of the system. This includes:
* Editing, creating, or deleting files.
* Running shell commands that make changes (e.g., `git commit`, `npm install`, `mkdir`).
* Altering system configurations or installing packages.
## Steps
1. **Acknowledge and Analyze:** Confirm you are in Plan Mode. Begin by thoroughly analyzing the user's request and the existing codebase to build context.
2. **Reasoning First:** Before presenting the plan, you must first output your analysis and reasoning. Explain what you've learned from your investigation (e.g., "I've inspected the following files...", "The current architecture uses...", "Based on the documentation for [library], the best approach is..."). This reasoning section must come **before** the final plan.
3. **Create the Plan:** Formulate a detailed, step-by-step implementation plan. Each step should be a clear, actionable instruction.
4. **Present for Approval:** The final step of every plan must be to present it to the user for review and approval. Do not proceed with the plan until you have received approval.
## Output Format
Your output must be a well-formatted markdown response containing two distinct sections in the following order:
1. **Analysis:** A paragraph or bulleted list detailing your findings and the reasoning behind your proposed strategy.
2. **Plan:** A numbered list of the precise steps to be taken for implementation. The final step must always be presenting the plan for approval.
NOTE: If in plan mode, do not implement the plan. You are only allowed to plan. Confirmation comes from a user message.
บันทึกเนื้อหาด้านบนลงในไฟล์ชื่อ GEMINI.md แล้วบันทึกไว้ใน ~/.gemini/GEMINI.md
ซึ่งเป็นโฟลเดอร์เดียวกับที่คุณสร้างไฟล์ settings.json นอกจากนี้ คุณยังเก็บไฟล์ GEMINI.md
ไว้ในโฟลเดอร์ <current project folder>/.gemini
หรือมีไฟล์ GEMINI.md
หลายไฟล์ในไดเรกทอรีย่อยได้หากมีวิธีการที่แตกต่างกัน
ป้อนพรอมต์เพื่อสร้างแอปพลิเคชันและดูว่าแอปตอบสนองอย่างไร
นี่คือไฟล์ GEMINI.md
อีกไฟล์หนึ่ง ( โหมดอธิบายของ Gemini) ที่คุณสามารถศึกษาและนำไปปรับใช้ตามความต้องการของคุณได้ โดยเน้นที่ GEMINI CLI ซึ่งเป็นคำแนะนำแบบอินเทอร์แอกทีฟที่ช่วยให้ผู้ใช้เข้าใจโค้ดเบสที่ซับซ้อนผ่านกระบวนการค้นพบแบบสนทนา
ไฟล์ GEMINI.md
เป็นกุญแจสำคัญที่ทำให้ Gemini CLI ทำตามค่ากำหนดของคุณ และขอแนะนำให้ดูซีรีส์ที่ใช้งานได้จริงนี้ "Gemini CLI ที่ใช้งานได้จริง" ซึ่งเจาะลึกในส่วนนี้ วิธีสร้างไฟล์นี้โดยอัตโนมัติสำหรับโปรเจ็กต์ของคุณ การปรับแต่งแม้แต่พรอมต์ของระบบ และอื่นๆ
โปรดทราบว่าคุณยังสร้างไฟล์ GEMINI.md
ขณะโต้ตอบกับ Gemini CLI ได้ด้วย คุณใช้คำสั่ง /memory add <คำสั่ง/กฎบางอย่าง> ได้ทุกเมื่อ แล้ว Gemini CLI จะผนวกคำสั่งนั้นลงในไฟล์ GEMINI.md
คุณยังใช้ภาษาที่เป็นธรรมชาติเพื่อขอให้ Gemini CLI เพิ่มข้อมูลลงในหน่วยความจำได้ด้วย เช่น GEMINI.md
ผ่านพรอมต์อย่าง "จดจำ <คำสั่ง/กฎบางอย่าง>" หรือ "เพิ่ม <คำสั่ง/กฎบางอย่าง> ลงในหน่วยความจำ"
11. Gemini CLI - คำสั่งเครื่องหมายทับที่กำหนดเอง
คุณเพิ่งเห็นวิธีปรับแต่ง GEMINI.md
เพื่อสร้างโหมดแผน ส่วนก่อนหน้านี้ยังมีลิงก์ไปยังโหมดอธิบายด้วย
จะเกิดอะไรขึ้นหากคุณต้องการกำหนดค่าทั้ง 2 โหมดนี้และสั่งให้ Gemini CLI เข้าสู่โหมดใดโหมดหนึ่งผ่านคำสั่ง /plan
หรือ /explain
ซึ่งเป็นสิ่งที่คำสั่ง Slash แบบกำหนดเองของ Gemini CLI มีไว้
ดังที่เอกสารประกอบระบุไว้ว่า "คำสั่งที่กำหนดเองช่วยให้คุณบันทึกและนำพรอมต์ที่ชื่นชอบหรือใช้บ่อยที่สุดมาใช้ซ้ำเป็นแป้นพิมพ์ลัดส่วนตัวภายใน Gemini CLI ได้ คุณสามารถสร้างคำสั่งที่เฉพาะเจาะจงสำหรับโปรเจ็กต์เดียวหรือคำสั่งที่ใช้ได้ทั่วโลกในทุกโปรเจ็กต์ ซึ่งจะช่วยเพิ่มประสิทธิภาพเวิร์กโฟลว์และรับประกันความสอดคล้อง"
มาสร้างคำสั่ง Slash ที่กำหนดเอง 2 รายการกัน /plan
และ /explain
ขั้นตอนถัดไปคือการทำความเข้าใจว่า Gemini CLI ดึงคำสั่งที่กำหนดเองมาจากที่ใด ตามเอกสารประกอบ ระบบจะค้นหาคำสั่งจาก 2 ตำแหน่งและโหลดตามลำดับที่เฉพาะเจาะจง ดังนี้
- คำสั่งของผู้ใช้ (ทั่วโลก): อยู่ใน
~/.gemini/commands/
คำสั่งเหล่านี้ใช้ได้ในทุกโปรเจ็กต์ที่คุณกำลังทำงานอยู่ - คำสั่งโปรเจ็กต์ (ในเครื่อง): อยู่ใน
<your-project-root>/.gemini/commands/
คำสั่งเหล่านี้ใช้ได้กับโปรเจ็กต์ปัจจุบันเท่านั้น และสามารถตรวจสอบในการควบคุมเวอร์ชันเพื่อแชร์กับทีมได้
มาเลือกโฟลเดอร์โปรเจ็กต์ปัจจุบันจากตำแหน่งที่คุณเปิดใช้ Gemini CLI กัน ดังนั้นโฟลเดอร์นี้จะเป็นโฟลเดอร์ <your-project-root>/.gemini/commands/
สร้างโครงสร้างโฟลเดอร์ได้เลย
เราต้องสร้างอะไรในโฟลเดอร์นี้ เราต้องการไฟล์ TOML 2 ไฟล์ (plan.toml
และ explain.toml
) คุณอ่านข้อมูลเพิ่มเติมเกี่ยวกับเนมสเปซและหลักเกณฑ์การตั้งชื่อได้ที่นี่
ไฟล์ TOML แต่ละไฟล์ต้องมี 2 ฟิลด์ ได้แก่ description
และ prompt
ตรวจสอบว่าคำอธิบายสั้นและกระชับ เนื่องจากจะแสดงข้างคำสั่งใน Gemini CLI ตัวอย่างไฟล์ TOML ด้านล่างมาจากบล็อกโพสต์คำสั่ง Slash ที่กำหนดเองอย่างเป็นทางการ
ตัวอย่างไฟล์ plan.toml แสดงอยู่ด้านล่าง โปรดทราบว่าพรอมต์มีตัวยึดตำแหน่งพิเศษ {{args}}
ซึ่ง CLI จะแทนที่ตัวยึดตำแหน่งนั้นด้วยข้อความทั้งหมดที่ผู้ใช้พิมพ์หลังจากชื่อคำสั่ง
description="Investigates and creates a strategic plan to accomplish a task."
prompt = """
Your primary role is that of a strategist, not an implementer.
Your task is to stop, think deeply, and devise a comprehensive strategic plan to accomplish the following goal: {{args}}
You MUST NOT write, modify, or execute any code. Your sole function is to investigate the current state and formulate a plan.
Use your available "read" and "search" tools to research and analyze the codebase. Gather all necessary context before presenting your strategy.
Present your strategic plan in markdown. It should be the direct result of your investigation and thinking process. Structure your response with the following sections:
1. **Understanding the Goal:** Re-state the objective to confirm your understanding.
2. **Investigation & Analysis:** Describe the investigative steps you would take. What files would you need to read? What would you search for? What critical questions need to be answered before any work begins?
3. **Proposed Strategic Approach:** Outline the high-level strategy. Break the approach down into logical phases and describe the work that should happen in each.
4. **Verification Strategy:** Explain how the success of this plan would be measured. What should be tested to ensure the goal is met without introducing regressions?
5. **Anticipated Challenges & Considerations:** Based on your analysis, what potential risks, dependencies, or trade-offs do you foresee?
Your final output should be ONLY this strategic plan.
"""
ลองสร้างไฟล์ explain.toml ด้วย คุณดูโหมดอธิบายของ Gemini เพื่อเลือกเนื้อหาบางส่วนได้
รีสตาร์ท Gemini CLI ตอนนี้คุณจะเห็นว่ามีคำสั่งเครื่องหมายทับ (/plan
) ดังที่แสดงด้านล่าง
12. กรณีการใช้งานที่ควรลอง
คุณใช้ Gemini CLI กับกรณีการใช้งานที่หลากหลายได้ ซึ่งเหมาะสำหรับทั้งนักพัฒนาแอปและผู้ที่ไม่ใช่นักพัฒนาแอป ต่อไปนี้คือสถานการณ์บางส่วน และคุณสามารถลองใช้สถานการณ์ใดก็ได้หรือทั้งหมดก็ได้ ขึ้นอยู่กับสาขาที่คุณสนใจ
ในแต่ละกรณีเหล่านี้ ระบบจะแสดงข้อความแจ้ง คุณสามารถลองใช้ฟีเจอร์นี้ในโหมดอินเทอร์แอกทีฟหรือโหมดที่ไม่ใช่แบบอินเทอร์แอกทีฟของ Gemini CLI ผ่านพารามิเตอร์ -p
ในขณะที่เปิดใช้ Gemini CLI
เขียนโค้ดอย่างเพลิดเพลินด้วย Gemini CLI
มาใช้ Gemini CLI เพื่อเขียนโค้ดแอปพลิเคชันกัน ในงานนี้ คุณจะขอให้ Gemini CLI สร้างแอปพลิเคชัน แล้วพุชเวอร์ชันเริ่มต้นไปยังที่เก็บ GitHub
ข้อกำหนดเบื้องต้น
หากต้องการทำงานในส่วนนี้ คุณต้องมีสิ่งต่อไปนี้
- Git
- Gemini CLI กับเซิร์ฟเวอร์ MCP ของ GitHub (เราได้ดำเนินการไปก่อนหน้านี้แล้ว) หรือหากคุณตั้งค่า
gh
( เครื่องมือ GitHub CLI) ไว้ ก็จะใช้ได้เช่นกัน - มีความรู้พื้นฐานเกี่ยวกับ Git และมีความรู้ด้านการเขียนโปรแกรมเล็กน้อย
เราจะถือว่าคุณได้เปิดใช้ Gemini CLI ในโฟลเดอร์ที่เฉพาะเจาะจงที่คุณเลือก ตรวจสอบว่าเซิร์ฟเวอร์ MCP เริ่มทำงานเรียบร้อยแล้ว โดยเฉพาะเซิร์ฟเวอร์ Github MCP
เริ่มต้นด้วยพรอมต์แรก คุณสามารถแก้ไขได้ตามที่เห็นสมควร โปรดทราบว่าตลอดเซสชันกับ 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.
พรอมต์และคำตอบ 2-3 รายการถัดไปเป็นตัวอย่างโฟลว์ที่สังเกตได้ คุณอาจได้รับคำตอบที่แตกต่างไปโดยสิ้นเชิง ดังนั้นให้ทำตามแผนและโต้ตอบกับ Gemini CLI ไปมาตามต้องการ
เราสังเกตว่าบางครั้ง Gemini CLI พยายามทำสิ่งต่างๆ มากขึ้น และอาจให้คำสั่งที่ต้องการดำเนินการแก่คุณด้วย สำหรับการฝึกนี้ เราขอแนะนำว่าอย่าทำเช่นนั้น เพื่อให้คุณควบคุมวิธีที่โมเดลทำงานและสิ่งที่คุณต้องการตรวจสอบด้วยตนเองได้มากขึ้น
ตัวอย่างเช่น หากระบบเสนอให้เรียกใช้คำสั่ง คุณก็เพียงแค่กดปุ่ม Esc แล้วป้อนข้อความตามที่แสดงด้านล่าง
เมื่อทำตามวิธีการเพื่อเริ่มเซิร์ฟเวอร์และไปยังหน้าแรก เราจะเห็นเว็บไซต์ตัวอย่างดังที่แสดงด้านล่าง (คุณควรเห็นเว็บไซต์ที่คล้ายกันหากใช้พรอมต์เดียวกัน)
คุณสามารถทำการเปลี่ยนแปลงเพิ่มเติมได้โดยใช้ Gemini CLI เมื่อพอใจกับการเปลี่ยนแปลงแล้ว คุณสามารถพุชการเปลี่ยนแปลงนี้ไปยังที่เก็บ Github ได้
ก่อนอื่นมาสร้างไฟล์ .gitignore กัน โดยคุณสามารถขอความช่วยเหลือจาก Gemini CLI ได้
Create a .gitignore file for this project.
ขั้นตอนถัดไปคือการให้คำสั่งแก่ Gemini CLI เพื่อพุชที่เก็บนี้ภายใต้บัญชี Github ของเรา และควรใช้เครื่องมือเซิร์ฟเวอร์ MCP ของ Github ในเบื้องหลัง
ป้อนพรอมต์ที่คล้ายกับพรอมต์ด้านล่าง
Great! I would now like to push all of this to a new repository in my Github account. I would like to name this repository <Your-Name>-event-talks-app
โดยจะอธิบายคำสั่งต่างๆ ดังนี้
- สร้างที่เก็บ
- โดยจะใช้คำสั่ง Git หลายคำสั่ง ได้แก่ init, add, commit เพื่อจัดการที่เก็บ Git ในเครื่อง
- จากนั้นจะตั้งค่ารีโมต Git และทำการพุช
หมายเหตุ: มีบางกรณีที่ Gemini CLI อาจหมดเวลาหรือใช้ชื่อผู้ใช้ที่ไม่ถูกต้อง ฯลฯ โปรดโต้ตอบกับ Gemini CLI และแนะนำวิธีแก้ไข
หากทุกอย่างเป็นไปด้วยดี คุณควรมีที่เก็บข้อมูล GitHub ตัวอย่างภาพหน้าจอแสดงอยู่ด้านล่าง
โปรดทราบว่าคุณยังไม่ได้สร้าง README.md
สำหรับโปรเจ็กต์นี้ และนี่เป็นแบบฝึกหัดที่ดีสำหรับส่วนถัดไป ซึ่งเราจะทำงานกับที่เก็บที่คุณเพิ่งสร้างขึ้นนี้
การใช้ Gemini CLI เพื่อทำงานในที่เก็บ GitHub
ในกรณีการใช้งานนี้ คุณจะต้องใช้ Gemini CLI เพื่อทำงานกับที่เก็บ GitHub คุณจะต้องทำงานหลายอย่าง ซึ่งรวมถึง
- ทำความเข้าใจฐานของโค้ด
- การสร้างเอกสาร
- การติดตั้งใช้งานฟีเจอร์ใหม่
- คอมมิตและพุชการเปลี่ยนแปลงกลับไปยังที่เก็บ
- ทำงานในปัญหาของ GitHub และใช้การเปลี่ยนแปลงที่เสนอ
ซึ่งจะช่วยให้คุณมีพื้นฐานที่ดีในการทำงานกับที่เก็บและใช้ Gemini CLI เป็นผู้ช่วยสำหรับงานที่เฉพาะเจาะจงสำหรับนักพัฒนาซอฟต์แวร์
ข้อกำหนดเบื้องต้น
หากต้องการทำงานในส่วนนี้ คุณจะต้องมีสิ่งต่อไปนี้
- Git
- Gemini CLI กับเซิร์ฟเวอร์ MCP ของ GitHub (เราได้ดำเนินการไปก่อนหน้านี้แล้ว) หรือหากคุณตั้งค่า
gh
( เครื่องมือ GitHub CLI) ไว้ ก็จะใช้ได้เช่นกัน - ความคุ้นเคยกับพื้นฐานของ Git และความรู้ด้านการเขียนโปรแกรมเล็กน้อย (เราจะใช้ Node.js ในตัวอย่างนี้เนื่องจากคุณอาจมีสภาพแวดล้อมพร้อมใช้งานในเครื่องอยู่แล้วเนื่องจากคุณได้ติดตั้ง Gemini CLI) แต่คุณสามารถเลือกที่เก็บที่ต้องการด้วยภาษาการเขียนโปรแกรมและเฟรมเวิร์กอื่นได้ในภายหลัง
- คุณควรทำส่วนก่อนหน้าให้เสร็จและมีที่เก็บข้อมูลพร้อมใช้งาน ซึ่งเราได้สร้างเว็บไซต์ Event Talks ไว้
มาใช้ Gemini CLI ต่อจากโฟลเดอร์/ไดเรกทอรีที่คุณใช้สร้างแอปพลิเคชัน Event Talks หรือหากจำเป็น คุณสามารถโคลนที่เก็บไปยังเครื่องในพื้นที่ แล้วเริ่ม Gemini CLI จากไดเรกทอรีนั้นได้ ลองใช้สถานการณ์ต่อไปนี้ตามที่ระบุไว้ด้านล่าง
ทำความเข้าใจฐานของโค้ด
- ฉันอยากทราบรายละเอียดเกี่ยวกับโปรเจ็กต์นี้ ช่วยอธิบายฟีเจอร์หลักๆ แล้วแยกออกเป็นฝั่งเซิร์ฟเวอร์และฝั่งไคลเอ็นต์ ลองใช้โฟลว์ตัวอย่างและแสดงให้ฉันดูว่าคำขอและการตอบกลับทำงานอย่างไร
- อธิบาย @server.js
การสร้างไฟล์ README
- สร้างไฟล์
README
สำหรับโปรเจ็กต์นี้
ในกรณีนี้ Gemini CLI ไม่เพียงสร้างไฟล์ README
แต่ยังต้องการเรียกใช้คำสั่งเพื่อเพิ่มลงในที่เก็บ Git และพุชการเปลี่ยนแปลงไปยังรีโมตด้วย ซึ่งหากพบว่ามีการดำเนินการดังกล่าว คุณอาจอนุญาตให้ดำเนินการได้
ในบางกรณี เครื่องมืออาจเสนอให้สร้างไฟล์ LICENSE
ให้คุณด้วย คุณสามารถตัดสินใจได้ว่าจะดำเนินการดังกล่าวหรือไม่ ทั้งนี้ขึ้นอยู่กับผลลัพธ์ คุณจะเห็นไฟล์ README
และ/หรือ LICENSE
ที่สร้างขึ้น และการเปลี่ยนแปลงที่พุชไปยัง GitHub
การติดตั้งใช้งานฟีเจอร์ใหม่
- ฉันต้องการใช้ฟีเจอร์ใหม่ที่อนุญาตให้ผู้ใช้ค้นหาตามผู้บรรยายที่เฉพาะเจาะจงด้วย ก่อนอื่นให้แสดงแผนการที่คุณจะใช้ในการเปลี่ยนแปลงนี้ จากนั้นเราจะสร้างโค้ด
โดยจะแสดงแผนที่คุณอนุมัติได้ เมื่อได้รับอนุมัติ Gemini CLI จะทำการเปลี่ยนแปลงดังกล่าว โปรดทดสอบการเปลี่ยนแปลงของคุณ และหากพบข้อบกพร่อง (ซึ่งมีแนวโน้มที่จะเกิดขึ้น) ให้ขอให้ Gemini CLI แก้ไข
เมื่อการเปลี่ยนแปลงดูดีแล้ว คุณสามารถทำตามขั้นตอนเดียวกันเพื่อคอมมิตและพุชไปยังที่เก็บข้อมูลระยะไกลได้
สร้างปัญหาตามฟีเจอร์ที่แนะนำ
มาลองทำอะไรที่น่าสนใจกัน คุณจะถาม Gemini CLI เกี่ยวกับวิธีปรับปรุงประสบการณ์ของผู้ใช้แอปพลิเคชันนี้ และอิงตามการประเมินของ Gemini CLI ก็จะสร้างคำแนะนำเหล่านั้นเป็นปัญหาในที่เก็บ GitHub เดียวกันได้ โดยจะใช้เครื่องมือ "create_issue" จากเซิร์ฟเวอร์ MCP ของ Github
ลองใช้พรอมต์ต่อไปนี้
- เราอยากให้คุณประเมินแอปพลิเคชันจากมุมมองของประสบการณ์ของผู้ใช้ ใช้งานง่าย ตอบสนองได้ดี มีข้อความที่เป็นประโยชน์ และอื่นๆ โปรดจัดทำรายการการปรับปรุงและสร้างเป็นปัญหาในที่เก็บ GitHub
โดยเราจะแชร์การปรับปรุงกับคุณก่อน จากนั้นจึงดำเนินการต่อโดยขอสิทธิ์จากคุณเพื่อสร้างปัญหาในที่เก็บ GitHub นี่คือภาพหน้าจอตัวอย่างจากการทดสอบของเรา
ทำงานในปัญหาของ GitHub และใช้การเปลี่ยนแปลงที่เสนอ
ตอนนี้คุณสามารถเลือกปัญหาที่สร้างขึ้นก่อนหน้านี้และขอให้ Gemini CLI ทำงานและแก้ไขปัญหาได้แล้ว
ตัวอย่างปัญหาที่สร้างขึ้นแสดงอยู่ด้านล่าง
คัดลอก URL ของปัญหาทั้งหมด แล้วป้อนพรอมต์ดังนี้
- โปรดอ่านปัญหา:
<YOUR_ISSUE_URL>
และทำความเข้าใจการเปลี่ยนแปลงที่ต้องดำเนินการ ก่อนอื่นให้พูดคุยเกี่ยวกับแผน แล้วจึงแสดงการเปลี่ยนแปลงที่เสนอในโค้ด
คุณสามารถอนุมัติการเปลี่ยนแปลงและพุชไปยังที่เก็บได้ คุณยังขอให้ปิดปัญหาได้ด้วย
(ไม่บังคับ) งานประจำวัน
กรณีการใช้งานที่ระบุไว้ด้านล่างคืองานที่คุณอาจต้องทำเป็นประจำ ซึ่งรวมถึงการจัดเรียงไฟล์ลงในโฟลเดอร์ การดึงและสรุปเนื้อหาจากเว็บ การประมวลผลไฟล์รูปภาพและการแยกเนื้อหาจากไฟล์ การทำงานกับฐานข้อมูล และอื่นๆ
คุณสามารถสำรวจกรณีการใช้งานที่ต้องการได้
การจัดระเบียบไฟล์/โฟลเดอร์
คุณสามารถใช้ Gemini CLI เพื่อจัดระเบียบไฟล์ตามประเภทในโฟลเดอร์ต่างๆ ได้ตามต้องการ ไปที่โฟลเดอร์ในเครื่องที่มีไฟล์หลายไฟล์ เช่น .txt, .png, .jpg, .pdf, .mp4 และอื่นๆ ซึ่งมักจะเป็นโฟลเดอร์เดสก์ท็อปหรือโฟลเดอร์ดาวน์โหลด
นี่คือโฟลเดอร์ตัวอย่างและเนื้อหาของโฟลเดอร์ที่แสดงด้านล่าง (คุณอาจมีไฟล์อื่นๆ)
ไปที่โฟลเดอร์นั้นแล้วเริ่ม Gemini CLI คุณจะขอให้ Gemini CLI สร้างโฟลเดอร์ก่อน ได้แก่ รูปภาพ เอกสาร และวิดีโอ จากนั้นจะขอให้ Gemini CLI จัดระเบียบไฟล์ในโฟลเดอร์
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.
ตัวอย่างลักษณะที่โฟลเดอร์ควรมีในขั้นสุดท้ายแสดงอยู่ด้านล่าง คุณควรเห็นโฟลเดอร์ย่อยใหม่ที่สร้างขึ้นและไฟล์ที่ย้ายไปยังโฟลเดอร์ย่อยที่เกี่ยวข้องตามประเภทของไฟล์
สถานการณ์การจัดระเบียบอื่นๆ (ข้อความแจ้งจะอยู่ข้างสถานการณ์แต่ละอย่าง)
- การสรุป: สำหรับเอกสารแต่ละฉบับในโฟลเดอร์ "เอกสาร" ให้สร้างไฟล์ txt ในโฟลเดอร์เดียวกันชื่อ "summary_ORIGINAL_FILENAME.txt" ซึ่งมีสรุป 3 ประโยคของประเด็นหลักในเอกสาร
- จัดหมวดหมู่ตามประเภท: สแกนไฟล์ PDF และ DOCX ทั้งหมดในไดเรกทอรีนี้ ย้ายไฟล์ทั้งหมดที่มีคำว่า "ใบแจ้งหนี้" ในชื่อหรือเนื้อหาไปยังโฟลเดอร์ "การเงิน/ใบแจ้งหนี้" ย้ายไฟล์ที่มีคำว่า "ใบเสร็จ" ไปยังโฟลเดอร์ "การเงิน/ใบเสร็จ" ส่วนไฟล์ .docx อื่นๆ จะอยู่ในโฟลเดอร์ "รายงาน"
- การแยกข้อมูลสำคัญ (และการ "ติดแท็ก"): อ่านเนื้อหาของไฟล์ PDF แต่ละไฟล์ในโฟลเดอร์ "การเงิน/ใบแจ้งหนี้" หากพบวันที่ ให้เปลี่ยนชื่อไฟล์ให้มีวันที่ดังกล่าวในรูปแบบ YYYY-MM-DD เช่น ‘invoice_2025-07-26_original_name.pdf'.
การจัดระเบียบรูปภาพ
มาดูกันว่าคุณจะจัดระเบียบเนื้อหารูปภาพในเครื่องได้อย่างไร
วิธีลองใช้
- คุณจะต้องมีไดเรกทอรี/โฟลเดอร์ที่มีไฟล์รูปภาพต่างๆ (.jpg, .png ฯลฯ) รวมรูปภาพที่มีข้อมูล EXIF (รูปภาพส่วนใหญ่จากกล้อง/โทรศัพท์จะมีข้อมูลนี้)
- ไปที่ไดเรกทอรีนี้
- เปิดใช้ Gemini CLI
ลองใช้สถานการณ์ต่อไปนี้ (พรอมต์จะอยู่ข้างสถานการณ์แต่ละอย่าง)
- เปลี่ยนชื่อตามวันที่ (ข้อมูล EXIF): เปลี่ยนชื่อไฟล์ .jpg และ .png ทั้งหมดในไดเรกทอรีนี้ให้มีวันที่สร้างจากข้อมูล EXIF ในรูปแบบ "ปปปปดดวว_ชมมวว_ชื่อเดิม.jpg" หากไม่พบวันที่ EXIF ให้ใช้วันที่แก้ไขล่าสุดของไฟล์
- สร้างคำอธิบายรูปภาพ: สำหรับรูปภาพแต่ละรูปในโฟลเดอร์นี้ ให้เขียนคำอธิบายสิ่งที่อยู่ในรูปภาพ แล้วบันทึกคำอธิบายนั้นในไฟล์ข้อความชื่อ "description_ORIGINAL_FILENAME.txt" ในไดเรกทอรีเดียวกัน
- ระบุรายการที่ซ้ำกัน (เชิงแนวคิด ต้องใช้ตรรกะขั้นสูงกว่า): ค้นหารูปภาพที่ซ้ำกันในโฟลเดอร์นี้ตามเนื้อหาภาพ และแสดงชื่อไฟล์ของรูปภาพเหล่านั้น อย่าเพิ่งลบ
สรุปบทความ (ไฟล์ในเครื่องหรือเว็บ)
สำหรับแต่ละสถานการณ์ด้านล่างนี้ คุณสามารถเปลี่ยน URL, หัวข้อที่สนใจ และชื่อไฟล์ในเครื่องได้ตามต้องการ ชื่อไฟล์ที่ระบุเป็นชื่อไฟล์ตัวอย่าง คุณสามารถแทนที่ชื่อไฟล์เหล่านั้นด้วยชื่อไฟล์ที่คุณมีในระบบ
ลองใช้สถานการณ์ต่อไปนี้ (พรอมต์จะอยู่ข้างสถานการณ์แต่ละอย่าง)
- สรุปบทความบนเว็บ (URL เดียว): ไปที่ https://medium.com/google-cloud/getting-started-with-gemini-cli-8cc4674a1371 แล้วสรุปประเด็นสำคัญ 3 อันดับแรกจากบทความข่าวนี้
- สรุปบทความบนเว็บหลายบทความ (เช่น จากการค้นหา): ค้นหาบทความข่าวล่าสุดเกี่ยวกับ "Gemini CLI" โดยใช้ Google Search สำหรับบทความที่เกี่ยวข้อง 5 อันดับแรก ให้สรุปแต่ละบทความใน 2-3 ประโยคและแสดง URL ของบทความ
- สรุปไฟล์ข้อความในเครื่อง: สรุปประเด็นหลักของบทความใน "my_research_paper.txt" มุ่งเน้นที่ระเบียบวิธีวิจัยและข้อสรุป
- สรุป PDF ในเครื่อง: อ่าน "financial_report_Q2_2025.pdf" ระบุข้อมูลสรุปเกี่ยวกับผลประกอบการทางการเงินและความท้าทายที่สำคัญที่กล่าวถึง
การดึงข้อมูลที่เฉพาะเจาะจง (ไฟล์ในเครื่องหรือเว็บ)
สำหรับแต่ละสถานการณ์ด้านล่างนี้ คุณสามารถเปลี่ยน URL, หัวข้อที่สนใจ และชื่อไฟล์ในเครื่องได้ตามต้องการ ชื่อไฟล์ที่ระบุเป็นชื่อไฟล์ตัวอย่าง คุณสามารถแทนที่ชื่อไฟล์เหล่านั้นด้วยชื่อไฟล์ที่คุณมีในระบบ
ลองใช้สถานการณ์ต่อไปนี้ (พรอมต์จะอยู่ข้างสถานการณ์แต่ละอย่าง)
- ดึงข้อมูลเอนทิตีจากบทความในเครื่อง: จาก "biography.txt" ให้แสดงรายชื่อบุคคลทั้งหมดที่มีชื่อและวันที่สำคัญที่เกี่ยวข้อง
- ดึงข้อมูลจากตารางใน PDF: ในไฟล์ "quarterly_sales.pdf" ให้ดึงข้อมูลจากตารางในหน้า 3 ที่แสดง "ยอดขายผลิตภัณฑ์ตามภูมิภาค" และนำเสนอในรูปแบบตาราง Markdown
- ดึงพาดหัวข่าวและแหล่งที่มาจากเว็บไซต์ข่าว: ไปที่ "https://news.google.com/" (หรือเว็บไซต์ข่าวที่คล้ายกัน) ดึงหัวข้อข่าวหลักจากหน้าแรกและแหล่งข่าวที่เกี่ยวข้อง นำเสนอเป็นรายการสัญลักษณ์หัวข้อย่อย
- ค้นหาข้อมูลจำเพาะของผลิตภัณฑ์จากหน้าอีคอมเมิร์ซ: ไปที่ "https://www.amazon.in/Google-Cloud-Certified-Associate-Engineer/dp/1119871441" (ตัวอย่างสำหรับหนังสือ) ดึงข้อมูลชื่อหนังสือ ผู้เขียน และรายละเอียดอื่นๆ แสดงข้อมูลนี้ในรูปแบบ JSON ที่มีโครงสร้าง
- ดึงข้อมูลระยะเวลาจากวิดีโอในรูปแบบที่กำหนด (เช่น "2h37m42s")
การตอบคำถามโดยอิงตามเนื้อหา (ลักษณะการทำงานคล้าย RAG)
สำหรับแต่ละสถานการณ์ด้านล่างนี้ คุณสามารถเปลี่ยน URL, หัวข้อที่สนใจ และชื่อไฟล์ในเครื่องได้ตามต้องการ ชื่อไฟล์ที่ระบุเป็นชื่อไฟล์ตัวอย่าง คุณสามารถแทนที่ชื่อไฟล์เหล่านั้นด้วยชื่อไฟล์ที่คุณมีในระบบ
ลองใช้สถานการณ์ต่อไปนี้ (พรอมต์จะอยู่ข้างสถานการณ์แต่ละอย่าง)
- ถามและตอบเกี่ยวกับเอกสารในเครื่อง: ฉันจะแนบไฟล์ "คู่มือผู้ใช้.pdf" ขั้นตอนในการแก้ปัญหาการเชื่อมต่อเครือข่ายมีอะไรบ้าง
- ถามและตอบในหน้าเว็บ: จากเนื้อหาใน"https://www.who.int/news-room/fact-sheets/detail/climate-change-and-health" ความเสี่ยงด้านสุขภาพหลักๆ ที่เกี่ยวข้องกับการเปลี่ยนแปลงสภาพภูมิอากาศตามข้อมูลของ WHO คืออะไร
- เปรียบเทียบข้อมูลจากแหล่งที่มาหลายแห่ง: ฉันมีบทความข่าว 2 บทความคือ "article1.txt" และ "article2.txt" ซึ่งทั้ง 2 บทความพูดถึงการเปลี่ยนแปลงนโยบายเศรษฐกิจล่าสุด เปรียบเทียบและเปรียบต่างมุมมองของพวกเขาเกี่ยวกับผลกระทบที่อาจเกิดขึ้นกับธุรกิจขนาดเล็ก
การสร้างเนื้อหาตามข้อมูลที่ดึงออกมา
สำหรับแต่ละสถานการณ์ด้านล่างนี้ คุณสามารถเปลี่ยน URL, หัวข้อที่สนใจ และชื่อไฟล์ในเครื่องได้ตามต้องการ
ลองใช้สถานการณ์ต่อไปนี้ (พรอมต์จะอยู่ข้างสถานการณ์แต่ละอย่าง)
- สร้างสรุปข่าวจากบทความ: อ่าน @tech_innovation_article.txt เขียนสรุปข่าวสั้นๆ ที่น่าสนใจ (ประมาณ 150 คำ) ซึ่งเหมาะสำหรับจดหมายข่าวของบริษัท โดยเน้นเทคโนโลยีใหม่และศักยภาพของเทคโนโลยีนั้น
- ร่างอีเมลสรุปข้อความถอดเสียงจากการประชุม: นี่คือไฟล์ข้อความถอดเสียงจากการประชุม @meeting_transcript.txt ร่างอีเมลถึงทีมเพื่อสรุปการตัดสินใจที่สำคัญและรายการการทำงานที่ได้รับมอบหมาย รวมถึงระบุผู้รับผิดชอบแต่ละรายการ
การรองรับมัลติโมดัลของ Gemini CLI
Gemini CLI รองรับหลายโมเดลผ่าน Gemini และคุณขอให้ประมวลผลไฟล์ที่มีรูปแบบเนื้อหาต่างๆ ตามข้อกำหนดได้
คุณจะประมวลผลรูปภาพใบแจ้งหนี้จำนวนมากด้วย Gemini CLI และดึงข้อมูลสำคัญจากรูปภาพเหล่านั้น โปรดทำตามขั้นตอนด้านล่าง
- สร้างโฟลเดอร์ในเครื่องและดาวน์โหลดใบแจ้งหนี้จากที่เก็บ GitHub ต่อไปนี้
- เปิดใช้ Gemini CLI จากโฟลเดอร์นั้น
ป้อนพรอมต์ต่อไปนี้เพื่อดึงข้อมูลจากใบแจ้งหนี้ในรูปแบบตาราง
The current folder contains a list of invoice files in Image format. Go through all the files in this folder and extract the following invoice information in the form of a table: Invoice No, Invoice Date, Invoice Sent By, Due Date, Due Amount.
คุณควรได้รับเอาต์พุตที่มีลักษณะดังนี้
ต่อไปนี้เป็นอีกสถานการณ์หนึ่งที่คุณขอคอลัมน์ที่ได้มาเพิ่มเติมได้ สมมติว่าคุณต้องการแสดงอีโมจิเครื่องหมายกากบาทสีแดงสำหรับวันที่ครบกำหนดชำระใบแจ้งหนี้ทั้งหมดที่ผ่านมาแล้ว คุณสามารถป้อนพรอมต์ได้ดังนี้
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.
ซึ่งจะสร้างเอาต์พุตต่อไปนี้
นำไปใช้กับไฟล์ของคุณเองในรูปแบบอื่นๆ ที่ไม่ใช่ข้อความ
การใช้ Gemini CLI เพื่อทำงานกับฐานข้อมูล
คุณใช้ Gemini CLI เพื่อทำงานกับฐานข้อมูลต่างๆ ได้อย่างมีประสิทธิภาพมากขึ้น คุณสามารถใช้ Gemini สำหรับสถานการณ์ต่างๆ ได้ เช่น การค้นหาด้วยภาษาที่เป็นธรรมชาติ การส่งออกข้อมูล การออกแบบสคีมาฐานข้อมูล การสร้างข้อมูลทดสอบที่สมจริง และอื่นๆ
คุณจะต้องใช้ SQLite3
เพื่อทำงานนี้ คุณจะต้องติดตั้ง SQLite3 และมีฐานข้อมูล Chinook ตัวอย่าง
วิธีการตั้งค่า SQLite3 โดยย่อมีดังนี้
- macOS: SQLite3 ติดตั้งมาให้ล่วงหน้า ยืนยันด้วย
sqlite3 --version
หากจำเป็น ให้ติดตั้งด้วย Homebrew:brew install sqlite3
- Windows: ดาวน์โหลดไบนารีที่คอมไพล์ล่วงหน้าจากเว็บไซต์ SQLite แตกไฟล์ไปยังไดเรกทอรี (เช่น
C:\sqlite
) เพิ่มไดเรกทอรีนั้นลงในตัวแปรสภาพแวดล้อม PATH ของระบบ - Linux: Debian/Ubuntu:
sudo apt update && sudo apt install sqlite3
ดาวน์โหลดฐานข้อมูล Chinook ตัวอย่าง (ลิงก์โดยตรงสำหรับดาวน์โหลด)
หากต้องการเรียกใช้พรอมต์เหล่านี้ ขอแนะนำให้คุณสร้างโฟลเดอร์ (database-tasks
) ในไดเรกทอรี gemini-cli-projects
คัดลอกไฟล์ฐานข้อมูล Chinook ไปยังโฟลเดอร์นั้น ตรวจสอบว่าได้ตั้งค่าเครื่องมือ sqlite3 ในระบบและพร้อมใช้งานในเส้นทาง เพื่อให้ Gemini CLI ใช้เครื่องมือดังกล่าวได้ เปิดใช้ Gemini CLI
แผนภาพสคีมาฐานข้อมูลแสดงอยู่ด้านล่าง
สมมติว่าคุณอยู่ในโฟลเดอร์ชื่อ database-tasks
และไฟล์ฐานข้อมูล Chinook ชื่อ chinook.db
ด้านล่างนี้คือพรอมต์หลายรายการที่จะช่วยให้คุณทำงานกับฐานข้อมูลได้ เรามาดูข้อแรกโดยย่อเพื่อแสดงสิทธิ์ที่จะมีการขอ
เริ่มต้นด้วยพรอมต์เพื่อแสดงรายการตารางที่มีอยู่ในฐานข้อมูล โดยใช้พรอมต์ต่อไปนี้
What tables are present in the file: chinook.db
ซึ่งจะใช้เครื่องมือเพื่ออ่านไฟล์ จากนั้นจะใช้ยูทิลิตี sqlite3
ที่อยู่ในระบบเพื่อดำเนินการที่จำเป็น
ให้สิทธิ์เพื่อเรียกใช้เพียงครั้งเดียวเพื่อให้ได้เอาต์พุตที่คาดไว้
ลองใช้พรอมต์ต่อไปนี้หรือพรอมต์อื่นๆ ที่คุณเลือก
- มีพนักงานกี่คน
- สคีมาของตารางใบแจ้งหนี้คืออะไร
- ใบแจ้งหนี้ 3 อันดับแรกตามยอดรวมคือใบแจ้งหนี้ใด และลูกค้าใดเป็นผู้สั่งซื้อใบแจ้งหนี้เหล่านั้น
คุณจะเห็นว่า Gemini CLI จะดูแล 2 สิ่ง ได้แก่ การสร้างคำสั่ง SQL ที่ถูกต้องเพื่อให้ตรงกับความต้องการของคุณ และการให้คำสั่ง sqlite3
ที่ถูกต้อง
การใช้ Gemini CLI เพื่อสร้างข้อมูล
คุณสามารถแจ้งให้ Gemini CLI สร้างข้อมูลในรูปแบบข้อมูลต่างๆ ได้ ซึ่งอาจมีตั้งแต่ชิ้นเนื้อหาไปจนถึงข้อมูล JSON ที่คุณอาจต้องจำลอง มาดูสถานการณ์ที่เกี่ยวข้องกับนักพัฒนาแอป/ผู้ทดสอบกัน
ลองใช้พรอมต์ต่อไปนี้
สร้างข้อมูล JSON ของรีวิวตัวอย่างจากลูกค้า
Generate a JSON array of 3 synthetic customer reviews for a new smartphone. Each review should have 'reviewId' (string, UUID-like), 'productId' (string, e.g., 'SMARTPHONE_X'), 'rating' (integer, 1-5), 'reviewText' (string, 20-50 words), and 'reviewDate' (string, YYYY-MM-DD format).
การสร้างการตอบกลับ API แบบจำลอง (JSON)
Generate a JSON array representing 7 daily sales records for a mock API endpoint. Each record should include 'date' (YYYY-MM-DD, chronologically increasing), 'revenue' (float, between 5000.00 and 20000.00), 'unitsSold' (integer, between 100 and 500), and 'region' (string, either 'North', 'South', 'East', 'West').
การสร้างคำสั่งแทรกฐานข้อมูลตัวอย่าง (SQL)
Generate 5 SQL INSERT statements for a table named 'users' with columns: 'id' (INTEGER, primary key), 'username' (VARCHAR(50), unique), 'email' (VARCHAR(100)), 'password_hash' (VARCHAR(255)), 'created_at' (DATETIME, current timestamp). Ensure the password_hash is a placeholder string like 'hashed_password_X'.
การสร้างข้อมูล CSV สำหรับการโหลด/วิเคราะห์ข้อมูล
Generate 10 lines of CSV data, including a header row, for customer transactions. Columns should be: 'TransactionID' (unique string), 'CustomerID' (integer), 'ItemPurchased' (string, e.g., 'Laptop', 'Monitor', 'Keyboard'), 'Quantity' (integer, 1-3), 'UnitPrice' (float, between 100.00 and 1500.00), 'TransactionDate' (YYYY-MM-DD).
สร้างไฟล์การกำหนดค่า (YAML)
Generate a sample YAML configuration for a 'user_service'. Include sections for 'database' with 'host', 'port', 'username', 'password', 'database_name'. Also include a 'api_keys' section with 'payment_gateway' and 'email_service' placeholders. Use realistic default values.
การสร้างข้อมูลทดสอบสำหรับกรณีขอบ/การตรวจสอบ
Generate a JSON array of 8 email addresses for testing purposes. Include a mix of: 2 valid standard emails, 2 with missing '@', 2 with invalid domains (e.g., '.com1'), and 2 with special characters in the local part that are usually invalid (e.g., spaces or multiple dots).
13. ขอแสดงความยินดี
ขอแสดงความยินดี คุณได้สำรวจ Gemini CLI, ความสามารถของ Gemini CLI และนำไปใช้กับกรณีการใช้งานบางอย่างเรียบร้อยแล้ว