เอกสารนี้อธิบายวิธีตั้งค่าการปรับแต่งโค้ดของ Gemini Code Assist โดยเชื่อมต่อ Gemini Code Assist กับที่เก็บโค้ดส่วนตัว ฟีเจอร์นี้ช่วยให้คุณได้รับคําแนะนําโค้ดซึ่งดึงมาจากไลบรารีภายใน, API ส่วนตัว และสไตล์การเขียนโค้ดขององค์กร
ก่อนเริ่มต้น
- ตั้งค่า Gemini Code Assist ด้วยการสมัครใช้บริการ Enterprise
- สร้างหรือกำหนดค่าบัญชีผู้ใช้ปลายทาง นักพัฒนาแอปทุกคนในองค์กรที่ใช้ Gemini Code Assist ต้องมีข้อมูลประจำตัวของผู้ใช้ใน Google Cloud ที่มีสิทธิ์เข้าถึงโปรเจ็กต์ Google Cloud ของคุณ ดูข้อมูลเพิ่มเติมได้ที่มอบบทบาทใน Google Cloud Console ตรวจสอบว่าผู้ใช้แต่ละคนมีบทบาทต่อไปนี้
กำหนดค่า Developer Connect แล้วเชื่อมต่อกับที่เก็บ GitHub.com, GitLab.com หรือ Bitbucket.org ดังนี้
- เชื่อมต่อกับ GitHub
- เชื่อมต่อกับ GitHub Enterprise Cloud
- เชื่อมต่อกับ GitHub Enterprise
- เชื่อมต่อกับ GitLab
- เชื่อมต่อกับ GitLab Enterprise
- เชื่อมต่อกับ Bitbucket Cloud
- เชื่อมต่อกับศูนย์ข้อมูล Bitbucket
นอกจากนี้ โปรดทราบว่าการปรับแต่งโค้ดรองรับการเชื่อมต่อ Developer Connect เฉพาะในสถานที่ (ภูมิภาค) ต่อไปนี้เท่านั้น
us-central1
europe-west1
asia-southeast1
ในสภาพแวดล้อมเชลล์ ให้เรียกใช้คำสั่ง
gcloud components update
เพื่อตรวจสอบว่าคุณได้อัปเดตคอมโพเนนต์ที่ติดตั้งไว้ทั้งหมดของ gcloud เป็นเวอร์ชันล่าสุดแล้ว ในขั้นตอนนี้ คุณสามารถติดตั้งและเริ่มต้นใช้งาน gcloud หรือจะใช้เครื่องมือแก้ไข Cloud Shell ก็ได้gcloud components update
เลือกที่เก็บส่วนตัวที่จะเชื่อมต่อ
แนวทางปฏิบัติแนะนำคือให้เชื่อมต่อที่เก็บข้อมูลต่อไปนี้
- มีโค้ดที่มีสไตล์หรือโครงสร้างคล้ายกับสิ่งที่ต้องการให้นักพัฒนาซอฟต์แวร์เขียน
- มีไลบรารีหรือ API ส่วนตัวที่คุณต้องการเรียกใช้จากฐานโค้ดปัจจุบัน
(ไม่บังคับ) เลือกไฟล์ที่จะไม่จัดทำดัชนี
โดยค่าเริ่มต้น การปรับแต่งโค้ดจะจัดทำดัชนีไฟล์โค้ดที่รองรับทั้งหมดในที่เก็บข้อมูลที่ระบุในหลายกรณี คุณอาจมีไฟล์หรือซับต้นไม้ที่เฉพาะเจาะจงซึ่งไม่ต้องการให้จัดทำดัชนี เช่น
- ข้อมูลที่ละเอียดอ่อนสูงที่มีการเข้าถึงแบบจำกัดภายในองค์กร
- โค้ดเก่าหรือเลิกใช้งานแล้ว
- รหัสชั่วคราวหรือรหัสที่สร้างขึ้นโดยอัตโนมัติ
หากต้องการป้องกันไม่ให้โค้ดที่คุณไม่ต้องการให้จัดทําดัชนีแสดง ให้ใช้รูปแบบสาขาเพื่อควบคุมการเข้าถึงดัชนีและใช้สาขาที่เสถียร เช่น main
หรือจะยกเว้นไฟล์จากดัชนีโดยสร้างไฟล์ .aiexclude
ก็ได้
สร้างดัชนี
การปรับแต่งโค้ดอาศัยดัชนีเพื่อวิเคราะห์และแยกวิเคราะห์ที่เก็บข้อมูลเพื่อดูคำแนะนำและค้นหาการสร้างโค้ดได้เร็วขึ้น
หากต้องการสร้างดัชนี ให้ใช้คำสั่ง gemini code-repository-indexes create
ในสภาพแวดล้อมเชลล์
gcloud gemini code-repository-indexes create INDEX_NAME \
--project=PROJECT_ID \
--location=REGION
resource "google_gemini_code_repository_index" "example" {
location = "REGION "
code_repository_index_id = "INDEX_NAME "
}
แทนที่ค่าต่อไปนี้
INDEX_NAME
: ชื่อดัชนี สำคัญ: บันทึกชื่อดัชนี เนื่องจากจะต้องใช้ในหลายขั้นตอนในเอกสารนี้PROJECT_ID
: รหัสโปรเจ็กต์ Google Cloud ของคุณREGION
: ภูมิภาคที่รองรับตามที่ระบุไว้ในส่วนก่อนเริ่มต้นของหน้านี้ ซึ่งคุณกำหนดค่าไว้ใน Developer Connect ในโปรเจ็กต์ Google Cloud
โดยทั่วไปการสร้างดัชนีจะใช้เวลา 30 นาทีจึงจะเสร็จสมบูรณ์ แต่อาจใช้เวลาถึง 1 ชั่วโมง
Google จำกัดจำนวนดัชนีที่เก็บโค้ดไว้ที่ 1 รายการสำหรับแต่ละโปรเจ็กต์และองค์กร
ควบคุมการเข้าถึงดัชนีโดยใช้กลุ่มที่เก็บ
กลุ่มที่เก็บข้อมูลคือคอนเทนเนอร์สำหรับการกำหนดค่าการจัดทำดัชนี ซึ่งรวมถึงที่เก็บข้อมูลและรูปแบบสาขา กลุ่มที่เก็บข้อมูลออกแบบมาเพื่อการควบคุม IAM แบบละเอียด ซึ่งช่วยให้นักพัฒนาแอปเข้าถึงข้อมูลที่จัดทำดัชนีจากกลุ่มเหล่านั้นได้หากมีสิทธิ์cloudaicompanion.repositoryGroups.use
กลุ่มที่เก็บประกอบด้วยที่เก็บหรือไซต์ลิงก์ Developer Connect จากโปรเจ็กต์และตำแหน่งเดียวกัน
ผู้ดูแลระบบจะดําเนินการต่อไปนี้
- สร้างทรัพยากรดัชนีที่เก็บโค้ด
- กำหนดค่าการเชื่อมต่อ Developer Connect ใหม่ในโปรเจ็กต์และตำแหน่งเดียวกัน
- ลิงก์ที่เก็บ Git ในการเชื่อมต่อ
รับชื่อทรัพยากรของลิงก์ เลือกรูปแบบสาขาที่จะจัดทำดัชนีสำหรับแต่ละลิงก์ และใส่ลิงก์นั้นลงในกลุ่มที่เก็บข้อมูลอย่างน้อย 1 กลุ่ม
หากต้องการสร้างกลุ่มที่เก็บข้อมูล ให้ใช้คำสั่ง gemini code-repository-indexes repository-groups create
ในสภาพแวดล้อมเชลล์ ดังนี้
gcloud gemini code-repository-indexes repository-groups create REPOSITORY_GROUP \
--project=PROJECT_ID \
--location=REGION \
--code-repository-index=INDEX_NAME \
--repositories='[{"resource": "REPOSITORY_RESOURCE_NAME ", "branchPattern": "BRANCH_NAMES "}]'
resource "google_gemini_repository_group" "example" {
location = "REGION "
code_repository_index = "INDEX_NAME "
repository_group_id = "REPOSITORY_GROUP "
repositories {
resource = "REPOSITORY_RESOURCE_NAME "
branch_pattern = "BRANCH_NAMES "
}
}
แทนที่ค่าต่อไปนี้
REPOSITORY_GROUP
: ชื่อกลุ่มที่เก็บ เช่นdefault
PROJECT_ID
: รหัสโปรเจ็กต์ Google Cloud ของคุณREGION
: ภูมิภาคที่รองรับตามที่ระบุไว้ในส่วนก่อนเริ่มต้นของหน้านี้ ซึ่งคุณได้กำหนดค่าไว้ใน Developer Connect ในโปรเจ็กต์ Google CloudINDEX_NAME
: ชื่อดัชนีที่คุณสร้างในขั้นตอนก่อนหน้าเพื่อสร้างดัชนีREPOSITORY_RESOURCE_NAME
: ชื่อที่เก็บข้อมูลภายในการเชื่อมต่อ Developer Connect หากต้องการดูชื่อที่เก็บ ให้ไปที่หน้า Developer Connect ในคอนโซล Google Cloud และในแท็บที่เก็บ ให้มองหารหัสการเชื่อมต่อในคอลัมน์การเชื่อมต่อในตาราง หากต้องการคัดลอกชื่อทรัพยากร ให้คลิกเมนู more_vert เพื่อดูตัวเลือกเพิ่มเติม แล้วเลือกคัดลอกเส้นทางทรัพยากรBRANCH_NAMES
: ชื่อสาขาที่ต้องการจัดทำดัชนี เช่นmain|dev
คุณยังสร้างกลุ่มที่เก็บซึ่งมีที่เก็บที่กําหนดไว้ในไฟล์ JSON (หรือ YAML) ในรูปแบบต่อไปนี้ได้ด้วย
[
{
"resource": "REPOSITORY_RESOURCE_NAME ", "branchPattern": "main|dev"
},
{
"resource": "REPOSITORY_RESOURCE_NAME ", "branchPattern": "dev"
}
]
- resource: REPOSITORY_RESOURCE_NAME
branchPattern: main|dev
- resource: REPOSITORY_RESOURCE_NAME
branchPattern: dev
หากต้องการสร้างกลุ่มที่เก็บตามไฟล์ JSON หรือ YAML ในสภาพแวดล้อมเชลล์ ให้ใช้คำสั่ง gemini code-repository-indexes repository-groups create
ดังนี้
gcloud gemini code-repository-indexes repository-groups create REPOSITORY_GROUP \
--project=PROJECT_ID \
--location=REGION \
--code-repository-index=INDEX_NAME \
--repositories=FILEPATH .json
gcloud gemini code-repository-indexes repository-groups create REPOSITORY_GROUP \
--project=PROJECT_ID \
--location=REGION \
--code-repository-index=INDEX_NAME \
--repositories=FILEPATH .yaml
หากต้องการ คุณสามารถเข้ารหัสและควบคุมข้อมูลด้วยคีย์การเข้ารหัสที่จัดการโดยลูกค้า (CMEK) ผ่าน Cloud Key Management Service ดูข้อมูลเพิ่มเติมเกี่ยวกับการใช้ CMEK ได้ที่หัวข้อเข้ารหัสข้อมูลด้วยคีย์การเข้ารหัสที่จัดการโดยลูกค้า
มอบบทบาท IAM ให้กับกลุ่มที่เก็บในโปรเจ็กต์
คุณจะได้รับการแนะนำจากที่เก็บในดัชนีเท่านั้น ที่เก็บข้อมูลแต่ละแห่งจะอยู่ในกลุ่มที่เก็บข้อมูลอย่างน้อย 1 กลุ่ม หากต้องการเข้าถึงคำแนะนำ คุณต้องมอบหมายบทบาท IAM ของผู้ใช้กลุ่มที่เก็บข้อมูล Companion ของ Cloud AI (roles/cloudaicompanion.repositoryGroupsUser
) ซึ่งมีสิทธิ์ IAM cloudaicompanion.repositoryGroups.user
ที่จำเป็นให้กับกลุ่มที่เก็บข้อมูลด้วยวิธีใดวิธีหนึ่งต่อไปนี้
- ให้สิทธิ์ผู้ใช้หลักในการเข้าถึงทั้งดัชนี
- ให้สิทธิ์ผู้ใช้หลักเข้าถึงชุดย่อยของดัชนี
ให้สิทธิ์ผู้ใช้หลักในการเข้าถึงทั้งดัชนี
หากต้องการเชื่อมโยงนโยบาย IAM กับโปรเจ็กต์ในสภาพแวดล้อมเชลล์ ให้ใช้คำสั่ง
projects add-iam-policy-binding
ดังนี้gcloud projects add-iam-policy-binding
PROJECT_ID \ --member='PRINCIPAL ' \ --role='roles/cloudaicompanion.repositoryGroupsUser'แทนที่ค่าต่อไปนี้
PROJECT_ID
: รหัสโปรเจ็กต์ที่มีกลุ่มที่เก็บPRINCIPAL
: อีเมลของผู้ใช้หลักที่ต้องการเข้าถึง เช่นuser:test-user@gmail.com
สำหรับบุคคลธรรมดา หรือgroup:admins@example.com
สำหรับกลุ่ม
ดูข้อมูลเพิ่มเติมได้ที่
gcloud projects set-iam-policy
เมื่อได้รับข้อความแจ้งให้ระบุเงื่อนไข ให้ป้อน
None
ให้สิทธิ์ผู้ใช้หลักเข้าถึงชุดย่อยของดัชนี
คุณสามารถสร้างกลุ่มที่เก็บได้หลายกลุ่มและมอบหมายบทบาท IAM ให้กับผู้ใช้หลัก IAM คนต่างๆ ได้
หากต้องการตั้งค่านโยบาย IAM คุณต้องเตรียมไฟล์ JSON หรือ YAML ของนโยบาย IAM ซึ่งจะมีรายการกลุ่ม IAM และบทบาทที่กำหนด เช่น
bindings:
- members:
- group:my-group@example.com
- user:test-user@example.com
role: roles/cloudaicompanion.repositoryGroupsUser
ดูรายละเอียดเพิ่มเติมและไวยากรณ์ได้ที่หัวข้อทำความเข้าใจนโยบายการอนุญาต
หากต้องการกำหนดนโยบาย IAM ให้ใช้คำสั่ง gemini code-repository-indexes repository-groups set-iam-policy
ในสภาพแวดล้อมเชลล์
gcloud gemini code-repository-indexes repository-groups set-iam-policy GROUP_NAME POLICY_FILE \
--project=PROJECT_ID \
--location=REGION \
--code-repository-index=INDEX_NAME
แทนที่ค่าต่อไปนี้
GROUP_NAME
: ชื่อกลุ่มที่เก็บข้อมูลที่คุณสร้างในขั้นตอนก่อนหน้าเพื่อควบคุมการเข้าถึงดัชนีโดยใช้กลุ่มที่เก็บข้อมูลPOLICY_FILE
: นโยบาย IAMREGION
: ภูมิภาคที่รองรับตามที่ระบุไว้ในส่วนก่อนเริ่มต้นของหน้านี้ ซึ่งคุณกำหนดค่าไว้ใน Developer Connect ในโปรเจ็กต์ Google CloudINDEX_NAME
: ชื่อดัชนีที่คุณสร้างในขั้นตอนก่อนหน้าเพื่อสร้างดัชนีดูข้อมูลเพิ่มเติมได้ที่
gcloud gemini code-repository-indexes repository-groups set-iam-policy
data "google_iam_policy" "foo" {
binding {
role = "roles/cloudaicompanion.repositoryGroupsUser"
members = ["test-user@example.com"]
}
}
resource "google_gemini_repository_group_iam_policy" "foo" {
project = "PROJECT_ID "
location = "REGION "
code_repository_index_id = "INDEX_NAME "
repository_group_id = "GROUP_NAME "
policy_data = data.google_iam_policy.foo.policy_data
}
data "google_gemini_repository_group_iam_policy" "foo" {
project = "PROJECT_ID "
location = "REGION "
code_repository_index_id = "INDEX_NAME "
repository_group_id = "GROUP_NAME "
depends_on = [
google_gemini_repository_group_iam_policy.foo
]
}
คุณยังสร้างการเชื่อมโยงได้ด้วย โดยทำดังนี้
resource "google_gemini_repository_group_iam_binding" "foo" {
project = "PROJECT_ID "
location = "REGION "
code_repository_index_id = "INDEX_NAME "
repository_group_id = "GROUP_NAME "
role = "roles/cloudaicompanion.repositoryGroupsUser"
members = ["test-user@example.com"]
}
แทนที่ค่าต่อไปนี้
GROUP_NAME
: ชื่อกลุ่มที่เก็บข้อมูลที่คุณสร้างในขั้นตอนก่อนหน้าเพื่อควบคุมการเข้าถึงดัชนีโดยใช้กลุ่มที่เก็บข้อมูลREGION
: ภูมิภาคที่รองรับตามที่ระบุไว้ในส่วนก่อนเริ่มต้นของหน้านี้ ซึ่งคุณกำหนดค่าไว้ใน Developer Connect ในโปรเจ็กต์ Google CloudINDEX_NAME
: ชื่อดัชนีที่คุณสร้างในขั้นตอนก่อนหน้าเพื่อสร้างดัชนีดูข้อมูลเพิ่มเติมได้ที่
gcloud gemini code-repository-indexes repository-groups set-iam-policy
ตรวจสอบสถานะการจัดทําดัชนี
การจัดทําดัชนีเนื้อหาอาจใช้เวลาถึง 24 ชั่วโมง ทั้งนี้ขึ้นอยู่กับจํานวนพื้นที่เก็บข้อมูลที่คุณต้องการจัดทําดัชนีและขนาดของพื้นที่เก็บข้อมูล สำหรับที่เก็บขนาดใหญ่ การจัดทำดัชนีอาจใช้เวลานานกว่า การจัดทำดัชนีจะเกิดขึ้นทุก 24 ชั่วโมง โดยจะบันทึกการเปลี่ยนแปลงทั้งหมดที่ทำในที่เก็บ
ค้นหาบันทึก
indexing
ดูข้อมูลเพิ่มเติมได้ที่ภาษาในการค้นหาการบันทึกในคอนโซล Google Cloud ให้ไปที่Logs Explorer
ใช้ตัวกรองชื่อบันทึกเพื่อดูบันทึก
indexing
หากต้องการค้นหาบันทึกการจัดทําดัชนี ให้ใช้คําสั่ง
logging read
ในสภาพแวดล้อมเชลล์gcloud logging read "logName="projects/
PROJECT_ID /logs/indexing""แทนที่
PROJECT_ID
ด้วยรหัสโปรเจ็กต์ที่มีกลุ่มที่เก็บอยู่เช่น หากต้องการดูข้อผิดพลาดในบันทึก
indexing
ให้เรียกใช้คําสั่งต่อไปนี้gcloud logging read "logName="projects/
PROJECT_ID /logs/indexing" AND severity>=ERROR"ตรวจสอบสถานะการจัดทำดัชนีที่เกี่ยวข้อง เช่น สถานะต่อไปนี้
- เริ่มต้นการจัดทำดัชนีที่เก็บ เช่น
Indexing repository REPOSITORY_NAME. Total number of repositories: 10, succeeded: 6, failed: 0.
- สิ้นสุดการจัดทำดัชนีที่เก็บข้อมูลแต่ละรายการ เช่น
- สำเร็จ:
Successfully finished indexing repository REPOSITORY_NAME. Total number of repositories: 10, succeeded: 7, failed: 0.
- ไม่สำเร็จ:
Failed to index repository REPOSITORY_NAME. Error: [<error message>]. Total number of repositories: 10, succeeded: 7, failed: 1.
- สำเร็จ:
- สิ้นสุดการจัดทำดัชนีที่เก็บ เช่น
- สำเร็จ:
Finished indexing process. Repositories attempted: 10. Repositories successfully indexed: 9. Repositories unsuccessfully fetched: 0.
- ไม่สำเร็จ:
Finished indexing process. Repositories attempted: 10. Repositories successfully indexed: 9. Repositories unsuccessfully fetched: 1. Repositories that were not successfully fetched will be retried in the next run.
- สำเร็จ:
ในสถานะดัชนี
REPOSITORY_NAME
คือที่เก็บข้อมูลที่คุณต้องการตรวจสอบ- เริ่มต้นการจัดทำดัชนีที่เก็บ เช่น
ตรวจสอบข้อผิดพลาดในการจัดทำดัชนีที่เกี่ยวข้อง เช่น ข้อผิดพลาดต่อไปนี้
- ดึงข้อมูลที่เก็บไม่สำเร็จ
- แสดงรายการไฟล์ที่เก็บไม่สำเร็จ
- เรียกข้อมูลพื้นที่เก็บข้อมูลจากดัชนีไม่สำเร็จ
- เรียกข้อมูลไฟล์จากดัชนีไม่สำเร็จ
- ข้อผิดพลาดภายใน
ใช้การปรับแต่งโค้ด
เมื่อตั้งค่าการปรับแต่งโค้ดแล้ว ผู้ใช้จะเริ่มเห็นการเติมโค้ดให้สมบูรณ์และคำแนะนำในการสร้างโค้ด ซึ่งอาจอิงตามโค้ดส่วนตัวที่คุณได้จัดทำดัชนีไว้ นอกเหนือจากผลลัพธ์จากการรับรู้โค้ดทั้งหมด
ปิดการปรับแต่งโค้ด
หากต้องการแสดงรายการกลุ่มที่เก็บข้อมูลทั้งหมดสำหรับดัชนีปัจจุบันในสภาพแวดล้อมเชลล์ ให้ใช้คำสั่ง
gemini code-repository-indexes repository-groups list
ดังนี้gcloud gemini code-repository-indexes repository-groups list --location=
REGION \ --project=PROJECT_ID \ --code-repository-index=INDEX_NAME --uriแทนที่ค่าต่อไปนี้
REGION
: ภูมิภาคที่รองรับตามที่ระบุไว้ในส่วนก่อนเริ่มต้นของหน้านี้ ซึ่งคุณกำหนดค่าไว้ใน Developer Connect ในโปรเจ็กต์ Google CloudPROJECT_ID
: รหัสโปรเจ็กต์ Google Cloud ของคุณINDEX_NAME
: ชื่อดัชนีที่คุณสร้างในขั้นตอนก่อนหน้าเพื่อสร้างดัชนี
หากต้องการลบกลุ่มที่เก็บจากดัชนีปัจจุบัน ให้ใช้คำสั่ง
gemini code-repository-indexes repository-groups delete
ดังนี้gcloud gemini code-repository-indexes repository-groups delete
REPOSITORY_GROUP \ --location=REGION \ --project=PROJECT_ID \ --code-repository-index=INDEX_NAME ทำขั้นตอนที่ 3 ซ้ำสำหรับกลุ่มที่เก็บข้อมูลแต่ละกลุ่มจนกว่าจะลบกลุ่มที่เก็บข้อมูลทั้งหมดออกจากดัชนี
ไม่บังคับ: หากต้องการลบดัชนี ให้ใช้คำสั่ง
gemini code-repository-indexes delete
ในสภาพแวดล้อมเชลล์ ดังนี้gcloud gemini code-repository-indexes delete
INDEX_NAME \ --location=REGION \ --project=PROJECT_ID
ขั้นตอนถัดไป
- วิธีเริ่มใช้ฟีเจอร์ช่วยเขียนโค้ดของ Gemini
- VS Code, IntelliJ และ IDE อื่นๆ ของ JetBrains ที่รองรับ: เขียนโค้ดด้วยฟีเจอร์ช่วยเขียนโค้ดของ Gemini
- Cloud Shell: เขียนโค้ดด้วยฟีเจอร์ช่วยเขียนโค้ดของ Gemini
- Cloud Workstations: เขียนโค้ดด้วยฟีเจอร์ช่วยเขียนโค้ดของ Gemini
- ดูวิธีเข้ารหัสข้อมูลด้วยคีย์การเข้ารหัสที่จัดการโดยลูกค้า (CMEK)
- ดูข้อมูลเพิ่มเติมเกี่ยวกับ Developer Connect
- ดูวิธีที่ Gemini สำหรับ Google Cloud ใช้ข้อมูลของคุณและกรณีที่ใช้