1. บทนำ

สวัสดี ทุกคน ฉันชื่อ Sparky ดีใจที่คุณมาได้ เราเดินทางมาจากคลัสเตอร์ GKE ในus-central1เพื่อมาที่นี่ในวันนี้ ยินดีต้อนรับสู่ Codelab นี้
ฉันใช้เวลาทั้งชีวิตในการวิ่งผ่านสตรีมข้อมูลของ Google Cloud และได้เห็นทุกสิ่งทุกอย่าง ฉันเห็นคุณ สถาปนิกและวิศวกร สร้างสรรค์สิ่งต่างๆ ได้อย่างน่าทึ่ง แต่ฉันก็เห็นว่าคุณติดอยู่ในพุ่มไม้ด้วย คุณรู้ว่าฉันกำลังพูดถึงอะไร ความรู้สึกของการสลับบริบทเมื่อคุณแก้ไขข้อบกพร่องของพ็อดใน GKE คุณสลับไปมาระหว่าง kubectl logs, คอนโซล GCP เพื่อตรวจสอบสถานะของโหนด, IDE เพื่อดูซอร์สโค้ดที่ได้รับการติดตั้งใช้งาน และแท็บเบราว์เซอร์ที่มีเอกสาร Kubernetes อย่างเป็นทางการสำหรับ Hook วงจรพ็อด การกระโดดแต่ละครั้งคือการหยุดพักจากที่โฟกัส
และเครื่องมือที่ซับซ้อน gcloud, kubectl, terraform... แต่ละรายการมี DSL ของตัวเองและมีฟีเจอร์มากมาย ซึ่งทำให้ต้องค้นหาเอกสารอยู่ตลอดเวลา คุณจึงต้องค้นหาคำสั่ง gcloud ที่สมบูรณ์แบบเพียงคำสั่งเดียวที่มีการผสมผสานแฟล็ก --filter และ --format ที่เหมาะสมเพื่อรับข้อมูลที่ต้องการ ซึ่งก็เหมือนกับการพยายามหาถั่วสักเม็ดในป่าที่มีถั่วนับล้าน และอย่าเพิ่งพูดถึงงานที่ต้องทำซ้ำๆ ฉันเห็นคุณเขียน Dockerfile และ cloudbuild.yaml แบบเดียวกันสำหรับบริการ Python ใหม่หลายครั้งจนโค้ดอาจจะรู้สึกเหมือนเคยเห็นมาก่อน
เราจึงมาที่นี่เพื่อแสดงวิธีที่ดีกว่าให้คุณ เส้นทางลับผ่านป่า Gemini CLI จึงมีไว้เพื่อสิ่งนี้
Gemini CLI คืออะไร
แล้วทางลัดมหัศจรรย์ที่ฉันตื่นเต้นมากนี้คืออะไร
ให้คิดว่า Gemini CLI เป็นเพื่อนร่วมคลาวด์ส่วนตัวของคุณในเทอร์มินัล เป็นการสนทนา เป็นการเป็นพาร์ทเนอร์ โดยเป็นระบบที่รับรู้บริบท ซึ่งเป็นคำที่ดูดีที่หมายความว่าระบบไม่ได้แค่ฟัง แต่เข้าใจด้วย โดยจะอ่านไฟล์ เรียนรู้รูปแบบของโปรเจ็กต์ เช่น คุณใช้แท็บหรือช่องว่าง และดูว่าคุณกำลังพยายามทำอะไรอยู่ เหมือนกับว่าเราสามารถดมกลิ่นลูกโอ๊กที่คุณพยายามเก็บรวบรวมได้
สถาปัตยกรรมระดับสูง (มาดูเบื้องหลังการทำงานกัน)
แล้วทั้งหมดนี้ทำงานอย่างไร โดยเป็นการผสมผสานสิ่งเจ๋งๆ 2-3 อย่างที่ทำงานร่วมกันอย่างลงตัว
- โมเดลภาษาที่มีประสิทธิภาพ: นี่คือสมอง โดยเฉพาะอย่างยิ่ง Gemini เป็นโมเดลขนาดใหญ่แบบมัลติโมดัลที่ Google ฝึก “มัลติโมดัล” หมายความว่าโมเดลไม่ได้เข้าใจแค่ข้อความ แต่ยังเข้าใจโครงสร้างและความหมายของโค้ดด้วย ซึ่งช่วยให้โมเดลสามารถให้เหตุผลเกี่ยวกับซอฟต์แวร์ของคุณได้ ไม่ใช่แค่อ่าน
- บริบทเฉพาะรายการของคุณ: นี่เป็นสิ่งสำคัญ Gemini CLI จะทำงานเป็นกระบวนการในเครื่องของคุณ โดยมีสิทธิ์เช่นเดียวกับบัญชีผู้ใช้ ซึ่งหมายความว่าเครื่องมือนี้สามารถเข้าถึงระบบไฟล์ของคุณเพื่อช่วยในโปรเจ็กต์ที่เฉพาะเจาะจงได้ ไม่ใช่บริการระบบคลาวด์ที่อยู่ไกลออกไปซึ่งคาดเดาเกี่ยวกับโค้ดของคุณ แต่เป็นเครื่องมือที่อยู่กับคุณ
- ระบบนิเวศของเครื่องมือ: นี่คือวิธีที่โมเดลโต้ตอบกับโลก โดยมีชุดฟังก์ชันที่กำหนดไว้อย่างชัดเจนซึ่งสามารถเรียกใช้ได้ เช่น
read_fileหรือrun_shell_commandให้คิดว่านี่คือ API ที่ปลอดภัย โมเดลจะตัดสินใจสิ่งที่ต้องทำและเครื่องมือที่จะใช้ จากนั้นจะสร้างtool_codeบล็อกเพื่อดำเนินการ ซึ่งจะช่วยให้การดำเนินการของโมเดลคาดการณ์ได้และเชื่อถือได้ - การเรียกใช้คำสั่ง Shell: นี่คือความมหัศจรรย์ที่แท้จริง โดยจะเรียกใช้คำสั่งใดก็ได้ใน
bash -c <command>เชลล์ย่อย โดยจะจับภาพstdout,stderrและexit codeนี่เป็นเรื่องใหญ่ ซึ่งหมายความว่า Gemini CLI สามารถเรียกใช้คำสั่ง ตรวจสอบว่าคำสั่งล้มเหลวหรือไม่ แล้วลองแก้ไขตามข้อความแสดงข้อผิดพลาด - เครือข่ายความปลอดภัย: นี่คือส่วนที่ฉันชอบที่สุด ก่อนที่จะเรียกใช้
tool_codeบล็อกนั้น ไคลเอ็นต์ CLI จะแสดงคำสั่งหรือโค้ดexactและขอการยืนยันจากคุณ การตรวจสอบนี้เป็นฝั่งไคลเอ็นต์ ดังนั้นคุณจึงมีสิทธิ์ตัดสินใจขั้นสุดท้ายก่อนที่ระบบจะดำเนินการใดๆ คุณควบคุมทุกอย่างได้เสมอ
เพราะ Gemini ไม่ใช่แค่แชทบ็อต แต่เป็นผู้ช่วยที่พร้อมลงมือทำ ผู้ช่วยที่พร้อมให้ความช่วยเหลือในการผจญภัยด้านการเขียนโค้ด
แนวคิดหลัก: เชิงประกาศเทียบกับเชิงคำสั่ง
การเปลี่ยนแปลงที่ยิ่งใหญ่และน่าทึ่งที่สุดคือการเปลี่ยนจากการบอกคอมพิวเตอร์ว่าทำอย่างไรเป็นการบอกว่าคุณต้องการอะไร
- คำสั่ง (เส้นทางเก่าที่ซับซ้อน): คุณต้องระบุทุกขั้นตอน คุณต้องเป็นผู้เชี่ยวชาญด้านภาษาเฉพาะของโดเมนของเครื่องมือ เช่น คำสั่งที่ซับซ้อนนี้
อ๊ะ ดูสิ คุณต้องทราบไวยากรณ์สำหรับประเภทเครื่อง ตระกูลอิมเมจ ข้อมูลเมตา และแท็ก หากพลาดไปแม้แต่ส่วนเดียว คุณก็จะได้รับข้อผิดพลาดที่อ่านไม่ออกgcloud compute instances create my-vm --project=my-project --zone=us-central1-a --machine-type=e2-medium --image-family=debian-11 --image-project=debian-cloud --metadata-from-file startup-script=./startup.sh --tags=http-server,dev - เชิงประกาศ (ทางลัดของ Sparky): เพียงพูดสิ่งที่คุณต้องการด้วยภาษาอังกฤษที่เข้าใจง่าย
Create a new e2-medium VM for my web server in us-central1, run the startup.sh script, and tag it for http traffic.
เท่านี้ก็เรียบร้อย Gemini จะแยกวิเคราะห์คำขอของคุณ แมปคำขอไปยังพารามิเตอร์ของgcloudเครื่องมือ ค้นหาไวยากรณ์ที่ถูกต้องสำหรับแต่ละแฟล็ก และสร้างคำสั่งที่ซับซ้อนให้คุณ จากนั้นจะแสดงให้คุณอนุมัติ ซึ่งช่วยให้คุณมองเห็นภาพรวมได้ ไม่ใช่แค่จำแฟล็กบรรทัดคำสั่ง
ขยายขีดความสามารถของ Gemini: ข้อมูลเบื้องต้นเกี่ยวกับส่วนขยาย CLI
แม้ว่า Gemini CLI จะเป็นเครื่องมือที่มีประสิทธิภาพพร้อมใช้งาน แต่ศักยภาพที่แท้จริงจะปลดล็อกได้ผ่านส่วนขยาย ส่วนขยายคือชุดของพรอมต์ เครื่องมือ และคำสั่งที่กำหนดเองซึ่งช่วยเพิ่มฟังก์ชันการทำงานของ CLI ทำให้คุณปรับแต่งให้ตรงกับความต้องการและเวิร์กโฟลว์ที่เฉพาะเจาะจงได้
การค้นหาและติดตั้งส่วนขยาย
Gemini CLI มีระบบนิเวศของส่วนขยายที่เพิ่มขึ้นเรื่อยๆ ซึ่งสร้างโดยทั้ง Google และนักพัฒนาซอฟต์แวร์บุคคลที่สาม คุณสามารถเรียกดูไดเรกทอรีส่วนขยายอย่างเป็นทางการได้ที่ geminicli.com/extensions
หากต้องการติดตั้งส่วนขยาย คุณสามารถใช้คำสั่ง gemini extensions install กับ URL ของที่เก็บ Git ของส่วนขยาย เช่น หากต้องการติดตั้งส่วนขยาย Cloud SQL สำหรับ PostgreSQL อย่างเป็นทางการ ให้เรียกใช้คำสั่งต่อไปนี้
gemini extensions install https://github.com/gemini-cli-extensions/cloud-sql-postgresql
เอาล่ะ พูดกันพอแล้ว มาลงมือทำกันเลยดีกว่า
2. ก่อนเริ่มต้น

สวัสดีพ่อมดแม่มดแห่งคลาวด์ในอนาคต Sparky พร้อมให้บริการ ก่อนที่จะเริ่มการผจญภัยครั้งยิ่งใหญ่ เราต้องตรวจสอบว่าสภาพแวดล้อมของเวิร์กช็อปพร้อมใช้งานแล้ว ลองนึกถึงการจัดกระเป๋าด้วยเครื่องมือที่เหมาะสมและลูกโอ๊กวิเศษทั้งหมดก่อนที่เราจะมุ่งหน้าเข้าป่า ติดตามฉัน
หากมีโปรเจ็กต์ที่อยู่ในระบบคลาวด์ Google Cloud อยู่แล้ว คุณจะใช้ Gemini CLI ภายใน Google Cloud Shell ได้เนื่องจากมีการติดตั้ง Gemini CLI ไว้ล่วงหน้า หรือทำตามขั้นตอนต่อไปนี้เพื่อตั้งค่าในเครื่อง
ขั้นตอนที่ 1: สิ่งที่จำเป็น (ข้อกำหนดเบื้องต้น)
นักผจญภัยทุกคนต้องมีรากฐานที่มั่นคง ก่อนที่จะติดตั้ง Gemini CLI คุณต้องตั้งค่าสิ่งต่อไปนี้ในเครื่องของคุณก่อน
- Google Cloud SDK (
gcloud): นี่คือชุดเครื่องมือหลักสำหรับ Google Cloud Gemini CLI เป็นส่วนหนึ่งของตระกูลนี้
- ตรวจสอบว่าติดตั้งแล้ว: เรียกใช้
gcloud --versionหากเห็นหมายเลขเวอร์ชัน แสดงว่าคุณพร้อมใช้งานแล้ว - หากยังไม่ได้ติดตั้ง ให้ทำตามวิธีการอย่างเป็นทางการที่ cloud.google.com/sdk/docs/install
- Git: เราจะต้องใช้ Git เพื่อโคลนที่เก็บของ Hands-On Lab
- ตรวจสอบว่าติดตั้งแล้ว: เรียกใช้
git --version - หากยังไม่ได้ติดตั้ง คุณสามารถดาวน์โหลดได้จาก git-scm.com/downloads
- โปรเจ็กต์และการตรวจสอบสิทธิ์ของ GCP:
- ตรวจสอบว่าคุณมีโปรเจ็กต์ Google Cloud ที่เปิดใช้การเรียกเก็บเงินแล้ว เรื่องนี้สำคัญมาก
- เข้าสู่ระบบบัญชี Google โดยเรียกใช้คำสั่งต่อไปนี้
gcloud auth login
- ตั้งค่าโปรเจ็กต์สำหรับเซสชัน ค้นหารหัสโปรเจ็กต์จากคอนโซล GCP แล้วเรียกใช้คำสั่งต่อไปนี้
gcloud config set project YOUR_PROJECT_ID
(แทนที่ YOUR_PROJECT_ID ด้วยรหัสโปรเจ็กต์จริงของคุณ)
- Node.js เวอร์ชัน 20 ขึ้นไป
ขั้นตอนที่ 2: รับเวทมนตร์! (การติดตั้ง Gemini CLI)
เอาล่ะ เมื่อทราบเรื่องพื้นฐานแล้ว ก็ถึงเวลาเริ่มกิจกรรมหลักกันแล้ว เราจะติดตั้ง Gemini CLI
เรียกใช้ได้ทันทีด้วย npx
# Using npx (no installation required)
npx https://github.com/google-gemini/gemini-cli
ติดตั้งทั่วโลกด้วย npm
npm install -g @google/gemini-cli
ติดตั้งทั่วโลกด้วย Homebrew (macOS/Linux)
brew install gemini-cli
ตรวจสอบเวอร์ชัน Gemini
gemini --version
คุณควรเห็นหมายเลขเวอร์ชัน ซึ่งเป็นการยืนยันว่าการติดตั้งสำเร็จแล้ว
ขั้นตอนที่ 3: เปิดเครื่อง (การกำหนดค่า)
เมื่อติดตั้ง Gemini CLI แล้ว เราต้องให้สิทธิ์เข้าถึงแก่ Gemini CLI ก่อนอื่นให้เปิดใช้โดยเรียกใช้คำสั่ง gemini ในเทอร์มินัล คุณควรเห็นหน้าจอดังต่อไปนี้

เพื่อความสะดวก คุณสามารถตรวจสอบสิทธิ์ด้วยบัญชี Google ซึ่งจะให้สิทธิ์เข้าถึง Gemini 2.5 Pro ที่มีหน้าต่างบริบทขนาด 1 ล้านโทเค็นและคำขอสูงสุด 60 รายการ/นาที และ 1,000 รายการ/วันโดยไม่ต้องจัดการคีย์ API
หากต้องการเข้าถึงโมเดล Gemini ที่เฉพาะเจาะจงหรืออัปเกรดเป็นขีดจำกัดที่สูงขึ้นเมื่อจำเป็น ให้ใช้คีย์ Gemini API เป็นวิธีการตรวจสอบสิทธิ์
สำหรับทีมระดับองค์กรและเวิร์กโหลดการใช้งานจริงที่ตั้งค่าโปรเจ็กต์ Google และบัญชีสำหรับการเรียกเก็บเงินแล้ว ให้ใช้ Vertex AI เพื่อความปลอดภัยและการปฏิบัติตามข้อกำหนดขั้นสูง
ระบบจะแจ้งขั้นตอนถัดไปให้คุณกำหนดค่าการตรวจสอบสิทธิ์ตามตัวเลือกที่คุณเลือก ดูรายละเอียดเพิ่มเติมเกี่ยวกับตัวเลือกเหล่านี้ได้ในเอกสารประกอบเกี่ยวกับ Gemini CLI
หากคุณต้องการใช้แพลตฟอร์ม Vertex AI ของ Google Cloud ให้ออกจาก Gemini CLI ก่อนโดยกด ctrl+c 2 ครั้ง แล้วมาตั้งค่าตัวแปรสภาพแวดล้อมที่จำเป็นกัน
ไม่ว่าคุณจะใช้วิธีการตรวจสอบสิทธิ์ใด โดยปกติแล้วคุณจะต้องตั้งค่าตัวแปรต่อไปนี้ GOOGLE_CLOUD_PROJECT และ GOOGLE_CLOUD_LOCATION
วิธีตั้งค่าตัวแปรเหล่านี้
# Replace with your project ID and desired location (e.g., us-central1)
export GOOGLE_CLOUD_PROJECT="YOUR_PROJECT_ID"
export GOOGLE_CLOUD_LOCATION="YOUR_PROJECT_LOCATION"
ตอนนี้มาเข้าสู่ระบบ Google Cloud กัน
gcloud auth application-default login
เมื่อตรวจสอบสิทธิ์ด้วยวิธีก่อนหน้าแล้ว ให้เปิดใช้ Gemini CLI อีกครั้งโดยเรียกใช้คำสั่ง gemini ในเทอร์มินัล ในตัวเลือกการตรวจสอบสิทธิ์ ให้เลือก Vertex AI แล้วคุณก็พร้อมใช้งาน
ขั้นตอนที่ 4: การทดสอบ Spark (การยืนยันการตั้งค่า)
นี่คือช่วงเวลาแห่งความจริง มาดูกันว่าทุกอย่างทำงานได้ไหม เรียกใช้คำสั่งเหล่านี้เพื่อให้แน่ใจว่าไฟทุกดวงเป็นสีเขียว
- ป้อนพรอมต์ต่อไปนี้
What is my current directory?
Gemini CLI ควรตอบกลับโดยบอกไดเรกทอรีการทำงานปัจจุบันของคุณ การทดสอบนี้จะทดสอบโมเดลภาษาหลักและการผสานรวมเชลล์

- ทดสอบการเชื่อมต่อ GCP
list my gcs buckets
หากคุณมีที่เก็บข้อมูล GCS ระบบควรแสดงรายการที่เก็บข้อมูลเหล่านั้น หากไม่มี ระบบจะแจ้งให้คุณทราบ ซึ่งเป็นการยืนยันว่าเชื่อมต่อกับโปรเจ็กต์ GCP อย่างถูกต้อง
ขั้นตอนที่ 5: เพิ่มพลังให้มากขึ้น (การติดตั้งส่วนขยาย)
ตอนนี้มาเพิ่มความสามารถของ Gemini CLI โดยการติดตั้งส่วนขยาย 2-3 รายการที่จะมีประโยชน์ในภายหลังใน Lab
Cloud Run
gemini extensions install https://github.com/GoogleCloudPlatform/cloud-run-mcp
ความปลอดภัยของ Gemini CLI
gemini extensions install https://github.com/gemini-cli-extensions/security
gcloud
gemini extensions install https://github.com/gemini-cli-extensions/gcloud
Cloud SQL สำหรับ PostgreSQL
gemini extensions install https://github.com/gemini-cli-extensions/cloud-sql-postgresql
หากคำสั่งทั้งหมดใช้ได้ แสดงว่าคุณพร้อมเข้าร่วมเวิร์กช็อปอย่างเป็นทางการแล้ว สภาพแวดล้อมของคุณได้รับการตั้งค่าแล้ว และคุณพร้อมที่จะเริ่มปลดปล่อยประสิทธิภาพการทำงานแล้ว แล้วเจอกันในห้องทดลองแรก
3. แนวคิดหลักและการโต้ตอบกับพื้นที่ทำงานในเครื่อง

เอาล่ะ พร้อมที่จะลงมือทำแล้วหรือยัง ตอนนี้เราจะมาดูเครื่องมือจริงๆ ในกล่องเครื่องมือ Gemini ใหม่ของคุณ ฉันคิดว่าเครื่องมือเหล่านี้เป็นเหมือนพลังวิเศษที่ช่วยให้ฉันสำรวจและสร้างสรรค์สิ่งต่างๆ ในระบบคลาวด์ได้ มาดูวิธีการทำงานของฟีเจอร์นี้กัน
ความสามารถหลัก
ฉันแบ่งความสามารถออกเป็น 2 กลุ่ม ได้แก่ การมองเห็นสิ่งที่อยู่ภายนอก และการลงมือทำจริง
ทำความเข้าใจสภาพแวดล้อมของคุณ (ประสาทสัมผัสพิเศษของฉัน)
ก่อนจะเริ่มสร้างรังใหม่ คุณต้องดูต้นไม้ก่อนใช่ไหม เครื่องมือเหล่านี้มีไว้เพื่อดูภาพรวม
list_directory: นี่คือเครื่องมือ "ดมกลิ่น" พื้นฐานของฉัน ซึ่งเป็น Wrapper ที่ตรงไปตรงมารอบๆ การแสดงรายการไดเรกทอรีระดับระบบปฏิบัติการมาตรฐาน แต่ส่วนที่น่าสนใจคือโมเดลสามารถแยกวิเคราะห์เอาต์พุตที่มีโครงสร้างนี้เพื่อทำการตัดสินใจได้ เช่น เลือกที่จะสำรวจไดเรกทอรีย่อยที่ชื่อsrcglob: อันนี้คือ "เครื่องมือค้นหาลูกโอ๊ก" ของฉัน โดยใช้รูปแบบ Glob มาตรฐาน เช่น*,**,?และ[]ซึ่งคุณรู้จักอยู่แล้วจากสิ่งต่างๆ เช่น.gitignoreคุณจึงสามารถถามว่า "ค้นหา*.pyไฟล์ทั้งหมดในไดเรกทอรีapp" ได้โดยใช้รูปแบบapp/**/*.pyซึ่งเป็นวิธีที่มีประสิทธิภาพในการรวบรวมชุดไฟล์ที่เฉพาะเจาะจงเพื่อให้โมเดลวิเคราะห์search_file_content: นี่คือการมองทะลุของฉัน โดยจะใช้นิพจน์ทั่วไป (Regex) แบบเต็มในการค้นหา ไม่ใช่แค่การจับคู่สตริงอย่างง่าย ซึ่งมีประสิทธิภาพอย่างมาก คุณสามารถขอให้ค้นหารูปแบบที่ซับซ้อนได้ เช่น "ค้นหาเส้นทาง Flask ทั้งหมดที่ใช้เมธอด POST" ซึ่งอาจสร้างนิพจน์ทั่วไป เช่นapp\.route\(.*methods=\['POST'\].*\)โดยจะแสดงผลเส้นทางไฟล์ หมายเลขบรรทัด และบรรทัดที่ตรงกัน ซึ่งจะให้บริบททั้งหมดที่โมเดลต้องการread_file: เมื่อพบไฟล์ที่น่าสนใจแล้ว คุณก็คงอยากจะเปิดไฟล์นั้นread_fileได้รับการเพิ่มประสิทธิภาพสำหรับสิ่งนี้ คุณสามารถอ่านทั้งไฟล์ หรือหากเป็นไฟล์ขนาดใหญ่ คุณสามารถใช้พารามิเตอร์offsetและlimitเพื่ออ่านเป็นกลุ่มได้ ซึ่งหมายความว่าโมเดลจะสแกนไฟล์บันทึกขนาดใหญ่ได้อย่างมีประสิทธิภาพโดยไม่หมดเวลา
จากความเข้าใจสู่การดำเนินการ (ถึงเวลาสร้างแล้ว!)
โอเค คุณได้สำรวจภูมิประเทศแล้ว ตอนนี้ก็ถึงเวลาสร้างรังของคุณแล้ว เครื่องมือเหล่านี้ช่วยให้คุณทำการเปลี่ยนแปลงและทำสิ่งต่างๆ ได้
**write_file**: หากต้องการสร้างไฟล์ใหม่ตั้งแต่ต้นwrite_fileเป็นการดำเนินการแบบอะตอมที่เขียนเนื้อหาทั้งหมดที่คุณระบุไปยังเส้นทางที่กำหนด ซึ่งเหมาะอย่างยิ่งสำหรับการสร้างโครงสร้างโมดูลใหม่หรือสร้างDockerfileตั้งแต่ต้นตามความต้องการของโปรเจ็กต์**replace**: เครื่องมือนี้ใช้สำหรับการเปลี่ยนแปลงที่สำคัญ ไม่ใช่แค่การค้นหาและแทนที่แบบง่ายๆ คุณระบุold_stringและnew_stringหากต้องการให้การดำเนินการนี้ทำงานได้อย่างปลอดภัยold_stringต้องเป็นข้อมูลโค้ดที่ไม่ซ้ำจากไฟล์ โดยปกติจะมีบริบทหลายบรรทัดก่อนและหลังส่วนที่คุณกำลังเปลี่ยนแปลง วิธีนี้ช่วยให้มั่นใจว่าเราจะเปลี่ยนเฉพาะโค้ดexactที่คุณต้องการ**run_shell_command**: นี่คือไอเทมเพิ่มพลังขั้นสุด โดยจะเรียกใช้คำสั่งที่ระบุในbash -c <command>เชลล์ย่อย โมเดลจะตอบกลับด้วยstdout,stderrและexit codeซึ่งเป็นสิ่งสำคัญในการสร้างเวิร์กโฟลว์ โมเดลสามารถเรียกใช้terraform planอ่านเอาต์พุต และหากแผนสำเร็จ (รหัสออก 0) ก็จะถามคุณว่าควรใช้แผนดังกล่าวหรือไม่
หลักประกันความปลอดภัย (สัญญาที่ฉันให้ไว้กับคุณ)
การเรียกใช้คำสั่งอาจดูน่ากลัว เราเข้าใจ ด้วยเหตุนี้ เครือข่ายความปลอดภัยจึงมีความสำคัญอย่างยิ่ง เมื่อโมเดลสร้างบล็อก tool_code ที่มีการเรียกไปยัง run_shell_command หรือ write_file ไคลเอ็นต์ Gemini CLI จะสกัดกั้นบล็อกดังกล่าว โดยจะแสดงคำสั่งที่แน่นอนหรือเนื้อหาทั้งหมดของไฟล์ที่จะเขียน และแสดงข้อความแจ้ง [y/n] จะไม่มีการดำเนินการใดๆ โดยไม่ได้รับการอนุมัติอย่างชัดแจ้งจากคุณ คุณควบคุมทุกอย่างได้เสมอ
4. สำรวจโปรเจ็กต์

วัตถุประสงค์: ใช้ Gemini CLI เพื่อทำความเข้าใจโค้ดเบสที่ไม่คุ้นเคยโดยไม่ต้องออกจากเทอร์มินัล
สถานการณ์: คุณเป็นนักพัฒนาแอปมือใหม่และต้องการเรียนรู้เกี่ยวกับโปรเจ็กต์นี้อย่างรวดเร็ว
งานที่ 0: การตั้งค่า - โคลนโปรเจ็กต์
ก่อนอื่น เราต้องรับรหัส โดยซ่อนอยู่ในที่เก็บสาธารณะบน GitHub ใน "ทรี" ที่ชื่อ quickpoll มาขอความช่วยเหลือจาก Gemini CLI ให้โคลนให้เรากัน ก่อนอื่น ให้สร้างไดเรกทอรีการทำงานและเปิดใช้ Gemini CLI จากภายในไดเรกทอรีการทำงาน
mkdir workdir
cd workdir
gemini
ตอนนี้ให้พิมพ์พรอมต์นี้
clone the github repository from the URL: https://github.com/gauravkakad-google/quickpoll.git

Gemini จะเข้าใจว่า "โคลน" หมายถึงการใช้คำสั่ง git clone โดยจะสร้างrun_shell_commandการเรียกใช้เครื่องมือที่มีลักษณะคล้ายกับ git clone https://github.com/gauravkakad-google/quickpoll.git เมื่อคุณอนุมัติแล้ว ระบบจะดาวน์โหลดที่เก็บให้คุณ
ตอนนี้เราจะออกจาก Gemini CLI โดยกด ctrl+c 2 ครั้ง จากนั้นไปที่ที่เก็บตัวอย่างแล้วเปิดใช้ Gemini CLI อีกครั้ง
cd quickpoll
gemini
เยี่ยมเลย ตอนนี้เราอยู่ในโครงสร้างโปรเจ็กต์แล้ว ก็เริ่มสำรวจได้เลย
งานที่ 1: แสดงรายการไฟล์ทั้งหมดในโปรเจ็กต์
ตอนนี้เราเข้ามาแล้ว มาสำรวจป่าทั้งผืนกัน เราต้องการดูทุกไฟล์ ขอความช่วยเหลือจาก Gemini ดังนี้
List all the files in the project.
Gemini น่าจะใช้globเครื่องมือที่มีรูปแบบ**/* คำสั่งนี้จะแสดงรายการไฟล์ทั้งหมดแบบเรียกซ้ำ ซึ่งจะให้ไฟล์ Manifest ที่สมบูรณ์ของโค้ดเบส ซึ่งเป็นขั้นตอนแรกที่ยอดเยี่ยมในการทำความเข้าใจโครงสร้างของโปรเจ็กต์
งานที่ 2: ค้นหาไฟล์ทั้งหมดที่นำเข้า "google.cloud.sql.connector"
โอเค ฉันอยากรู้ โปรเจ็กต์นี้สื่อสารกับ Google Cloud Storage ที่ใด มาสืบหาความจริงกัน ถามคำถามต่อไปนี้
Find all files that import the 'google.cloud.sql.connector' library.

Gemini จะใช้search_file_contentความสามารถของตนเพื่อค้นหาไฟล์ที่มีคำสั่งนำเข้าดังกล่าว ซึ่งจะช่วยให้คุณมุ่งเน้นไปที่ส่วนของโค้ดที่จัดการการโต้ตอบกับ Cloud SQL ได้ทันที ในโปรเจ็กต์นี้ ควรพบ backend/main.py
งานที่ 3: แสดงเนื้อหาของ Dockerfile หลัก
ฉันเห็นDockerfile นั่นคือพิมพ์เขียวสำหรับคอนเทนเนอร์ของเรา มาดูรายละเอียดกัน เพียงแค่ถาม
Show me the contents of the main Dockerfile.

Gemini จะใช้ read_file เพื่อแสดง Dockerfile คุณสามารถวิเคราะห์อิมเมจฐาน (FROM) การติดตั้งทรัพยากร Dependency (RUN pip install...) และคำสั่งสุดท้าย (CMD) ซึ่งจะบอกคุณเกี่ยวกับสภาพแวดล้อมรันไทม์ของแอปพลิเคชัน
งานที่ 4: วัตถุประสงค์ของไฟล์ main.py คืออะไร
ได้เวลาดูหัวใจของโค้ดแล้ว มาขอความช่วยเหลือจาก Gemini กัน พูดว่า
What's the purpose of the `main.py` file?

ซึ่ง Gemini CLI ช่วยคุณได้ ระบบจะโทรหา read_file ในวันที่ backend/main.py ก่อน จากนั้นโมเดลภาษาแบบมัลติโมดัลจะวิเคราะห์โค้ด Python โดยจะระบุว่าเป็นแอปพลิเคชัน FastAPI ที่มี REST API สำหรับแอปพลิเคชันการสำรวจ จากนั้นจะอธิบายปลายทาง API และฟังก์ชันการทำงานของปลายทางเหล่านั้น ซึ่งจะช่วยประหยัดเวลาในการอ่านและถอดรหัสด้วยตนเอง นอกจากนี้ คุณยังถามคำถามต่อเนื่องเพื่ออธิบายฟังก์ชันการทำงานบางอย่างเหล่านี้โดยละเอียดได้ด้วย เจ๋งใช่ไหมล่ะ ลองเลย
5. จากท้องถิ่นสู่การถ่ายทอดสด การติดตั้งใช้งานด้วย Cloud Run และ Cloud SQL

เอาล่ะ นักผจญภัยในระบบคลาวด์ คุณได้สำรวจพื้นที่แล้ว ตอนนี้ก็ถึงเวลาสร้างบ้านต้นไม้ของคุณเองในระบบคลาวด์แล้ว เราจะนำแอปพลิเคชัน Quickpoll มาสร้างเป็นเว็บแอปแบบเรียลไทม์ที่ทุกคนเข้าชมได้
วัตถุประสงค์: ทำให้แอปพลิเคชัน quickpoll ใช้งานได้ใน Cloud Run โดยมีแบ็กเอนด์ Cloud SQL สำหรับ PostgreSQL
งานที่ 1: กิ่งก้านที่แข็งแรงสำหรับข้อมูลของเรา (การตั้งค่า Cloud SQL)
แอปพลิเคชันที่ดีทุกแอปต้องมีที่เก็บลูกโอ๊กอันแสนล้ำค่า... ฉันหมายถึงข้อมูล เราจะใช้ Cloud SQL สำหรับ PostgreSQL ซึ่งเปรียบเสมือนสวนมหัศจรรย์ที่ดูแลตัวเองได้สำหรับฐานข้อมูลของเรา เพื่อให้เรามุ่งเน้นไปที่เรื่องสนุกๆ ได้
มาขอความช่วยเหลือจาก Gemini CLI เพื่อสร้างฐานข้อมูลกัน
Please create a new Cloud SQL for PostgreSQL instance for me in project <myproject>. Call it quickpoll-db and put it in us-central1. Lets use the Development preset for now, and make the root password a-very-secure-password!.

Gemini CLI จะเริ่มทำงานโดยใช้ส่วนขยาย Cloud SQL โดยจะแสดงการเรียกใช้เครื่องมือ create_instance อนุมัติเลย
เมื่อสร้างอินสแตนซ์แล้ว คุณจะเห็นเอาต์พุตในลักษณะนี้

คุณสามารถสร้างไฟล์ .env ที่มีตัวแปรสภาพแวดล้อมข้างต้นและแหล่งที่มาของตัวแปรนั้นก่อนที่จะรีสตาร์ท Gemini CLI เพื่อให้มีสิทธิ์เข้าถึงตัวแปรเหล่านี้
ในขณะที่อินสแตนซ์ของเรากำลังเติบโต มาเตรียมดินกัน เราต้องมีฐานข้อมูลและผู้ใช้สำหรับแอป
In the quickpoll-db instance, create a new database named quickpolldb.
Gemini CLI จะใช้เครื่องมือ create_database ในส่วนขยาย Cloud SQL สำหรับ PostgreSQL เพื่อสร้างฐานข้อมูลให้คุณ

ตอนนี้มาเพิ่มผู้ใช้เพื่อดูแลกัน
In the quickpoll-db instance, create a built in user named quickpoll-user with the password another-secure-password!.
ในครั้งนี้ Gemini CLI จะใช้เครื่องมือ create_user

งานที่ 2: เส้นทางลับ (การเชื่อมต่อแบ็กเอนด์)
แบ็กเอนด์ของเราต้องทราบเส้นทางลับไปยังฐานข้อมูลใหม่ มาดูที่ backend/main.py เพื่อดูว่าฟังก์ชันนี้ทำงานอย่างไร
show me how would the backend/main.py connect to the database

อ๋อ เห็นไหม โดยจะใช้ Cloud SQL Python Connector และค้นหาตัวแปรสภาพแวดล้อม เช่น CLOUD_SQL_POSTGRES_INSTANCE, CLOUD_SQL_POSTGRES_USER, CLOUD_SQL_POSTGRES_PASSWORD และ CLOUD_SQL_POSTGRES_DATABASE เราจะต้องระบุข้อมูลเหล่านี้ให้กับบริการ Cloud Run
ก่อนอื่น เราต้องมี CLOUD_SQL_POSTGRES_INSTANCE ซึ่งเป็นเหมือนการจับมือลับ
What are the details for the Cloud SQL instance quickpoll-db in us-central1?

คุณจะเห็นรายละเอียดมากมาย มองหาชื่อการเชื่อมต่อและคัดลอกค่านั้น โดยจะมีลักษณะดังนี้ your-project-id:us-central1:quickpoll-db
ตอนนี้ก่อนที่จะทำให้ใช้งานได้แอปพลิเคชันใน Cloud Run เรามาสร้างอินสแตนซ์ฐานข้อมูลด้วยตารางที่จำเป็นกัน เนื่องจากเราได้สร้างฐานข้อมูลและผู้ใช้แยกกันแล้ว ให้ออกจาก Gemini CLI และอัปเดต .env ที่เราสร้างไว้ก่อนหน้านี้ด้วยค่าใหม่
export CLOUD_SQL_POSTGRES_USER=quickpoll-user
export CLOUD_SQL_POSTGRES_PASSWORD=password-you-provided
export CLOUD_SQL_POSTGRES_DATABASE=quickpolldb
ตอนนี้ให้รีสตาร์ท Gemini CLI แล้วป้อนข้อมูลต่อไปนี้
execute backend/database.sql file on quickpolldb database as quickpolluser in quickpoll-db instance

โดยระบบจะทราบโดยอัตโนมัติว่าเครื่องมือexecute_sqlไม่รองรับการเรียกใช้คำสั่ง SQL หลายรายการในการเรียกครั้งเดียว ดังนั้นจึงดำเนินการคำสั่ง SQL แต่ละรายการแยกกัน
งานที่ 3: แบ็กเอนด์ บินเลย! (การติดตั้งใช้งานใน Cloud Run)
ได้เวลาที่แบ็กเอนด์ของเราจะออกจากรังแล้ว เราจะบอกให้ Gemini ทำให้ใช้งานได้โฟลเดอร์แบ็กเอนด์ไปยัง Cloud Run และให้เส้นทางลับไปยังฐานข้อมูล
Deploy the backend folder to a new Cloud Run service called quickpoll-be in us-central1. Here are the secrets (environment variables):
CLOUD_SQL_POSTGRES_INSTANCE=your-project-id:us-central1:quickpoll-db
CLOUD_SQL_POSTGRES_USER=quickpoll-user
CLOUD_SQL_POSTGRES_PASSWORD=password-you-provided
CLOUD_SQL_POSTGRES_DATABASE=quickpolldb
Gemini จะแพ็กเกจโค้ด สร้างอิมเมจคอนเทนเนอร์ และทำให้ใช้งานได้ใน Cloud Run เมื่อเสร็จแล้ว (อาจใช้เวลา 2-3 นาที) คุณจะได้รับ URL สำหรับบริการแบ็กเอนด์ใหม่ อย่าลืมเก็บ URL นี้ไว้

งานที่ 4: ขั้นตอนสุดท้าย (กำหนดค่าและทำให้ฟรอนท์เอนด์ใช้งานได้)
ส่วนหน้าของเราก็เหมือนใบหน้าที่เป็นมิตรของแอปพลิเคชัน โดยต้องทราบตำแหน่งของแบ็กเอนด์ มาบอกกันว่าเราจะไปที่ไหน
Deploy the frontend folder to a new Cloud Run service called quickpoll-fe in us-central1. Here are the secrets (environment variables):
BACKEND_URL=backend-url

งานที่ 5: การเปิดตัวครั้งยิ่งใหญ่
เท่านี้ก็เรียบร้อย ช่วงเวลาแห่งความจริง คัดลอก URL สำหรับบริการ quickpoll-fe แล้วเปิดในเว็บเบราว์เซอร์
คุณควรเห็นแอปพลิเคชัน QuickPoll ที่พร้อมใช้งานและดำเนินการได้ มาเลย สร้างแบบสำรวจ โหวต และดูผลการอัปเดตแบบเรียลไทม์
สำเร็จแล้ว! คุณได้นำโปรเจ็กต์จากเครื่องของคุณมาทำให้ใช้งานได้จริงบน Google Cloud และคุณทำทุกอย่างได้จากเทอร์มินัลอย่างสะดวกสบายด้วย Gemini CLI ซึ่งเป็นคู่หูที่ไว้ใจได้
นี่แหละที่เรียกว่าประสิทธิภาพการทำงาน
6. สำหรับนักพัฒนาแอป - การเร่งวงจรการพัฒนา

เอาล่ะ นักพัฒนาซอฟต์แวร์ ถึงเวลาสนุกกันแล้ว เราได้สำรวจโปรเจ็กต์แล้ว ตอนนี้ก็ถึงเวลาสร้าง ฉันจะแสดงให้คุณเห็นว่า Gemini จะเป็นพาร์ทเนอร์ด้านการเขียนโค้ดที่ดีที่สุดได้อย่างไร โดยจะช่วยให้คุณเปลี่ยนจากไอเดียธรรมดาๆ ไปเป็นโค้ดที่พร้อมใช้งานได้เร็วกว่ากระรอกหาถั่วเสียอีก
จากไอเดียสู่โค้ด
ลองนึกถึงวงจรการพัฒนาทั่วไป ไม่ใช่แค่การเขียนโค้ดใช่ไหม ซึ่งก็คือการวางโครงสร้าง การเพิ่มการจัดการข้อผิดพลาด การปรับโครงสร้าง และการเขียนการทดสอบ Gemini ช่วยคุณได้ทุกอย่าง
งานที่ต้องทำซ้ำๆ และข้อความเทมเพลตที่ต้องใช้บ่อยๆ: ไม่ต้องคัดลอกและวางอีกต่อไป
ตอนนี้คุณมีฟังก์ชันการทำงานพื้นฐานของแอปพลิเคชันแล้ว ตอนนี้คุณต้องเพิ่มการบันทึกและจัดการข้อผิดพลาดที่อาจเกิดขึ้นใช่ไหม ซึ่งมักจะเป็นบล็อก try...except ที่ซ้ำกันจำนวนมาก ปัญหานี้จะหมดไป มาเริ่มกันด้วยการขอให้ Gemini CLI วิเคราะห์โค้ดและแนะนำแนวทางปฏิบัติแนะนำสำหรับการบันทึกข้อผิดพลาดและการจัดการข้อยกเว้น
What are the best practices for error handling and logging that should also be included in this application?

Gemini CLI จะวิเคราะห์ไฟล์ที่มีอยู่และให้คำแนะนำเกี่ยวกับแนวทางปฏิบัติแนะนำ เปรียบเสมือนผู้ช่วยผู้เชี่ยวชาญที่ช่วยประหยัดเวลาในการค้นคว้าข้อมูลเหล่านี้ด้วยตนเอง
ตอนนี้มาขอให้ AI นำคำแนะนำเหล่านี้ไปใช้ให้คุณกัน
please go ahead and implement these in the existing app
เอาต์พุตจริงอาจแตกต่างกันในกรณีของคุณ แต่ในท้ายที่สุดคุณควรเห็นรายละเอียดของการเปลี่ยนแปลงที่ดำเนินการ ตัวอย่างเช่น ในภาพหน้าจอด้านล่าง คุณจะเห็นว่ามีการเพิ่ม structlog เพื่อสร้างบันทึกที่จัดรูปแบบ JSON, ใช้การจัดการข้อยกเว้นแบบรวมศูนย์ และปรับปรุงวิธีบันทึกการตอบกลับคำขอ ลองคิดดูว่าคุณประหยัดเวลาในการพิมพ์ไปได้มากแค่ไหน

การเปลี่ยนโครงสร้างภายในโค้ด: ผู้ตรวจสอบโค้ดส่วนตัว
เราทุกคนต่างต้องการเขียนโค้ดที่สะอาดและมีประสิทธิภาพ แต่บางครั้งเราก็รีบร้อน Gemini สามารถทำหน้าที่เป็นผู้ตรวจสอบโค้ดส่วนตัวให้คุณได้ คุณขอให้ Gemini ทำสิ่งต่อไปนี้ได้
please perform a comprehensive code review for best practices and security


Gemini เข้าใจแนวทางปฏิบัติแนะนำเฉพาะภาษา อีกครั้งที่เอาต์พุตจริงในกรณีของคุณอาจแตกต่างจากภาพหน้าจอด้านบน แต่หากอ่านเอาต์พุต คุณจะเห็นรายละเอียดที่ Gemini CLI ใช้ในการวิเคราะห์โค้ด ซึ่งจะช่วยให้คุณได้เรียนรู้และปรับปรุงโค้ดไปพร้อมๆ กัน
การสร้างแบบทดสอบ: ส่วนที่ดีที่สุด!
นี่เป็นเคล็ดลับที่ฉันชอบที่สุด เราทุกคนทราบดีว่าควรเขียนการทดสอบ แต่การดำเนินการนี้อาจน่าเบื่อ โดยเฉพาะเมื่อต้องจำลองสิ่งต่างๆ ลองดูนี่สิ คุณเพียงแค่ถามว่า
Add a test suite to this application



Gemini จะวิเคราะห์ฟังก์ชัน ระบุอินพุตและเอาต์พุต รวมถึงพิจารณาว่าฟังก์ชันนั้นมีอะไรเป็นทรัพยากรที่ต้องใช้ จากนั้นจะสร้างไฟล์ test_main.py ที่สมบูรณ์พร้อมกรณีทดสอบหลายรายการ รวมถึง "เส้นทางที่ราบรื่น" และอาจมีเงื่อนไขข้อผิดพลาดด้วย ซึ่งจะช่วยเพิ่มประสิทธิภาพการทำงานได้อย่างมาก
ทำการทดสอบ (งานท้าทายสำหรับคุณ)
ตอนนี้เรามาดูสิ่งที่น่าตื่นเต้นกันจริงๆ ดีกว่า เราจะปล่อยให้ส่วนนี้เป็นความท้าทายให้คุณได้สำรวจด้วยตัวเอง คุณสามารถป้อนพรอมต์ให้ Gemini CLI ดำเนินการทดสอบที่สร้างขึ้นได้ จากนั้นก็เพียงนั่งรอชมความมหัศจรรย์ที่เกิดขึ้น
7. นอกเหนือจาก Localhost: การผสานรวมกับ GitHub

เราได้ทำงานที่น่าทึ่งบางอย่างในเครื่องของเรา ซึ่งเป็นมุมเล็กๆ ของเราในป่า แต่พลังที่แท้จริงของระบบคลาวด์คือการทำงานร่วมกันและการเชื่อมต่อ ถึงเวลาออกบินและดูว่า Gemini โต้ตอบกับโลกกว้างได้อย่างไร โดยเริ่มจากต้นไม้ที่ใหญ่ที่สุดในป่าของนักพัฒนาซอฟต์แวร์ นั่นก็คือ GitHub
แนวคิด: ผู้ช่วย DevOps แบบผสานรวม
ที่ผ่านมา เราใช้ Gemini เป็นเพื่อนร่วมเขียนโค้ดในเครื่อง ตอนนี้เราจะอัปเกรดให้เป็น Integrated DevOps Assistant อย่างเต็มรูปแบบ ทั้งหมดนี้เป็นผลมาจากการผสานรวม Model Context Protocol (MCP) แม้จะเป็นชื่อที่ดูซับซ้อน แต่ก็หมายความว่า Gemini สามารถพูดคุยกับบริการอื่นๆ ในนามของคุณได้อย่างปลอดภัย และบริการแรกที่เราจะเชี่ยวชาญคือ GitHub
ลองคิดดู คุณต้องออกจากเทอร์มินัลเพื่อตรวจสอบคำขอ Pull Request สร้างปัญหา หรือเรียกดูที่เก็บใน GitHub บ่อยแค่ไหน ซึ่งเป็นการเปลี่ยนบริบทมากขึ้น github ชุดเครื่องมือช่วยให้คุณทำทุกอย่างได้ที่นี่ ซึ่งจะเปลี่ยน Gemini ให้เป็นอินเทอร์เฟซดั้งเดิมสำหรับ GitHub
เอกสารประกอบเซิร์ฟเวอร์ MCP อย่างเป็นทางการของ GitHub มีคำแนะนำมากมายเกี่ยวกับเครื่องมือและตัวเลือกการกำหนดค่าที่เปิดเผย คุณเลือกการดำเนินการในเครื่องหรือระยะไกลได้ตามต้องการ เนื่องจาก Gemini CLI รองรับเซิร์ฟเวอร์ MCP ทั้งในเครื่องและระยะไกลอย่างเต็มที่
บทแนะนำนี้จะแนะนำวิธีตั้งค่าตัวเลือกเซิร์ฟเวอร์ MCP ระยะไกลสำหรับ GitHub ก่อนอื่น คุณจะต้องมีโทเค็นเพื่อการเข้าถึงส่วนบุคคล (PAT) จาก GitHub
เมื่อได้ PAT แล้ว ก็ถึงเวลาเพิ่มออบเจ็กต์เซิร์ฟเวอร์ MCP ลงในไฟล์ settings.json การตั้งค่า settings.json ทั้งหมดของฉันแสดงอยู่ด้านล่าง แต่คุณเพียงแค่ต้องตรวจสอบว่าออบเจ็กต์ mcpServers ตรงกับสิ่งที่คุณเห็นที่นี่
{
"security": {
"auth": {
"selectedType": "vertex-ai"
}
},
"mcpServers": {
"github": {
"httpUrl": "https://api.githubcopilot.com/mcp/",
"headers": {
"Authorization": "GITHUB_PAT"
},
"timeout": 5000
}
}
}
หลังจากอัปเดต settings.json ด้วยการกำหนดค่าเซิร์ฟเวอร์ MCP ของ GitHub แล้ว ให้รีสตาร์ท Gemini CLI หรือเรียกใช้คำสั่ง /mcp refresh ภาพหน้าจอด้านล่างแสดงให้เห็นเซิร์ฟเวอร์ MCP ของ GitHub ที่พร้อมใช้งานในระบบของฉันแล้ว ซึ่งแสดงเครื่องมือที่มีประสิทธิภาพมากมายที่ Gemini CLI สามารถใช้ได้ด้วย Model Context Protocol

ตัวอย่างคำสั่งแป้นพิมพ์ที่สำคัญ
Gemini มาพร้อมชุดพลังพิเศษใหม่ล่าสุดสำหรับ GitHub โดยเฉพาะ ตัวอย่างบางส่วนที่ฉันชื่นชอบมีดังนี้
github.list_repositories: หากต้องการดูที่เก็บทั้งหมดในองค์กรโดยไม่ต้องเปิดเบราว์เซอร์ นี่คือเครื่องมือของคุณ เพียงถามว่า "แสดงรายการที่เก็บข้อมูลทั้งหมดในองค์กรของฉัน"github.create_issue: หากพบข้อบกพร่อง อย่าเปลี่ยนหน้าต่างเพื่อสร้างปัญหา คุณเพียงแค่บอก Gemini ว่า "สร้างปัญหาในรีโปsample-flask-appชื่อ "แก้ไขข้อบกพร่องในการเข้าสู่ระบบ" พร้อมคำอธิบายนี้..." แล้วปิ๊ง ระบบก็จะสร้างปัญหาให้github.get_pull_request: หากต้องการตรวจสอบคำขอประชาสัมพันธ์ คุณสามารถถามว่า "แสดงรายละเอียดของ PR หมายเลข 42 ในsample-flask-apprepo" Gemini จะดึงข้อมูลชื่อ คำอธิบาย สถานะ และผู้ตรวจสอบgithub.get_file_contents: อันนี้เจ๋งสุดๆ คุณอ่านไฟล์จากที่เก็บระยะไกลได้โดยไม่ต้องโคลนก่อน เหมาะสำหรับการตรวจสอบไฟล์การกำหนดค่าหรือ README ของโปรเจ็กต์ที่คุณไม่มีในเครื่องอย่างรวดเร็ว
8. การสำรวจ GitHub

พอแค่นี้ ไปบินกันเลย เราจะใช้ความสามารถใหม่ของ GitHub เพื่อสำรวจองค์กรและโปรเจ็กต์ต่างๆ ได้อย่างสะดวกสบายจากเทอร์มินัล
วัตถุประสงค์: ใช้ Gemini เพื่อสำรวจและทำความเข้าใจโปรเจ็กต์ที่โฮสต์ใน GitHub
สถานการณ์: คุณต้องทำความคุ้นเคยกับโปรเจ็กต์ใน GitHub ที่คุณไม่เคยทำงานด้วยมาก่อน
งานที่ 1: แสดงรายการที่เก็บในองค์กร
ก่อนอื่น มาดูโปรเจ็กต์ทั้งหมดในองค์กร GitHub กัน สำหรับแล็บนี้ คุณสามารถใช้ชื่อผู้ใช้ GitHub ของคุณเองหรือองค์กรที่คุณเป็นสมาชิก มาขอความช่วยเหลือจาก Gemini ให้แสดงรายการกัน
List the repositories in the `[your-org-or-username]` GitHub organization.
(อย่าลืมแทนที่ [your-org-or-username] ด้วยข้อมูลจริงของคุณ) Gemini จะใช้เครื่องมือ github.list_repositories และแสดงรายการโปรเจ็กต์ทั้งหมดให้คุณ ยอดเยี่ยม!
งานที่ 2: ค้นหารีโปซิโทรีที่เฉพาะเจาะจง
คุณจะเห็นรายการที่เก็บ ตอนนี้คุณต้องสแกนรายการนั้นและค้นหาโปรเจ็กต์ที่สนใจเหมือนกับนักพัฒนาแอปจริงๆ สำหรับ Lab นี้ ให้สมมติว่าเรากำลังมองหาที่เก็บข้อมูล quickpoll ที่เราโคลนไว้ก่อนหน้านี้ คุณไม่จำเป็นต้องใช้คำสั่งสำหรับส่วนนี้ เพียงแค่อ่านเอาต์พุตจากขั้นตอนสุดท้ายแล้วค้นหารีโป
งานที่ 3: แสดงรายการคำขอพุลที่เปิดอยู่
เมื่อระบุที่เก็บเป้าหมายแล้ว มาดูกันว่าเกิดอะไรขึ้นกับที่เก็บนั้น มีคำขอ Pull Request ที่เปิดอยู่ไหม มาถามกัน
List the open pull requests for the `quickpoll` repository in the `[your-org-or-username]` organization.
Gemini จะใช้เครื่องมือ github.list_pull_requests โดยกรองหาข้อมูลของรัฐ open จากนั้นจะแสดง PR ที่เปิดอยู่ โดยแสดงหมายเลข PR ชื่อ และผู้สร้าง ซึ่งจะช่วยให้คุณเห็นภาพรวมของการพัฒนาโปรเจ็กต์ที่กำลังดำเนินการอยู่ได้ทันที คุณลองใช้กับที่เก็บที่กำลังมีส่วนร่วมอยู่และตรวจสอบผลลัพธ์ได้

งานที่ 4: ตรวจสอบคำขอ Pull
สมมติว่ามีคำขอพุลรีเควสต์ที่น่าสนใจในรายการนั้น เราอยากทราบข้อมูลเพิ่มเติมเกี่ยวกับเรื่องนี้ เราต้องการดูคำอธิบายและไฟล์ที่มีการเปลี่ยนแปลง เลือกหมายเลข PR จากรายการ (หากไม่มี คุณสามารถข้ามขั้นตอนนี้ได้ แต่สมมติว่ามี)
Show me the details and files changed in PR number 1 in the `quickpoll` repo.
นี่เป็นตัวอย่างที่ดีของงานแบบหลายขั้นตอนสำหรับ Gemini โดยก่อนอื่นจะใช้ github.get_pull_request เพื่อดึงรายละเอียดหลัก ได้แก่ ชื่อ เนื้อหา ผู้เขียน ฯลฯ จากนั้นจะใช้เครื่องมือที่ 2 คือ github.get_pull_request_files เพื่อดูการเปลี่ยนแปลงไฟล์ จากนั้นจะรวมข้อมูลทั้งหมดนี้เป็นข้อมูลสรุปที่ดูดีและสะอาดตาให้คุณ คุณเพิ่งตรวจสอบ PR โดยไม่ต้องออกจากเทอร์มินัลเลย สุดยอดไปเลยใช่ไหม
9. จาก PRD ไปจนถึงการคอมมิตครั้งแรก

คุณได้เรียนรู้วิธีสำรวจ สร้าง และทดสอบแล้ว ตอนนี้เราจะนำทุกอย่างมารวมกันในสถานการณ์จริง นี่คือช่วงเวลาที่เราเปลี่ยนแผนให้กลายเป็นผลิตภัณฑ์ เราจะเริ่มตั้งแต่เอกสารข้อกำหนดของผลิตภัณฑ์ (PRD) ไปจนถึงคอมมิตแรก มาสร้างสรรค์สิ่งเจ๋งๆ กันเถอะ
วัตถุประสงค์: จำลองงานพัฒนาในโลกแห่งความเป็นจริงตั้งแต่ต้นจนจบ โดยรวมบริบทในเครื่องและระยะไกลเข้าด้วยกัน
สถานการณ์: ระบบกำหนดฟีเจอร์ใหม่ให้คุณ ข้อกำหนดรอคุณอยู่ในไฟล์ PRD ภายในที่เก็บ GitHub ของโปรเจ็กต์
งานที่ 1: ทำความเข้าใจ - อ่าน PRD
ขั้นตอนนี้สำคัญที่สุด ก่อนที่จะคิดถึงการเขียนโค้ดแม้แต่บรรทัดเดียว คุณต้องเข้าใจแผนอย่างถ่องแท้ ข้อกำหนดของฟีเจอร์ใหม่ของเราอยู่ในไฟล์ prd/NEW_FEATURE.md มาเปิดดูข้างในกัน
explain the requirements mentioned in prd/NEW_FEATURE.md
Gemini CLI จะใช้ read_file เพื่อแสดงเนื้อหาของ PRD มาเริ่มกันเลย โดยจะอธิบายฟีเจอร์ใหม่ ซึ่งก็คือปุ่มรีเฟรชเพื่อให้ผู้ใช้อัปเดตรายการโพลที่ใช้งานอยู่ได้ด้วยตนเอง โปรดดูพิมพ์เขียวเสมอ

งานที่ 2: โค้ด - แปลงข้อกำหนดให้เป็นจริง
นี่คือช่วงเวลาที่น่ามหัศจรรย์ เราจะนำข้อกำหนดจาก PRD และขอความช่วยเหลือจาก Gemini ให้เขียนโค้ดให้เรา เรามาเจาะจงและบอกสิ่งที่ต้องการอย่างชัดเจนกัน
Implement the changes as per the PRD
Gemini CLI จะเริ่มทำงาน และหลังจากนั้นไม่นาน คุณจะเห็นเอาต์พุตคล้ายกับตัวอย่างนี้ ตอนนี้โค้ดใหม่ของเรามีบ้านหลังใหม่แล้ว

งานที่ 3: ยืนยันการเปลี่ยนแปลง
เราได้สร้างไฟล์ใหม่ที่มีโค้ดใหม่แล้ว ขั้นตอนสุดท้ายของแล็บนี้คือการนำการเปลี่ยนแปลงไปใช้กับ Cloud Run และยืนยัน
let's deploy the changes made to frontend to Cloud Run. The existing service on Cloud Run is quickpoll-fe in us-central1.
โปรดสังเกตว่าพรอมต์ดังกล่าวให้รายละเอียดเพิ่มเติม เช่น ชื่อบริการ Cloud Run ที่มีอยู่และภูมิภาคการทำให้ใช้งานได้ การระบุรายละเอียดอย่างเจาะจงจะช่วยประหยัดเวลาได้ แต่ Gemini CLI จะแจ้งให้คุณระบุรายละเอียดที่ขาดหายไปเสมอหากคุณไม่ได้ระบุ
หากบริการ Cloud Run ที่อัปเดตแล้วพบข้อผิดพลาด เพียงแค่แจ้ง Gemini CLI ให้แก้ไขข้อบกพร่องและแก้ไขโค้ด อย่าลืมว่า Gemini เป็นคู่หูที่มีพลังวิเศษของคุณ
10. ขอแสดงความยินดี

เพียงเท่านี้ก็เรียบร้อย คุณเพิ่งเสร็จสิ้นวงจรการพัฒนาทั้งหมด คุณเปลี่ยนจากเอกสารข้อกำหนดไปเป็นฟีเจอร์ใหม่ที่พร้อมที่จะคอมมิตและพุช คุณได้รวมบริบทในเครื่อง บริบทระยะไกล การดำเนินการในระบบไฟล์ และการสร้างโค้ด คุณไม่ได้เป็นเพียงนักพัฒนาซอฟต์แวร์ แต่เป็นสถาปนิกระบบคลาวด์ที่มีประสิทธิภาพสูง ยินดีด้วย