OAuth কুইকস্টার্ট দিয়ে প্রমাণীকরণ, OAuth কুইকস্টার্ট দিয়ে প্রমাণীকরণ

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

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

উদ্দেশ্য

  • OAuth-এর জন্য আপনার ক্লাউড প্রজেক্ট সেট আপ করুন।
  • অ্যাপ্লিকেশন-ডিফল্ট-ক্রেডেনশিয়াল সেট আপ করুন
  • gcloud auth ব্যবহার না করে আপনার প্রোগ্রামে ক্রেডেনশিয়াল পরিচালনা করুন।

পূর্বশর্ত

এই কুইকস্টার্টটি চালানোর জন্য আপনার প্রয়োজন:

আপনার ক্লাউড প্রজেক্ট সেট আপ করুন

এই কুইকস্টার্টটি সম্পন্ন করতে, আপনাকে প্রথমে আপনার ক্লাউড প্রজেক্ট সেটআপ করতে হবে।

১. এপিআই সক্রিয় করুন

গুগল এপিআই ব্যবহার করার আগে, আপনাকে গুগল ক্লাউড প্রজেক্টে সেগুলো চালু করতে হবে।

  • গুগল ক্লাউড কনসোলে গুগল জেনারেটিভ ল্যাঙ্গুয়েজ এপিআই (Google Generative Language API) সক্রিয় করুন।

    এপিআই সক্রিয় করুন

২. OAuth সম্মতি স্ক্রিনটি কনফিগার করুন

এরপর প্রজেক্টের OAuth কনসেন্ট স্ক্রিনটি কনফিগার করুন এবং নিজেকে একজন টেস্ট ইউজার হিসেবে যুক্ত করুন। যদি আপনি আপনার ক্লাউড প্রজেক্টের জন্য এই ধাপটি ইতিমধ্যেই সম্পন্ন করে থাকেন, তাহলে পরবর্তী বিভাগে চলে যান।

  1. গুগল ক্লাউড কনসোলে, মেনু > গুগল অথ প্ল্যাটফর্ম > ওভারভিউ- তে যান।

    গুগল অথোরাইজেশন প্ল্যাটফর্মে যান

  2. প্রজেক্ট কনফিগারেশন ফর্মটি পূরণ করুন এবং অডিয়েন্স সেকশনে ইউজার টাইপ ‘এক্সটার্নাল’ হিসেবে সেট করুন।

  3. ফর্মের বাকি অংশ পূরণ করুন, ব্যবহারকারীর তথ্য নীতির শর্তাবলী মেনে নিন এবং তারপরে তৈরি করুন (Create ) বোতামে ক্লিক করুন।

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

  5. পরীক্ষামূলক ব্যবহারকারী যোগ করুন:

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

৩. একটি ডেস্কটপ অ্যাপ্লিকেশনের জন্য ক্রেডেনশিয়াল অনুমোদন করুন

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

  1. Google Cloud কনসোলে, মেনু > Google Auth প্ল্যাটফর্ম > ক্লায়েন্টস- এ যান।

    পরিচয়পত্রে যান

  2. ক্লায়েন্ট তৈরি করুন -এ ক্লিক করুন।

  3. অ্যাপ্লিকেশন টাইপ > ডেস্কটপ অ্যাপ-এ ক্লিক করুন।

  4. Name ফিল্ডে ক্রেডেনশিয়ালটির জন্য একটি নাম টাইপ করুন। এই নামটি শুধুমাত্র Google Cloud কনসোলে দেখানো হয়।

  5. Create-এ ক্লিক করুন। OAuth ক্লায়েন্ট তৈরি হওয়ার স্ক্রিনটি প্রদর্শিত হবে, যেখানে আপনার নতুন ক্লায়েন্ট আইডি এবং ক্লায়েন্ট সিক্রেট দেখা যাবে।

  6. OK- তে ক্লিক করুন। নতুন তৈরি করা ক্রেডেনশিয়ালটি OAuth 2.0 ক্লায়েন্ট আইডি-এর অধীনে দেখা যাবে।

  7. JSON ফাইলটি সংরক্ষণ করতে ডাউনলোড বোতামে ক্লিক করুন। এটি client_secret_<identifier>.json নামে সংরক্ষিত হবে, এটিকে client_secret.json নামে রিনেম করুন এবং আপনার ওয়ার্কিং ডিরেক্টরিতে নিয়ে যান।

অ্যাপ্লিকেশনের ডিফল্ট ক্রেডেনশিয়াল সেট আপ করুন

client_secret.json ফাইলটিকে ব্যবহারযোগ্য ক্রেডেনশিয়ালে রূপান্তর করতে, gcloud auth application-default login কমান্ডের --client-id-file আর্গুমেন্টে ফাইলটির অবস্থান পাস করুন।

gcloud auth application-default login \
    --client-id-file=client_secret.json \
    --scopes='https://www.googleapis.com/auth/cloud-platform,https://www.googleapis.com/auth/generative-language.retriever'

এই টিউটোরিয়ালে দেখানো সরলীকৃত প্রজেক্ট সেটআপের ফলে "Google hasn't verified this app." নামের একটি ডায়ালগ বক্স আসবে। এটি স্বাভাবিক, "continue" নির্বাচন করুন।

এর ফলে প্রাপ্ত টোকেনটি একটি সুপরিচিত স্থানে রাখা হয়, যাতে gcloud বা ক্লায়েন্ট লাইব্রেরিগুলো এটি অ্যাক্সেস করতে পারে।

gcloud auth application-default login 
--no-browser --client-id-file=client_secret.json
--scopes='https://www.googleapis.com/auth/cloud-platform,https://www.googleapis.com/auth/generative-language.retriever'

একবার অ্যাপ্লিকেশন ডিফল্ট ক্রেডেনশিয়ালস (ADC) সেট করা হয়ে গেলে, বেশিরভাগ ভাষার ক্লায়েন্ট লাইব্রেরিগুলোকে সেগুলো খুঁজে পেতে খুব সামান্য বা কোনো সাহায্যেরই প্রয়োজন হয় না।

কার্ল

এটি কাজ করছে কিনা তা পরীক্ষা করার দ্রুততম উপায় হলো curl ব্যবহার করে REST API অ্যাক্সেস করা:

access_token=$(gcloud auth application-default print-access-token)
project_id=<MY PROJECT ID>
curl -X GET https://generativelanguage.googleapis.com/v1/models \
    -H 'Content-Type: application/json' \
    -H "Authorization: Bearer ${access_token}" \
    -H "x-goog-user-project: ${project_id}" | grep '"name"'

পাইথন

পাইথনে ক্লায়েন্ট লাইব্রেরিগুলো সেগুলোকে স্বয়ংক্রিয়ভাবে খুঁজে নেবে:

pip install google-genai

এটি পরীক্ষা করার জন্য একটি ন্যূনতম স্ক্রিপ্ট হতে পারে:

from google import genai

client = genai.Client()
print('Available base models:', [m.name for m in client.models.list()])

পরবর্তী পদক্ষেপ

যদি সেটি কাজ করে, তাহলে আপনি আপনার টেক্সট ডেটার উপর সিমান্টিক রিট্রিভাল প্রয়োগ করার জন্য প্রস্তুত।

পরিচয়পত্র নিজেই পরিচালনা করুন [পাইথন]

অনেক ক্ষেত্রে ক্লায়েন্ট আইডি ( client_secret.json ) থেকে অ্যাক্সেস টোকেন তৈরি করার জন্য আপনার কাছে gcloud কমান্ডটি উপলব্ধ থাকবে না। গুগল আপনার অ্যাপের মধ্যেই এই প্রক্রিয়াটি পরিচালনা করার জন্য বিভিন্ন ভাষায় লাইব্রেরি সরবরাহ করে। এই বিভাগে পাইথনে প্রক্রিয়াটি দেখানো হয়েছে। ড্রাইভ এপিআই ডকুমেন্টেশনে অন্যান্য ভাষার জন্য এই ধরনের পদ্ধতির সমতুল্য উদাহরণ পাওয়া যাবে।

১. প্রয়োজনীয় লাইব্রেরিগুলো ইনস্টল করুন।

পাইথনের জন্য গুগল ক্লায়েন্ট লাইব্রেরি এবং জেমিনি ক্লায়েন্ট লাইব্রেরি ইনস্টল করুন।

pip install --upgrade -q google-api-python-client google-auth-httplib2 google-auth-oauthlib
pip install google-genai

২. ক্রেডেনশিয়াল ম্যানেজার লিখুন

অনুমোদন স্ক্রিনগুলোতে বারবার ক্লিক করার সংখ্যা কমাতে, আপনার ওয়ার্কিং ডিরেক্টরিতে load_creds.py নামে একটি ফাইল তৈরি করুন। এটি একটি token.json ফাইল ক্যাশ করে রাখবে যা পরে পুনরায় ব্যবহার করা যাবে, অথবা মেয়াদ শেষ হয়ে গেলে রিফ্রেশ করা যাবে।

client_secret.json ফাইলটিকে genai.configure সাথে ব্যবহারযোগ্য একটি টোকেনে রূপান্তর করতে নিম্নলিখিত কোডটি দিয়ে শুরু করুন:

import os.path

from google.auth.transport.requests import Request
from google.oauth2.credentials import Credentials
from google_auth_oauthlib.flow import InstalledAppFlow

SCOPES = ['https://www.googleapis.com/auth/generative-language.retriever']

def load_creds():
    """Converts `client_secret.json` to a credential object.

    This function caches the generated tokens to minimize the use of the
    consent screen.
    """
    creds = None
    # The file token.json stores the user's access and refresh tokens, and is
    # created automatically when the authorization flow completes for the first
    # time.
    if os.path.exists('token.json'):
        creds = Credentials.from_authorized_user_file('token.json', SCOPES)
    # If there are no (valid) credentials available, let the user log in.
    if not creds or not creds.valid:
        if creds and creds.expired and creds.refresh_token:
            creds.refresh(Request())
        else:
            flow = InstalledAppFlow.from_client_secrets_file(
                'client_secret.json', SCOPES)
            creds = flow.run_local_server(port=0)
        # Save the credentials for the next run
        with open('token.json', 'w') as token:
            token.write(creds.to_json())
    return creds

৩. আপনার প্রোগ্রামটি লিখুন

এখন আপনার script.py তৈরি করুন:

import pprint
from google import genai
from load_creds import load_creds

creds = load_creds()

client = genai.Client(credentials=creds)

print()
print('Available base models:', [m.name for m in client.models.list()])

৪. আপনার প্রোগ্রামটি চালান।

আপনার ওয়ার্কিং ডিরেক্টরিতে, নমুনাটি চালান:

python script.py

আপনি প্রথমবার স্ক্রিপ্টটি চালালে, এটি একটি ব্রাউজার উইন্ডো খোলে এবং অ্যাক্সেসের অনুমতি চাইতে বলে।

  1. আপনি যদি আগে থেকেই আপনার গুগল অ্যাকাউন্টে সাইন ইন করা না থাকেন, তাহলে আপনাকে সাইন ইন করতে বলা হবে। আপনি যদি একাধিক অ্যাকাউন্টে সাইন ইন করে থাকেন, তাহলে আপনার প্রজেক্ট কনফিগার করার সময় যে অ্যাকাউন্টটিকে 'টেস্ট অ্যাকাউন্ট' হিসেবে সেট করেছেন, সেটিই বেছে নিতে ভুলবেন না।

  2. অনুমোদনের তথ্য ফাইল সিস্টেমে সংরক্ষিত থাকে, তাই পরের বার আপনি নমুনা কোডটি চালালে আপনাকে অনুমোদনের জন্য অনুরোধ করা হবে না।

আপনি সফলভাবে প্রমাণীকরণ সেটআপ করেছেন।