জেমিনি কোড সহায়তা কোড কাস্টমাইজেশন কনফিগার করুন

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

শুরু করার আগে

  1. এন্টারপ্রাইজ সাবস্ক্রিপশনের মাধ্যমে জেমিনি কোড অ্যাসিস্ট সেট আপ করুন
  2. সাবস্ক্রিপশনের মালিকানাধীন প্রকল্পে আপনার নিম্নলিখিত পরিচয় এবং অ্যাক্সেস ব্যবস্থাপনা ভূমিকা রয়েছে কিনা তা যাচাই করুন:

    • কোড রিপোজিটরি ইনডেক্সেস অ্যাডমিন ( roles/cloudaicompanion.codeRepositoryIndexesAdmin )
    • গুগল ক্লাউড ব্যবহারকারীর জন্য জেমিনি ( roles/cloudaicompanion.user )
  3. ব্যবহারকারীর অ্যাকাউন্ট তৈরি বা কনফিগার করুন। আপনার প্রতিষ্ঠানের প্রতিটি ডেভেলপার যারা জেমিনি কোড অ্যাসিস্ট ব্যবহার করছেন তাদের অবশ্যই Google ক্লাউডে একটি ব্যবহারকারী পরিচয় থাকতে হবে যার কাছে আপনার Google ক্লাউড প্রকল্প অ্যাক্সেস করার অনুমতি রয়েছে। আরও তথ্যের জন্য, Google ক্লাউড কনসোলে Grant ভূমিকা দেখুন। প্রতিটি ব্যবহারকারীর নিম্নলিখিত ভূমিকা আছে কিনা তা যাচাই করুন:

  4. কোড কাস্টমাইজেশন বৈশিষ্ট্যটি আপনার ব্যক্তিগত সংগ্রহস্থল অ্যাক্সেস এবং সূচী করার জন্য ডেভেলপার কানেক্ট ব্যবহার করে। নিশ্চিত করুন যে আপনার ডেভেলপার কানেক্ট সংগ্রহস্থল সংযোগটি যেখানে অবস্থিত সেই ডেভেলপার কানেক্ট অঞ্চলটিও কোড কাস্টমাইজেশনের জন্য একটি সমর্থিত অবস্থান। ডেভেলপার কানেক্ট সংযোগটি যদি অসমর্থিত অঞ্চলে থাকে তবে কোড কাস্টমাইজেশন বৈশিষ্ট্যটি ব্যবহার করা যাবে না। সমর্থিত অঞ্চলগুলির তালিকার জন্য, কোড কাস্টমাইজেশন সীমাবদ্ধতা দেখুন।

কোন সংগ্রহস্থলগুলি সূচীবদ্ধ করা হয়েছে তা চয়ন করুন

সর্বোত্তম অনুশীলন হিসেবে, আপনার নিম্নলিখিত বৈশিষ্ট্যযুক্ত রিপোজিটরিগুলিকে সূচী করা উচিত:

  • এমন কোড যা আপনার ডেভেলপারদের লেখার স্টাইল বা কাঠামোর অনুরূপ।
  • আপনার বর্তমান কোডবেস থেকে যে ব্যক্তিগত লাইব্রেরি বা API গুলি কল করতে চান।

ঐচ্ছিক: কোন ফাইলগুলি সূচীবদ্ধ করা হবে না তা বেছে নিন

ডিফল্টরূপে, কোড কাস্টমাইজেশন আপনার নির্দিষ্ট সংগ্রহস্থলের সমস্ত সমর্থিত কোড ফাইলগুলিকে সূচী করে।

আপনি যে কোডটি ইনডেক্স করতে চান না তার এক্সপোজার প্রতিরোধ করতে, আপনি আপনার ইনডেক্সে অ্যাক্সেস নিয়ন্ত্রণ করতে ব্রাঞ্চ প্যাটার্ন ব্যবহার করতে পারেন এবং একটি স্থিতিশীল ব্রাঞ্চ ব্যবহার করতে পারেন, যেমন main

বিকল্পভাবে, আপনি একটি .aiexclude ফাইল তৈরি করে সূচী থেকে ফাইলগুলি বাদ দিতে পারেন।

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

নিম্নলিখিত বিকল্পগুলির মধ্যে একটি নির্বাচন করুন:

কনসোল

  1. গুগল ক্লাউড কনসোলে, কোড কাস্টমাইজেশন পৃষ্ঠায় যান।

    জেমিনি কোড অ্যাসিস্টের জন্য কোড কাস্টমাইজেশনে যান।

    জেমিনি কোড অ্যাসিস্ট পৃষ্ঠা লোড হওয়ার জন্য কোড কাস্টমাইজেশন

  2. একটি সূচক তৈরি করুন। দ্রুত কোড তৈরির পরামর্শ এবং অনুসন্ধানের জন্য আপনার সংগ্রহস্থল বিশ্লেষণ এবং পার্স করার জন্য কোড কাস্টমাইজেশন একটি সূচকের উপর নির্ভর করে।

    1. সূচীর বিবরণ তৈরি করুন এবং কনফিগার করুন ক্লিক করুন:

      • আপনার ক্লাউড প্রকল্পে ডেভেলপার কানেক্টে কনফিগার করা অঞ্চলটি নির্বাচন করুন।
      • আপনার সূচীর জন্য একটি নাম লিখুন। আপনার সূচীর নামটি নোট করুন। এই নথিতে বেশ কয়েকটি ধাপের জন্য আপনার এটি প্রয়োজন।
    2. তৈরি করুন ক্লিক করুন।

    ইনডেক্স তৈরি করতে সাধারণত ৩০ মিনিট সময় লাগে, তবে এক ঘন্টা পর্যন্ত সময় লাগতে পারে। ইনডেক্সিং সম্পূর্ণ হলে, আপনি গুগল ক্লাউড কনসোলে একটি বিজ্ঞপ্তি পাবেন।

    গুগল প্রতিটি প্রকল্প এবং প্রতিষ্ঠানের জন্য কোড রিপোজিটরি ইনডেক্সের সংখ্যা একটিতে সীমাবদ্ধ করে।

  3. রিপোজিটরি গ্রুপ ব্যবহার করে আপনার সূচকে অ্যাক্সেস নিয়ন্ত্রণ করুন।

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

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

  4. জেমিনি কোড অ্যাসিস্টের জন্য কোড কাস্টমাইজেশন পৃষ্ঠায়, সংগ্রহস্থল যোগ করুন ক্লিক করুন, এবং তারপর উৎস সংগ্রহস্থল যোগ করুন নির্বাচন করুন।

    সূচক তৈরির জন্য পূর্ববর্তী ধাপে আপনি যে অঞ্চলটি কনফিগার করেছিলেন, তার জন্য ডেভেলপার কানেক্টে বিদ্যমান সংগ্রহস্থলগুলির একটি তালিকা প্রদর্শিত হবে।

    যদি আপনার রিপোজিটরি গ্রুপে নতুন রিপোজিটরি যোগ করার প্রয়োজন হয়, তাহলে লিংক রিপোজিটরিতে ক্লিক করুন এবং গুগল ক্লাউড কনসোলের ধাপগুলি অনুসরণ করুন।

    অতিরিক্তভাবে, আপনি একটি নতুন শাখা যোগ করার জন্য এক বা একাধিক সংগ্রহস্থল নির্বাচন করতে এবং তারপর সম্পাদনা করতে পারেন।

  5. আপনি যে রিপোজিটরি গ্রুপে নতুন রিপোজিটরি যোগ করতে চান তা নির্বাচন করুন। বিকল্পভাবে, একটি নতুন রিপোজিটরি গ্রুপ তৈরি এবং কনফিগার করতে একটি নতুন রিপোজিটরি গ্রুপ তৈরি করুন ক্লিক করুন।

  6. নির্বাচিত সংগ্রহস্থলগুলিকে সূচীকরণ শুরু করতে, Index এ ক্লিক করুন।

    রিপোজিটরির আকারের উপর নির্ভর করে ইনডেক্সিং সময় পরিবর্তিত হয়।

সিএলআই

  1. আপনি ডেভেলপার কানেক্ট কনফিগার করেছেন এবং আপনার রিপোজিটরির সাথে সংযুক্ত আছেন কিনা তা যাচাই করুন:
  2. শেল পরিবেশে, gcloud এর সমস্ত ইনস্টল করা উপাদান সর্বশেষ সংস্করণে আপডেট করা হয়েছে কিনা তা যাচাই করার জন্য gcloud components update কমান্ডটি চালান। এই ধাপের জন্য, আপনি gcloud ইনস্টল এবং আরম্ভ করতে পারেন, অথবা আপনি Cloud Shell Editor ব্যবহার করতে পারেন।

    gcloud components update
    
  3. একটি সূচক তৈরি করুন। দ্রুত কোড তৈরির পরামর্শ এবং অনুসন্ধানের জন্য আপনার সংগ্রহস্থল বিশ্লেষণ এবং পার্স করার জন্য কোড কাস্টমাইজেশন একটি সূচকের উপর নির্ভর করে।

    1. শেল পরিবেশে সূচক তৈরি করতে, gemini code-repository-indexes create কমান্ডটি ব্যবহার করুন:

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

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

      • INDEX_NAME : আপনার সূচীর নাম। গুরুত্বপূর্ণ : আপনার সূচীর নামটি নোট করুন। এই নথিতে বেশ কয়েকটি ধাপের জন্য আপনার এটি প্রয়োজন।
      • PROJECT_ID : আপনার Google ক্লাউড প্রোজেক্ট আইডি।
      • REGION : আপনার ক্লাউড প্রকল্পের Developer Connect-এ কনফিগার করা অঞ্চল। কমান্ড সফল হওয়ার জন্য, আপনাকে একটি সমর্থিত অঞ্চল নির্দিষ্ট করতে হবে।

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

      গুগল প্রতিটি প্রকল্প এবং প্রতিষ্ঠানের জন্য কোড রিপোজিটরি ইনডেক্সের সংখ্যা একটিতে সীমাবদ্ধ করে।

  4. রিপোজিটরি গ্রুপ ব্যবহার করে আপনার ইনডেক্সে অ্যাক্সেস নিয়ন্ত্রণ করুন। রিপোজিটরি গ্রুপ হল ইনডেক্সিং কনফিগারেশনের জন্য একটি কন্টেইনার, যার মধ্যে রিপোজিটরি এবং তাদের শাখা প্যাটার্ন অন্তর্ভুক্ত থাকে। রিপোজিটরি গ্রুপগুলি গ্রানুলার 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"}]'
    

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

    • REPOSITORY_GROUP : রিপোজিটরি গ্রুপের নাম, যেমন default
    • REPOSITORY_RESOURCE_NAME : ডেভেলপার কানেক্ট সংযোগের ভিতরে থাকা রিপোজিটরির নাম। রিপোজিটরির নাম খুঁজে পেতে, Google Cloud কনসোলের Git রিপোজিটরি পৃষ্ঠায় যান এবং Repositories ট্যাবে, টেবিলের Connection কলামের অধীনে Connection ID খুঁজুন। রিসোর্সের নাম কপি করতে, আরও বিকল্পের জন্য more_vert মেনুতে ক্লিক করুন এবং Copy resource path নির্বাচন করুন।
    • BRANCH_NAMES : আপনি যে শাখাগুলির নাম সূচী করতে চান, যেমন main|dev

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

    JSON সম্পর্কে

    [
      {
          "resource": "REPOSITORY_RESOURCE_NAME", "branchPattern": "main|dev"
      },
      {
          "resource": "REPOSITORY_RESOURCE_NAME", "branchPattern": "dev"
      }
    ]
    

    YAML সম্পর্কে

    - resource: REPOSITORY_RESOURCE_NAME
      branchPattern: main|dev
    
    - resource: REPOSITORY_RESOURCE_NAME
      branchPattern: dev
    

    শেল পরিবেশে JSON অথবা YAML ফাইলের উপর ভিত্তি করে একটি রিপোজিটরি গ্রুপ তৈরি করতে, gemini code-repository-indexes repository-groups create কমান্ডটি ব্যবহার করুন:

    JSON সম্পর্কে

    gcloud gemini code-repository-indexes repository-groups create REPOSITORY_GROUP \
        --project=PROJECT_ID \
        --location=REGION \
        --code-repository-index=INDEX_NAME \
        --repositories=FILEPATH.json
    

    YAML সম্পর্কে

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

  5. একটি প্রকল্পে রিপোজিটরি গ্রুপকে 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'
      

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

      • 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
    

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

    • GROUP_NAME : রিপোজিটরি গ্রুপ ব্যবহার করে আপনার ইনডেক্সে অ্যাক্সেস নিয়ন্ত্রণ করার জন্য পূর্ববর্তী ধাপে তৈরি করা রিপোজিটরি গ্রুপের নাম।
    • POLICY_FILE : IAM নীতি।

      আরও তথ্যের জন্য, gcloud gemini code-repository-indexes repository-groups set-iam-policy দেখুন।

টেরাফর্ম

  1. আপনি ডেভেলপার কানেক্ট কনফিগার করেছেন এবং আপনার রিপোজিটরির সাথে সংযুক্ত আছেন কিনা তা যাচাই করুন:

  2. একটি সূচক তৈরি করুন। দ্রুত কোড তৈরির পরামর্শ এবং অনুসন্ধানের জন্য আপনার সংগ্রহস্থল বিশ্লেষণ এবং পার্স করার জন্য কোড কাস্টমাইজেশন একটি সূচকের উপর নির্ভর করে।

    resource "google_gemini_code_repository_index" "example" {
      location = "REGION"
      code_repository_index_id = "INDEX_NAME"
    }
    

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

    • INDEX_NAME : আপনার সূচীর নাম। গুরুত্বপূর্ণ : আপনার সূচীর নামটি নোট করুন। এই নথিতে বেশ কয়েকটি ধাপের জন্য আপনার এটি প্রয়োজন।
    • PROJECT_ID : আপনার Google ক্লাউড প্রোজেক্ট আইডি।
    • REGION : আপনার ক্লাউড প্রকল্পের Developer Connect-এ কনফিগার করা অঞ্চল। কমান্ড সফল হওয়ার জন্য, আপনাকে একটি সমর্থিত অঞ্চল নির্দিষ্ট করতে হবে।

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

    গুগল প্রতিটি প্রকল্প এবং প্রতিষ্ঠানের জন্য কোড রিপোজিটরি ইনডেক্সের সংখ্যা একটিতে সীমাবদ্ধ করে।

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

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

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

    • রিপোজিটরি ইনডেক্স রিসোর্স কোড তৈরি করুন।
    • একই প্রকল্প এবং অবস্থানে, একটি নতুন ডেভেলপার কানেক্ট সংযোগ কনফিগার করুন।
    • সংযোগে গিট রেপো লিঙ্ক করুন।
    • লিঙ্কগুলির রিসোর্সের নাম পান, প্রতিটি লিঙ্কের জন্য সূচীতে শাখা প্যাটার্ন নির্বাচন করুন এবং এটিকে এক বা একাধিক রিপোজিটরি গ্রুপে রাখুন।
    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
    • REPOSITORY_RESOURCE_NAME : ডেভেলপার কানেক্ট সংযোগের ভিতরে থাকা রিপোজিটরির নাম। রিপোজিটরির নাম খুঁজে পেতে, Google Cloud কনসোলের Git রিপোজিটরি পৃষ্ঠায় যান এবং Repositories ট্যাবে, টেবিলের Connection কলামের অধীনে Connection ID খুঁজুন। রিসোর্সের নাম কপি করতে, আরও বিকল্পের জন্য more_vert মেনুতে ক্লিক করুন এবং Copy resource path নির্বাচন করুন।
    • BRANCH_NAMES : আপনি যে শাখাগুলির নাম সূচী করতে চান, যেমন main|dev

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

    JSON সম্পর্কে

    [
      {
          "resource": "REPOSITORY_RESOURCE_NAME", "branchPattern": "main|dev"
      },
      {
          "resource": "REPOSITORY_RESOURCE_NAME", "branchPattern": "dev"
      }
    ]
    

    YAML সম্পর্কে

    - resource: REPOSITORY_RESOURCE_NAME
      branchPattern: main|dev
    
    - resource: REPOSITORY_RESOURCE_NAME
      branchPattern: dev
    

    শেল পরিবেশে JSON অথবা YAML ফাইলের উপর ভিত্তি করে একটি রিপোজিটরি গ্রুপ তৈরি করতে, gemini code-repository-indexes repository-groups create কমান্ডটি ব্যবহার করুন:

    JSON সম্পর্কে

    gcloud gemini code-repository-indexes repository-groups create REPOSITORY_GROUP \
        --project=PROJECT_ID \
        --location=REGION \
        --code-repository-index=INDEX_NAME \
        --repositories=FILEPATH.json
    

    YAML সম্পর্কে

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

  4. একটি প্রকল্পে রিপোজিটরি গ্রুপকে 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'
      

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

      • PRINCIPAL : প্রিন্সিপালের ইমেল ঠিকানা যার অ্যাক্সেস প্রয়োজন—উদাহরণস্বরূপ, একজন ব্যক্তির জন্য user:test-user@gmail.com , অথবা একটি গোষ্ঠীর জন্য group:admins@example.com

        আরও তথ্যের জন্য, gcloud projects set-iam-policy দেখুন।

    2. যখন কোনও শর্ত নির্দিষ্ট করতে বলা হবে, তখন None লিখুন।

    সূচকের উপসেট

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

      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 : রিপোজিটরি গ্রুপ ব্যবহার করে আপনার ইনডেক্সে অ্যাক্সেস নিয়ন্ত্রণ করার জন্য পূর্ববর্তী ধাপে তৈরি করা রিপোজিটরি গ্রুপের নাম।

ইনডেক্সিং স্ট্যাটাস পরীক্ষা করুন

আপনি কতগুলি রিপোজিটরি ইন্ডেক্স করতে চান এবং তাদের আকারের উপর নির্ভর করে, কন্টেন্ট ইন্ডেক্স করতে ২৪ ঘন্টা পর্যন্ত সময় লাগতে পারে। বড় রিপোজিটরির ক্ষেত্রে, ইন্ডেক্স করতে আরও বেশি সময় লাগতে পারে। ইন্ডেক্সিং প্রতি ২৪ ঘন্টায় একবার করা হয়, রিপোজিটরিতে করা যেকোনো পরিবর্তন তুলে নেওয়া হয়।

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

    কনসোল

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

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

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

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

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

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

যেসব ডেভেলপাররা রিপোজিটরি গ্রুপে যোগ করেছেন যেখানে কমপক্ষে একটি রিসোর্স ইনডেক্স করা আছে, তারা তাদের IDE-তে একটি নোটিশ পাবেন যে কোড কাস্টমাইজেশন সক্ষম করা হয়েছে। কোড কাস্টমাইজেশন স্ট্যাটাস দেখতে, ডেভেলপাররা নীচের ডান কোণায় spark জেমিনি প্রতীকে ক্লিক করতে পারেন এবং অনুসন্ধান বারে নিম্নলিখিত কোড কাস্টমাইজেশন স্ট্যাটাসগুলির মধ্যে একটি খুঁজতে পারেন:

  • সব ঠিক আছে । কোড কাস্টমাইজেশন সক্ষম এবং কনফিগার করা হয়েছে।
  • অনুপলব্ধ । ডেভেলপারের কাছে রিপোজিটরি গ্রুপ অ্যাক্সেস নেই অথবা ব্যবহারকারীর যে রিপোজিটরি গ্রুপে অ্যাক্সেস আছে তা খালি।
  • আনসেট । কোড কাস্টমাইজেশন হয় সক্রিয় করা নেই অথবা প্রশাসক দ্বারা কনফিগার করা নেই।

কোড কাস্টমাইজেশন এবং সর্বোত্তম অনুশীলন সম্পর্কে আরও জানতে, কোড কাস্টমাইজেশন ব্যবহার করুন দেখুন।

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

নিম্নলিখিত বিকল্পগুলির মধ্যে একটি নির্বাচন করুন:

কনসোল

  1. গুগল ক্লাউড কনসোলে, জেমিনি প্রোডাক্টস পৃষ্ঠায় যান।

    জেমিনি পণ্যগুলিতে যান

    জেমিনি প্রোডাক্টস পৃষ্ঠাটি লোড হয়।

  2. নেভিগেশন মেনুতে, কোড কাস্টমাইজেশন ক্লিক করুন।

    কোড কাস্টমাইজেশন পৃষ্ঠাটি লোড হয়।

  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 : আপনার ক্লাউড প্রকল্পের Developer Connect-এ কনফিগার করা অঞ্চল। কমান্ড সফল হওয়ার জন্য, আপনাকে একটি সমর্থিত অঞ্চল নির্দিষ্ট করতে হবে।
    • 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. প্রতিটি রিপোজিটরি গ্রুপের জন্য পূর্ববর্তী ধাপগুলি পুনরাবৃত্তি করুন যতক্ষণ না আপনি সূচক থেকে সমস্ত রিপোজিটরি গ্রুপ মুছে ফেলেন।

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

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

এরপর কি?