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
- Use Case 1 ในหลายกรณีซึ่งการปรับแต่งโค้ดช่วยประหยัดเวลาให้กับทีมได้
สิ่งที่ต้องมี
- โปรเจ็กต์ Google Cloud ที่เปิดใช้ Gemini Code Assist
- ที่เก็บข้อมูลส่วนตัวสำหรับจัดทำดัชนีคำขอการปรับแต่ง
- เวลาที่จะใช้ดัชนีโค้ดสําหรับคําขอการปรับแต่ง ขั้นตอนนี้อาจใช้เวลาถึง 24 ชั่วโมง
- IDE ที่ติดตั้ง Gemini Code Assist
2. บริบท
หากต้องการลองปรับแต่งโค้ด คุณต้องมี 2 อย่างต่อไปนี้
- สิทธิ์เข้าถึงโปรเจ็กต์ Google Cloud ที่เปิดใช้ Gemini
- และที่เก็บข้อมูลส่วนตัวเพื่อแจ้งคำตอบของ Gemini
ที่เก็บข้อมูลที่เหมาะที่สุดสำหรับ Gemini ในการจัดทำดัชนีจะมีโค้ดที่ใช้ซ้ำกันทั่วทั้งองค์กร ที่เก็บตัวอย่างที่ให้มาสำหรับโค้ดแล็บนี้มีเว็บเซอร์วิส Spring Boot มาตรฐานที่มีโฟลเดอร์ออบเจ็กต์การโอนข้อมูลที่ตรงกับเกณฑ์นี้ เนื่องจากระบบจะสร้างคลาสที่คล้ายกันเพื่ออธิบายเอนทิตีแต่ละรายการในฐานข้อมูลขณะที่ส่งไปยังเลเยอร์การนำเสนอ
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: ชื่อของดัชนีที่คุณกำหนดในขั้นตอนก่อนหน้าเพื่อสร้างดัชนี
- ภูมิภาค: ภูมิภาคที่รองรับจากรายการในเอกสารประกอบที่คุณได้กำหนดค่าใน 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 แล้ว ตอนนี้คุณสามารถปรับแต่งคำตอบให้เหมาะกับโค้ดเบสส่วนตัวของทีมได้ พรอมต์และการเติมโค้ดแต่ละรายการจึงมีคุณค่าต่อนักพัฒนาซอฟต์แวร์ในทีมมากขึ้น
โปรดอ่านเอกสารและเนื้อหาอื่นๆ เหล่านี้เพื่อดูข้อมูลเพิ่มเติมและรับการสนับสนุนเกี่ยวกับเรื่องต่างๆ เช่น การตั้งค่าบทบาท IAM