1. قبل البدء
يوضّح هذا الدليل التعليمي كيفية إعداد Gemini Code Assist لتقديم اقتراحات تخصيص رمز مخصّصة لمستودعاتك الخاصة. يمكن أن يجعل ذلك نتائج ميزة "مساعدة في الترميز" أكثر فائدة بشكل كبير، خاصةً للفِرق التي لديها اصطلاحات محدّدة للعمل المشابه الذي يتكرر غالبًا. أؤكد لك أنّ السماح لخدمة Gemini بفهرسة قواعد الرموز البرمجية الخاصة لهذه الميزة لا يمكّن Gemini من التدريب على نطاق واسع باستخدام الرمز البرمجي الخاص.
سنناقش أيضًا كيفية استبعاد الملفات الحسّاسة أو غير ذات الصلة من عملية تخصيص الرموز باستخدام ملف .aiexclude
.
المتطلبات الأساسية
- فهم أساسي لميزة "مساعدة كتابة الرموز البرمجية" في Gemini والوصول إلى مشروع تم تفعيلها فيه
- الإلمام بلغة ترميز متوافقة لتخصيص الرموز البرمجية
- إمكانية إنشاء موارد في
us-central1
أوeurope-west1
، لأنّ تخصيص الرموز يتطلّب اتصالات Developer Connect في هذين الموقعَين الجغرافيَين - Google Cloud CLI محدّثة وموثَّقة
ما ستتعرّف عليه
- كيفية الاستفادة من ميزة تخصيص الرموز البرمجية في Gemini Code Assist Enterprise
- إحدى حالات الاستخدام العديدة التي يمكن أن يُوفّر فيها تخصيص الرموز البرمجية الوقت على فِرقك
ما تحتاج إليه
- مشروع على Google Cloud تم تفعيل ميزة Gemini Code Assist فيه
- يشير هذا المصطلح إلى مستودع خاص يمكن فهرسته لطلبات التخصيص.
- لقد حان وقت فهرسة الرمز البرمجي لطلبات التخصيص. يمكن أن يستغرق ذلك مدة تصل إلى 24 ساعة.
- بيئة تطوير متكاملة تم تثبيت Gemini Code Assist فيها
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 بالاتصال بأمان بالمستودعات الخاصة بك لإنشاء الفهرس الذي سيتم استخدامه لتحسين الردود.
يساعدك هذان المفهومان في فهم كيفية توفير Developer Connect إمكانية الوصول إلى الرمز البرمجي بأمان:
الاتصال
- يمثّل هذا النوع العلاقة بين Google ومنصة إدارة رموز المصدر التابعة لجهة خارجية.
رابط
- يمثّل الربط بمستودع رمز مصدر فردي تختاره ضمن منصة متصلة لإدارة رمز المصدر.
مع وضع هذه المفاهيم في الاعتبار، ابدأ بالانتقال إلى صفحة Developer Connect لتفعيل واجهة برمجة التطبيقات لمشروعك.
بعد ذلك، اتّبِع الخطوات المناسبة لإنشاء اتصال ورابط في GitHub أو GitLab. سيتم إنشاء كلا الموردين أثناء عملية المعالج.
كرِّر هذه الخطوات لإنشاء رابط لكل مستودع تريد أن تأخذ ميزة تخصيص الرموز البرمجية في 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: المستودع الذي تريد فهرسته. يجب تحديد مستودع واحد على الأقل، ويمكنك تحديد مستودعات متعددة حسب الحاجة.
- BRANCH_NAMES: اسم الفروع التي تريد فهرستها، مثل main أو dev
استنادًا إلى عدد المستودعات التي تريد فهرستها وحجمها، يمكن أن تستغرق فهرسة المحتوى ما يصل إلى 24 ساعة. يتم إجراء الفهرسة مرة كل 24 ساعة، مع رصد أي تغييرات تم إجراؤها في المستودع. يمكنك الرجوع إلى هذه الخطوات للاطّلاع على حالة إنشاء الفهرس:
وأخيرًا، امنح المستخدم الرئيسي المطلوب إذن الوصول إلى المجموعة:
gcloud projects add-iam-policy-binding PROJECT_ID \
--member='PRINCIPAL' \
--role='roles/cloudaicompanion.repositoryGroupsUser'
7- إنشاء رمز مخصّص
بما أنّ Gemini يمكنه الآن الوصول إلى الرمز في مستودعك الخاص، نتوقع أن تظهر المقتطفات ذات الصلة في طلبات إكمال الرمز. في مثال المستودع، يمكننا الانتقال إلى مجلد DTO، وعند إنشاء فئة جديدة لتمثيل كائن جديد، يمكنك الاطّلاع على التعليقات التوضيحية المتوقّعة التي تظهر أثناء الكتابة:
8. الخاتمة
تهانينا على إكمال هذا الدرس التطبيقي حول الترميز. لقد تعرّفت على كيفية استخدام ميزة تخصيص الرموز في Gemini Code Assist. والآن بعد أن أصبح بإمكانك تخصيص ردودك وفقًا لقواعد الرموز البرمجية الخاصة بفِرقك، سيكون كل طلب ورمز مكتمل أكثر قيمة للمطوّرين في فِرقك.
يمكنك مراجعة هذه المستندات والمواد الأخرى للحصول على مزيد من المراجع والحصول على دعم بشأن إجراءات مثل إعداد أدوار إدارة الهوية وإمكانية الوصول: