1. ก่อนเริ่มต้น
Codelab นี้แสดงวิธีเตรียม Gemini Code Assist เพื่อให้คำแนะนำในการปรับแต่งโค้ดที่ปรับให้เหมาะกับที่เก็บข้อมูลส่วนตัวของคุณ ซึ่งจะช่วยให้ผลลัพธ์จาก Code Assist มีประโยชน์มากขึ้นอย่างมาก โดยเฉพาะอย่างยิ่งสำหรับทีมที่มีแบบแผนเฉพาะสำหรับงานที่คล้ายกันซึ่งมักจะทำซ้ำ โปรดวางใจได้ว่าการอนุญาตให้ Gemini จัดทำดัชนีโค้ดเบสส่วนตัวสำหรับฟีเจอร์นี้ไม่ได้ทำให้ Gemini ฝึกโมเดลในโค้ดส่วนตัวของคุณในวงกว้าง
นอกจากนี้ เราจะพูดถึงวิธียกเว้นไฟล์ที่มีความละเอียดอ่อนหรือไม่เกี่ยวข้องจากการพิจารณาการปรับแต่งโค้ดด้วยไฟล์ .aiexclude
ข้อกำหนดเบื้องต้น
- ความเข้าใจพื้นฐานเกี่ยวกับ Gemini Code Assist และสิทธิ์เข้าถึงโปรเจ็กต์ที่เปิดใช้
- มีความรู้เกี่ยวกับภาษาการเขียนโค้ดที่รองรับสำหรับการปรับแต่งโค้ด
- ความสามารถในการสร้างทรัพยากรใน
us-central1หรือeurope-west1เนื่องจากต้องมีการเชื่อมต่อ Developer Connect ในสถานที่ตั้งเหล่านั้นเพื่อปรับแต่งโค้ด - Google Cloud CLI ที่ได้รับการตรวจสอบสิทธิ์และเป็นเวอร์ชันล่าสุด
สิ่งที่คุณจะได้เรียนรู้
- วิธีใช้การปรับแต่งโค้ดใน Gemini Code Assist Enterprise
- กรณีการใช้งานหนึ่งในหลายๆ กรณีที่การปรับแต่งโค้ดช่วยให้ทีมของคุณประหยัดเวลาได้
สิ่งที่ต้องมี
- โปรเจ็กต์ Google Cloud ที่เปิดใช้ Gemini Code Assist
- ที่เก็บส่วนตัวเพื่อจัดทำดัชนีสำหรับคำขอปรับแต่ง
- เวลาในการจัดทำดัชนีโค้ดสำหรับคำขอปรับแต่ง ขั้นตอนนี้อาจใช้เวลาถึง 24 ชั่วโมง
- IDE ที่ติดตั้ง Gemini Code Assist
2. บริบท
หากต้องการลองปรับแต่งโค้ด คุณจะต้องมี 2 สิ่งต่อไปนี้
- สิทธิ์เข้าถึงโปรเจ็กต์ Google Cloud ที่เปิดใช้ Gemini
- และที่เก็บข้อมูลส่วนตัวเพื่อแจ้งคำตอบของ Gemini

ที่เก็บข้อมูลที่เหมาะสมที่สุดสำหรับ Gemini ในการจัดทำดัชนีควรมีโค้ดที่มักจะนำกลับมาใช้ซ้ำทั่วทั้งองค์กร ที่เก็บตัวอย่างที่ระบุไว้สำหรับโค้ดแล็บนี้มีเว็บเซอร์วิส Spring Boot มาตรฐาน พร้อมโฟลเดอร์ของออบเจ็กต์การโอนข้อมูล (DTO) ที่ตรงตามเกณฑ์นี้ เนื่องจากระบบจะสร้างคลาสที่คล้ายกันเพื่ออธิบายแต่ละเอนทิตีในฐานข้อมูลขณะที่ส่งไปยังเลเยอร์การนำเสนอ
3. (ไม่บังคับ) การตั้งค่าที่เก็บ
หากต้องการใช้ที่เก็บตัวอย่างแทนที่เก็บส่วนตัวของคุณเอง ให้ทำตามขั้นตอนต่อไปนี้ในโปรแกรมแก้ไขเทอร์มินัลที่คุณเลือกหรือใน Cloud Shell เริ่มต้นด้วยการสร้างที่เก็บข้อมูลส่วนตัวเพื่อช่วยให้เราเห็นการปรับแต่งโค้ดในการทำงาน
mkdir customization-starter
cd customization-starter
curl https://start.spring.io/starter.zip -d dependencies=web,lombok \
-d javaVersion=21 \
-d type=maven-project \
-d bootVersion=3.3.4 -o cc-starter.zip
unzip cc-starter.zip
rm cc-starter.zip
pushd src/main/java/com/example/demo
mkdir dtos
touch dtos/LedgerDTO.java
เพิ่มโค้ดต่อไปนี้ลงในไฟล์ LedgerDTO
package com.example.demo.dtos;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;
@Getter
@Setter
@Accessors(chain = true)
public class LedgerEntryDto {
private Long id;
private String accountName;
private double amount;
private String transactionType;
private String description;
private java.util.Date transactionDate;
}
ซึ่งจะเพียงพอที่จะแสดงให้เห็นว่าระบบจะสร้างตัวช่วยเข้าถึงและฟังก์ชันอื่นๆ ที่ผู้ร่วมให้ข้อมูลในฐานโค้ดนี้คาดหวังว่าจะใช้ได้อย่างถูกต้องเมื่อเปิดใช้การปรับแต่งโค้ด
สร้างที่เก็บใหม่ โดยอย่าลืมตั้งค่าให้เป็นแบบส่วนตัว ทำตามขั้นตอนด้านล่างเพื่อพุชโปรเจ็กต์เริ่มต้นไปยังที่เก็บใหม่
popd
gh auth login
git init
git add .
git commit -m "code customization starter"
git remote add origin git@github.com:<YOUR_GITHUB_ID>/customization-starter.git
git branch -M main
git push -u origin main
4. การยกเว้นไฟล์
ก่อนให้สิทธิ์เข้าถึงที่เก็บส่วนตัวแก่ Gemini คุณควรทำความเข้าใจวิธียกเว้นไฟล์ที่ไม่เกี่ยวข้องหรือไฟล์ที่มีความละเอียดอ่อนซึ่งทีมของคุณไม่ต้องการให้มีการจัดทำดัชนี ระบบจะใช้.aiexcludeไฟล์เพื่อดำเนินการนี้ ซึ่งคล้ายกับ.gitignore แต่มีข้อแตกต่างที่สำคัญบางประการ ดังนี้
- ไฟล์
.aiexcludeที่ว่างเปล่าจะบล็อกไฟล์ทั้งหมดในไดเรกทอรีและไดเรกทอรีย่อยทั้งหมด- ซึ่งจะเหมือนกับไฟล์ที่มี
**/*
- ซึ่งจะเหมือนกับไฟล์ที่มี
- ไฟล์
.aiexcludeไม่รองรับการปฏิเสธ (การนำหน้าด้วยรูปแบบ!)
ด้วยเหตุนี้ ให้ลองพิจารณาประเภทไฟล์หรือไดเรกทอรีที่ทีมของคุณต้องการยกเว้น และแสดงรายการแต่ละรายการในบรรทัดแยกกัน
#Block all files with .key extensions
*.key
#Block all files under sensitive/dir
my/sensitive/dir/
#Block all .key files under sensitive/dir
my/sensitive/dir/ /.key
5. กำหนดค่า Developer Connect
Developer Connect เป็นบริการที่ช่วยให้การเชื่อมต่อและลิงก์ไปยังที่เก็บโค้ดส่วนตัวใน GitHub หรือ GitLab เป็นไปได้ นี่คือกลไกที่ช่วยให้ Gemini Code Assist เชื่อมต่อกับที่เก็บข้อมูลส่วนตัวได้อย่างปลอดภัย เพื่อสร้างดัชนีที่จะใช้ปรับปรุงคำตอบ
แนวคิดทั้ง 2 นี้มีประโยชน์ในการทำความเข้าใจวิธีที่ Developer Connect ให้สิทธิ์เข้าถึงโค้ดของคุณอย่างปลอดภัย
การเชื่อมต่อ
- แสดงถึงการเชื่อมต่อระหว่าง Google กับแพลตฟอร์มการจัดการซอร์สโค้ดของบุคคลที่สาม
ลิงก์
- แสดงถึงการเชื่อมโยงกับที่เก็บซอร์สโค้ดแต่ละรายการที่คุณเลือกภายในแพลตฟอร์มการจัดการซอร์สโค้ดที่เชื่อมต่อ
เมื่อทราบแนวคิดดังกล่าวแล้ว ให้เริ่มต้นด้วยการไปที่หน้าDeveloper Connect เพื่อเปิดใช้ API สำหรับโปรเจ็กต์

จากนั้นทำตามขั้นตอนที่เหมาะสมเพื่อสร้างการเชื่อมต่อและลิงก์สำหรับ GitHub หรือ GitLab ระบบจะสร้างทั้ง 2 แหล่งข้อมูลในระหว่างกระบวนการของวิซาร์ด

ทำขั้นตอนเหล่านี้ซ้ำเพื่อสร้างลิงก์สำหรับแต่ละที่เก็บที่คุณต้องการให้ฟีเจอร์การปรับแต่งโค้ดของ Gemini นำไปพิจารณาในคำตอบ คุณสามารถใช้การเชื่อมต่อที่มีอยู่ซ้ำได้หากที่เก็บหลายรายการมาจากแพลตฟอร์มเดียวกัน
6. สร้างและเชื่อมต่อกับดัชนี
การปรับแต่งโค้ดจะขึ้นอยู่กับดัชนีเพื่อให้แยกวิเคราะห์และวิเคราะห์ที่เก็บได้อย่างรวดเร็ว จดชื่อดัชนี (INDEX_NAME) ที่คุณใช้ เนื่องจากคุณจะต้องใช้ในขั้นตอนถัดไป
หากต้องการสร้างดัชนี ให้เรียกใช้คำสั่งต่อไปนี้
gcloud gemini code-repository-indexes create <INDEX_NAME> \
--project=<YOUR_PROJECT_ID> \
--location=<REGION>
หากพบInvalid choice: ...ข้อผิดพลาด โปรดตรวจสอบว่า Google Cloud CLI เป็นเวอร์ชันล่าสุดโดยเรียกใช้คำสั่งต่อไปนี้
gcloud components update
จากนั้นอนุญาตให้เข้าถึงดัชนีโดยสร้างกลุ่มที่เก็บข้อมูล
gcloud gemini code-repository-indexes repository-groups create REPOSITORY_GROUP \
--project=PROJECT_ID \
--location=REGION \
--code-repository-index=INDEX_NAME \
--repositories='[{"resource": "projects/PROJECT_ID/locations/REGION/connections/INDEX_CONNECTION/gitRepositoryLinks/REPOSITORY", "branch_pattern": "BRANCH_NAMES"}]'
แทนที่ค่าต่อไปนี้
- REPOSITORY_GROUP: ชื่อของกลุ่มที่เก็บที่คุณกำลังจะสร้าง
- PROJECT_ID: รหัสโปรเจ็กต์ Google Cloud
- INDEX_NAME: ชื่อดัชนีที่คุณกําหนดในขั้นตอนก่อนหน้าเพื่อสร้างดัชนี
- REGION: ภูมิภาคที่รองรับจากรายการในเอกสารประกอบที่คุณกําหนดค่าใน Developer Connect ในโปรเจ็กต์ Google Cloud
- INDEX_CONNECTION: การเชื่อมต่อของดัชนีที่คุณสร้างในขั้นตอนก่อนหน้าเพื่อสร้างดัชนี
- REPOSITORY: ที่เก็บที่คุณต้องการจัดทำดัชนี คุณต้องระบุที่เก็บอย่างน้อย 1 รายการ และระบุที่เก็บหลายรายการได้ตามต้องการ
- BRANCH_NAMES: ชื่อของสาขาที่คุณต้องการจัดทำดัชนี เช่น main หรือ dev
การจัดทำดัชนีเนื้อหาอาจใช้เวลานานถึง 24 ชั่วโมง ทั้งนี้ขึ้นอยู่กับจำนวนที่เก็บที่ต้องการจัดทำดัชนีและขนาดของที่เก็บ การจัดทำดัชนีจะเกิดขึ้นทุกๆ 24 ชั่วโมง โดยจะเลือกการเปลี่ยนแปลงที่ทำในที่เก็บ คุณดูขั้นตอนเหล่านี้เพื่อตรวจสอบสถานะการสร้างดัชนีได้

สุดท้าย ให้สิทธิ์เข้าถึงกลุ่มแก่ผู้ใช้หลักที่ต้องการโดยทำดังนี้
gcloud projects add-iam-policy-binding PROJECT_ID \
--member='PRINCIPAL' \
--role='roles/cloudaicompanion.repositoryGroupsUser'
7. สร้างโค้ดที่ปรับแต่งเอง
ตอนนี้ Gemini มีสิทธิ์เข้าถึงโค้ดในที่เก็บส่วนตัวของคุณแล้ว เราจึงคาดหวังได้ว่าจะเห็นข้อมูลโค้ดที่เกี่ยวข้องปรากฏในคำขอการเติมโค้ด ในที่เก็บตัวอย่าง เราสามารถไปที่โฟลเดอร์ DTO และเมื่อสร้างคลาสใหม่เพื่อแสดงออบเจ็กต์ใหม่ คุณจะเห็นคำอธิบายประกอบที่คาดไว้ปรากฏขึ้นขณะที่เราพิมพ์

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