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 สามารถเรียกใช้คำสั่ง ตรวจสอบว่าคำสั่งล้มเหลวหรือไม่ แล้วพยายามแก้ไขตามข้อความแสดงข้อผิดพลาด - The Safety Net: นี่คือส่วนที่ฉันชอบที่สุด ก่อนที่จะมีการเรียกใช้
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เครื่องมือ ค้นหาสังเคราะห์ที่ถูกต้องสำหรับแต่ละ Flag และสร้างคำสั่งที่ซับซ้อนให้คุณ จากนั้นจะแสดงให้คุณอนุมัติ ซึ่งช่วยให้คุณมองเห็นภาพรวมได้ ไม่ใช่แค่จำ Flag บรรทัดคำสั่ง
ขยายขีดความสามารถของ 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 ก่อนอื่นให้เปิดใช้โดยเรียกใช้คำสั่ง 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) ก็จะถามคุณว่าควรใช้แผนดังกล่าวหรือไม่
Safety Net (คำสัญญาของฉันที่มีต่อคุณ)
การเรียกใช้คำสั่งอาจดูน่ากลัว เราเข้าใจ ด้วยเหตุนี้ เครือข่ายความปลอดภัยจึงมีความสำคัญอย่างยิ่ง เมื่อโมเดลสร้างบล็อก 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 ใช้งานได้ใน 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

อ๋อ เห็นไหม โดยจะใช้ตัวเชื่อมต่อ Python ของ Cloud SQL และค้นหาตัวแปรสภาพแวดล้อม เช่น 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: การบูรณะ Grand Unveiling
เท่านี้ก็เรียบร้อย ถึงเวลาพิสูจน์แล้ว คัดลอก 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 สามารถทำหน้าที่เป็นผู้ตรวจสอบโค้ดส่วนตัวให้คุณได้ คุณขอให้ฟีเจอร์นี้ทำสิ่งต่างๆ ได้ เช่น
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
ลองคิดดู คุณต้องออกจากเทอร์มินัลเพื่อตรวจสอบคำขอดึงข้อมูล สร้างปัญหา หรือเรียกดูที่เก็บใน 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 ภาพหน้าจอด้านล่างแสดงให้เห็นว่าตอนนี้เซิร์ฟเวอร์ GitHub MCP พร้อมใช้งานในระบบของฉันแล้ว ซึ่งแสดงให้เห็นถึงเครื่องมือที่มีประสิทธิภาพมากมายที่ Gemini CLI สามารถใช้ได้ด้วยโปรโตคอลบริบทของโมเดล

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

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