OAuth क्विकस्टार्ट की मदद से पुष्टि करना

Gemini API की पुष्टि करने का सबसे आसान तरीका, एपीआई पासकोड को कॉन्फ़िगर करना है. इसके बारे में Gemini API के क्विकस्टार्ट में बताया गया है. अगर आपको ऐक्सेस कंट्रोल के लिए ज़्यादा सख्त तरीका चाहिए, तो OAuth का इस्तेमाल करें. इस गाइड की मदद से, आपको OAuth की मदद से पुष्टि करने की सुविधा सेट अप करने में मदद मिलेगी.

इस गाइड में, पुष्टि करने के लिए आसान तरीके का इस्तेमाल किया गया है. यह तरीका, टेस्टिंग एनवायरमेंट के लिए सही है. प्रोडक्शन एनवायरमेंट के लिए, अपने ऐप्लिकेशन के लिए सही ऐक्सेस क्रेडेंशियल चुनने से पहले, पुष्टि करने और अनुमति देने के बारे में जानें.

मकसद

  • OAuth के लिए अपना क्लाउड प्रोजेक्ट सेट अप करना
  • application-default-credentials सेट अप करना
  • gcloud auth का इस्तेमाल करने के बजाय, अपने प्रोग्राम में क्रेडेंशियल मैनेज करें

ज़रूरी शर्तें

यह क्विकस्टार्ट चलाने के लिए, आपके पास ये चीज़ें होनी चाहिए:

अपना क्लाउड प्रोजेक्ट सेट अप करना

यह शुरुआती तरीका पूरा करने के लिए, आपको सबसे पहले अपना Cloud प्रोजेक्ट सेट अप करना होगा.

1. एपीआई चालू करना

Google API का इस्तेमाल करने से पहले, आपको उन्हें Google Cloud प्रोजेक्ट में चालू करना होगा.

2. OAuth की सहमति वाली स्क्रीन को कॉन्फ़िगर करना

इसके बाद, प्रोजेक्ट की OAuth सहमति स्क्रीन को कॉन्फ़िगर करें और खुद को टेस्ट उपयोगकर्ता के तौर पर जोड़ें. अगर आपने अपने Cloud प्रोजेक्ट के लिए यह चरण पहले ही पूरा कर लिया है, तो सीधे अगले सेक्शन पर जाएं.

  1. Google Cloud console में, मेन्यू > एपीआई और सेवाएं > OAuth सहमति वाली स्क्रीन पर जाएं.

    OAuth की सहमति वाली स्क्रीन पर जाना

  2. अपने ऐप्लिकेशन के लिए, उपयोगकर्ता का टाइप बाहरी उपयोगकर्ता चुनें. इसके बाद, बनाएं पर क्लिक करें.

  3. ऐप्लिकेशन रजिस्ट्रेशन फ़ॉर्म को पूरा करें. ज़्यादातर फ़ील्ड खाली छोड़े जा सकते हैं. इसके बाद, सेव करें और जारी रखें पर क्लिक करें.

  4. फ़िलहाल, स्कोप जोड़ने की प्रोसेस को छोड़ा जा सकता है. इसके बाद, सेव करें और जारी रखें पर क्लिक करें. आने वाले समय में, जब Google Workspace के संगठन के बाहर इस्तेमाल करने के लिए कोई ऐप्लिकेशन बनाया जाएगा, तो आपको अनुमति के उन स्कोप को जोड़ना होगा और उनकी पुष्टि करनी होगी जिनकी आपके ऐप्लिकेशन को ज़रूरत है.

  5. टेस्टर जोड़ें:

    1. टेस्ट उपयोगकर्ता में जाकर, उपयोगकर्ता जोड़ें पर क्लिक करें.
    2. अपना ईमेल पता और टेस्ट के लिए अनुमति पा चुके अन्य उपयोगकर्ताओं के ईमेल पते डालें. इसके बाद, सेव करें और जारी रखें पर क्लिक करें.
  6. अपने ऐप्लिकेशन के रजिस्ट्रेशन की खास जानकारी देखें. बदलाव करने के लिए, बदलाव करें पर क्लिक करें. अगर ऐप्लिकेशन का रजिस्ट्रेशन ठीक है, तो डैशबोर्ड पर वापस जाएं पर क्लिक करें.

3. किसी डेस्कटॉप ऐप्लिकेशन के लिए क्रेडेंशियल को अनुमति देना

असली उपयोगकर्ता के तौर पर पुष्टि करने और अपने ऐप्लिकेशन में उपयोगकर्ता का डेटा ऐक्सेस करने के लिए, आपको एक या एक से ज़्यादा OAuth 2.0 क्लाइंट आईडी बनाने होंगे. क्लाइंट आईडी का इस्तेमाल, Google के OAuth सर्वर पर किसी एक ऐप्लिकेशन की पहचान करने के लिए किया जाता है. अगर आपका ऐप्लिकेशन कई प्लैटफ़ॉर्म पर काम करता है, तो आपको हर प्लैटफ़ॉर्म के लिए अलग-अलग क्लाइंट आईडी बनाना होगा.

  1. Google Cloud console में, मेन्यू > एपीआई और सेवाएं > क्रेडेंशियल पर जाएं.

    क्रेडेंशियल पर जाएं

  2. क्रेडेंशियल बनाएं > OAuth क्लाइंट आईडी पर क्लिक करें.

  3. ऐप्लिकेशन का टाइप > डेस्कटॉप ऐप्लिकेशन पर क्लिक करें.

  4. नाम फ़ील्ड में, क्रेडेंशियल के लिए कोई नाम टाइप करें. यह नाम सिर्फ़ Google Cloud Console में दिखता है.

  5. बनाएं पर क्लिक करें. OAuth क्लाइंट बनने के बाद, आपको एक स्क्रीन दिखेगी. इसमें आपका नया क्लाइंट आईडी और क्लाइंट पासवर्ड दिखेगा.

  6. ठीक है पर क्लिक करें. नया क्रेडेंशियल, 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 ने इस ऐप्लिकेशन की पुष्टि नहीं की है." डायलॉग बॉक्स दिखता है. यह सामान्य है. "जारी रखें" को चुनें.

इससे, जनरेट हुए टोकन को एक ऐसी जगह पर सेव किया जाता है जिसे 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'

ऐप्लिकेशन के डिफ़ॉल्ट क्रेडेंशियल (एसीडी) सेट करने के बाद, ज़्यादातर भाषाओं में क्लाइंट लाइब्रेरी को ढूंढने के लिए, बहुत कम या कोई मदद नहीं चाहिए.

Curl

यह जांचने का सबसे तेज़ तरीका है कि यह काम कर रहा है या नहीं. इसके लिए, 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"'

Python

Python में, क्लाइंट लाइब्रेरी उन्हें अपने-आप ढूंढ लेंगी:

pip install google-generativeai

इसकी जांच करने के लिए, कम से कम स्क्रिप्ट इस तरह की हो सकती है:

import google.generativeai as genai

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

अगले चरण

अगर यह काम कर रहा है, तो अपने टेक्स्ट डेटा पर सेमैनटिक रीट्रिवल आज़माने के लिए तैयार हैं.

[Python] क्रेडेंशियल खुद मैनेज करना

कई मामलों में, Client-ID (client_secret.json) की मदद से ऐक्सेस टोकन बनाने के लिए gcloud कमांड उपलब्ध नहीं होगा. Google कई भाषाओं में लाइब्रेरी की सुविधा देता है, ताकि आप अपने ऐप्लिकेशन में उस प्रोसेस को मैनेज कर सकें. यह सेक्शन, Python में इस प्रोसेस को दिखाता है. Drive API दस्तावेज़ में, अन्य भाषाओं के लिए, इस तरह के तरीके के मिलते-जुलते उदाहरण उपलब्ध हैं

1. ज़रूरी लाइब्रेरी इंस्टॉल करना

Python के लिए Google क्लाइंट लाइब्रेरी और Gemini क्लाइंट लाइब्रेरी इंस्टॉल करें.

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

2. क्रेडेंशियल मैनेजर लिखें

ऑथराइज़ेशन स्क्रीन को बार-बार क्लिक करने की ज़रूरत को कम करने के लिए, अपनी वर्किंग डायरेक्ट्री में 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

3. अपना प्रोग्राम लिखना

अब अपना script.py बनाएं:

import pprint
import google.generativeai as genai
from load_creds import load_creds

creds = load_creds()

genai.configure(credentials=creds)

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

4. प्रोग्राम चलाएं

अपनी वर्किंग डायरेक्ट्री में, सैंपल चलाएं:

python script.py

पहली बार स्क्रिप्ट चलाने पर, यह एक ब्राउज़र विंडो खोलती है और आपको ऐक्सेस की अनुमति देने के लिए कहती है.

  1. अगर आपने Google खाते में पहले से साइन इन नहीं किया है, तो आपसे साइन इन करने के लिए कहा जाएगा. अगर आपने कई खातों में साइन इन किया हुआ है, तो अपना प्रोजेक्ट कॉन्फ़िगर करते समय, उस खाते को ज़रूर चुनें जिसे आपने "टेस्ट खाते" के तौर पर सेट किया है.

  2. अनुमति की जानकारी, फ़ाइल सिस्टम में सेव की जाती है. इसलिए, अगली बार सैंपल कोड चलाने पर, आपको अनुमति के लिए कहा नहीं जाएगा.

पुष्टि करने की सुविधा सेट अप हो गई है.