জেমিনি কোড অ্যাসিস্ট কোড কাস্টমাইজেশন কনফিগার করুন এবং ব্যবহার করুন

এই ডকুমেন্টটি বর্ণনা করে কিভাবে জেমিনি কোড অ্যাসিস্ট কোড কাস্টমাইজেশন সেট আপ করতে হয় আপনার ব্যক্তিগত কোড রিপোজিটরিতে জেমিনি কোড অ্যাসিস্ট সংযোগ করে। এই বৈশিষ্ট্যটি আপনাকে কোড প্রস্তাবনাগুলি পেতে দেয়, যা আপনার প্রতিষ্ঠানের অভ্যন্তরীণ লাইব্রেরি, ব্যক্তিগত API এবং কোডিং শৈলী থেকে আঁকা হয়।

আপনি শুরু করার আগে

কোন ব্যক্তিগত সংগ্রহস্থল সংযুক্ত আছে চয়ন করুন

সর্বোত্তম অনুশীলন হিসাবে, নিশ্চিত করুন যে আপনি সংগ্রহস্থলগুলি সংযুক্ত করেছেন যা:

  • আপনি আপনার ডেভেলপারদের যা লিখতে চান তার অনুরূপ শৈলী বা কাঠামোর কোড রাখুন।
  • ব্যক্তিগত লাইব্রেরি বা 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 ক্লাউড প্রকল্প আইডি।
  • REGION : একটি সমর্থিত অঞ্চল, যেমনটি আপনি এই পৃষ্ঠার শুরু করার আগে বিভাগে উল্লেখ করেছেন, যা আপনি আপনার Google ক্লাউড প্রকল্পে বিকাশকারী সংযোগে কনফিগার করেছেন৷

সূচক তৈরি করতে সাধারণত 30 মিনিট সময় লাগে তবে এটি এক ঘন্টা পর্যন্ত সময় নিতে পারে।

Google প্রতিটি প্রকল্প এবং সংস্থার জন্য কোড সংগ্রহস্থলের সূচকের সংখ্যা সীমিত করে।

সংগ্রহস্থল গোষ্ঠী ব্যবহার করে আপনার সূচকে অ্যাক্সেস নিয়ন্ত্রণ করুন

একটি রিপোজিটরি গ্রুপ হল ইনডেক্সিং কনফিগারেশনের জন্য একটি ধারক, যা রিপোজিটরি এবং তাদের শাখা প্যাটার্নগুলি অন্তর্ভুক্ত করে। রিপোজিটরি গোষ্ঠীগুলি দানাদার IAM নিয়ন্ত্রণের জন্য ডিজাইন করা হয়েছে, ডেভেলপারদের সেই গোষ্ঠীগুলি থেকে সূচীকৃত ডেটাতে অ্যাক্সেস দেয়, যেখানে তাদের cloudaicompanion.repositoryGroups.use অনুমতি রয়েছে৷

রিপোজিটরি গ্রুপে একই প্রকল্প এবং অবস্থান থেকে ডেভেলপার কানেক্ট রিপোজিটরি বা লিঙ্ক থাকে।

প্রশাসকরা নিম্নলিখিত ক্রিয়াগুলি সম্পাদন করে:

  • কোড রিপোজিটরি ইনডেক্স রিসোর্স তৈরি করুন।
  • একই প্রকল্প এবং অবস্থানে, একটি নতুন বিকাশকারী সংযোগ সংযোগ কনফিগার করুন৷
  • সংযোগে গিট রিপোজ লিঙ্ক করুন।
  • লিঙ্কগুলির সম্পদের নাম পান, প্রতিটি লিঙ্কের জন্য সূচীতে শাখা প্যাটার্ন বেছে নিন এবং এটি এক বা একাধিক সংগ্রহস্থলের গ্রুপে রাখুন।

একটি রিপোজিটরি গ্রুপ তৈরি করতে, শেল পরিবেশে, 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 ক্লাউড প্রকল্প আইডি।
  • REGION : একটি সমর্থিত অঞ্চল, যেমনটি আপনি এই পৃষ্ঠার শুরু করার আগে বিভাগে উল্লেখ করেছেন, যা আপনি আপনার Google ক্লাউড প্রকল্পে বিকাশকারী সংযোগে কনফিগার করেছেন৷
  • INDEX_NAME : একটি সূচী তৈরি করার পূর্ববর্তী ধাপে আপনি যে সূচকটি তৈরি করেছেন তার নাম।
  • REPOSITORY_RESOURCE_NAME : ডেভেলপার কানেক্ট সংযোগের ভিতরে থাকা সংগ্রহস্থলের নাম। সংগ্রহস্থলের নাম খুঁজতে, Google ক্লাউড কনসোলে বিকাশকারী সংযোগ পৃষ্ঠাতে যান এবং সংগ্রহস্থল ট্যাবে, টেবিলের সংযোগ কলামের অধীনে সংযোগ আইডিটি সন্ধান করুন৷ রিসোর্সের নাম কপি করতে, আরো বিকল্পের জন্য more_vert মেনুতে ক্লিক করুন এবং রিসোর্স পাথ কপি করুন নির্বাচন করুন।
  • BRANCH_NAMES : আপনি যে শাখাগুলিকে সূচিত করতে চান তার নাম, যেমন main|dev

আপনি একটি JSON (বা YAML) ফাইলে সংজ্ঞায়িত সংগ্রহস্থলগুলির সাথে একটি সংগ্রহস্থল গোষ্ঠীও তৈরি করতে পারেন, নিম্নরূপ বিন্যাসিত:

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 কমান্ড ব্যবহার করুন:

JSON YAML
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) দিয়ে আপনার ডেটা এনক্রিপ্ট এবং নিয়ন্ত্রণ করতে পারেন। একটি CMEK ব্যবহার সম্পর্কে আরও জানতে, গ্রাহক-পরিচালিত এনক্রিপশন কীগুলির সাথে ডেটা এনক্রিপ্ট করুন দেখুন।

একটি প্রকল্পে সংগ্রহস্থল গ্রুপকে IAM ভূমিকা প্রদান করুন

আপনি শুধুমাত্র ইনডেক্সের সংগ্রহস্থল থেকে পরামর্শ পাবেন। প্রতিটি সংগ্রহস্থল এক বা একাধিক সংগ্রহস্থল গ্রুপের অন্তর্গত। পরামর্শগুলি অ্যাক্সেস করার জন্য, আপনাকে অবশ্যই ক্লাউড এআই কম্প্যানিয়ন রিপোজিটরি গ্রুপ ব্যবহারকারী IAM ভূমিকা ( roles/cloudaicompanion.repositoryGroupsUser )-কে মঞ্জুর করতে হবে—যাতে প্রয়োজনীয় cloudaicompanion.repositoryGroups.user IAM অনুমতি রয়েছে—নিম্নলিখিত উপায়গুলির মধ্যে একটি দ্বারা সংগ্রহস্থল গোষ্ঠীকে:

  • পুরো সূচক অ্যাক্সেস করার জন্য অধ্যক্ষদের অনুমতি দিন।
  • সূচকের একটি উপসেটে অধ্যক্ষদের অ্যাক্সেস দিন।

পুরো সূচক অ্যাক্সেস করার জন্য অধ্যক্ষদের অনুমতি দিন

  1. একটি প্রকল্পের জন্য একটি 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 দেখুন।

  2. একটি শর্ত উল্লেখ করার জন্য অনুরোধ করা হলে, None লিখুন।

সূচকের একটি উপসেটে অধ্যক্ষদের অ্যাক্সেস দিন

আপনি একাধিক রিপোজিটরি গ্রুপ তৈরি করতে পারেন এবং বিভিন্ন IAM অধ্যক্ষকে IAM ভূমিকা বরাদ্দ করতে পারেন।

একটি IAM নীতি সেট আপ করার জন্য আপনাকে অবশ্যই IAM নীতি JSON বা YAML ফাইল প্রস্তুত করতে হবে, যাতে 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_NAMEPOLICY_FILE \
    --project=PROJECT_ID \
    --location=REGION \
    --code-repository-index=INDEX_NAME

নিম্নলিখিতগুলি প্রতিস্থাপন করুন:

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"]
}

নিম্নলিখিতগুলি প্রতিস্থাপন করুন:

ইনডেক্সিং স্ট্যাটাস চেক করুন

আপনি যে রিপোজিটরিগুলিকে সূচীকরণ করতে চান এবং তাদের আকারের উপর নির্ভর করে, সামগ্রীর সূচীকরণে 24 ঘন্টা পর্যন্ত সময় লাগতে পারে৷ বড় সংগ্রহস্থলের জন্য, সূচীকরণে বেশি সময় লাগতে পারে। সূচীকরণ প্রতি 24 ঘন্টায় একবার হয়, সংগ্রহস্থলে করা যেকোন পরিবর্তনগুলি তুলে ধরে।

  1. indexing লগ অনুসন্ধান করুন. আরও তথ্যের জন্য, লগিং ক্যোয়ারী ভাষা দেখুন।

    1. Google ক্লাউড কনসোলে, লগ এক্সপ্লোরারে যান।

      লগ এক্সপ্লোরার এ যান

    2. 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"
    
  2. সম্পর্কিত ইন্ডেক্সিং স্ট্যাটাস পর্যালোচনা করুন, যেমন নিম্নলিখিত:

    • রিপোজিটরি ইন্ডেক্সিং এর শুরু-উদাহরণস্বরূপ, 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 হল সেই রিপোজিটরি যা আপনি পর্যালোচনা করতে চান৷

  3. সংশ্লিষ্ট ইন্ডেক্সিং ত্রুটি পর্যালোচনা করুন, যেমন নিম্নলিখিত:

    • সংগ্রহস্থল আনা ব্যর্থ হয়েছে.
    • সংগ্রহস্থল ফাইল তালিকা করতে ব্যর্থ.
    • সূচী থেকে সংগ্রহস্থল তথ্য পুনরুদ্ধার করতে ব্যর্থ হয়েছে.
    • সূচী থেকে ফাইল পুনরুদ্ধার করতে ব্যর্থ হয়েছে.
    • অভ্যন্তরীণ ত্রুটি।

কোড কাস্টমাইজেশন ব্যবহার করুন

একবার আপনি কোড কাস্টমাইজেশন সেট আপ করলে, ব্যবহারকারীরা কোড সম্পূর্ণতা এবং কোড তৈরির পরামর্শ দেখতে শুরু করবে যা সম্পূর্ণ কোডবেস সচেতনতার ফলাফল ছাড়াও আপনার সূচীকৃত ব্যক্তিগত কোডের উপর ভিত্তি করে হতে পারে।

কোড কাস্টমাইজেশন বন্ধ করুন

  1. একটি শেল পরিবেশে বর্তমান সূচকের জন্য সমস্ত সংগ্রহস্থলের গ্রুপ তালিকাভুক্ত করতে, 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 : একটি সমর্থিত অঞ্চল, যেমনটি আপনি এই পৃষ্ঠার শুরু করার আগে বিভাগে উল্লেখ করেছেন, যা আপনি আপনার Google ক্লাউড প্রকল্পে বিকাশকারী সংযোগে কনফিগার করেছেন৷
    • PROJECT_ID : আপনার Google ক্লাউড প্রকল্প আইডি।
    • INDEX_NAME : একটি সূচী তৈরি করার পূর্ববর্তী ধাপে আপনি যে সূচকটি তৈরি করেছেন তার নাম।
  2. বর্তমান সূচক থেকে একটি সংগ্রহস্থল গোষ্ঠী মুছে ফেলতে, 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. প্রতিটি রিপোজিটরি গ্রুপের জন্য ধাপ 3 পুনরাবৃত্তি করুন যতক্ষণ না আপনি সূচী থেকে সমস্ত সংগ্রহস্থল গোষ্ঠী মুছে ফেলছেন।

  4. ঐচ্ছিক: একটি শেল পরিবেশে সূচী মুছে ফেলার জন্য, gemini code-repository-indexes delete কমান্ডটি ব্যবহার করুন :

    gcloud gemini code-repository-indexes delete INDEX_NAME \
        --location=REGION \
        --project=PROJECT_ID
    

এরপর কি