احراز هویت با شروع سریع OAuth، احراز هویت با شروع سریع OAuth

PalM API به شما امکان می دهد مدل ها را بر اساس داده های خود تنظیم کنید. از آنجایی که داده‌های شما و مدل‌های تنظیم‌شده شما هستند، نسبت به کلیدهای API به کنترل‌های دسترسی سخت‌تر نیاز دارند.

این شروع سریع از یک رویکرد احراز هویت ساده استفاده می کند که برای یک محیط آزمایشی مناسب است. برای یک محیط تولید، قبل از انتخاب اعتبارنامه‌های دسترسی مناسب برای برنامه‌تان، درباره احراز هویت و مجوز اطلاعات کسب کنید.

اهداف

  • پروژه ابری خود را برای OAuth تنظیم کنید
  • برنامه-default-credentials را تنظیم کنید
  • به جای استفاده از gcloud auth اعتبارنامه ها را در برنامه خود مدیریت کنید

پیش نیازها

برای اجرای این شروع سریع، شما نیاز دارید:

پروژه ابری خود را راه اندازی کنید

برای تکمیل این شروع سریع، ابتدا باید پروژه ابری خود را راه اندازی کنید.

1. API را فعال کنید

قبل از استفاده از Google API، باید آنها را در پروژه Google Cloud روشن کنید.

سپس صفحه رضایت OAuth پروژه را پیکربندی کنید و خود را به عنوان کاربر آزمایشی اضافه کنید. اگر قبلاً این مرحله را برای پروژه Cloud خود انجام داده اید، به بخش بعدی بروید.

  1. در کنسول Google Cloud، به منو > APIs & Services > صفحه رضایت OAuth بروید.

    به صفحه رضایت OAuth بروید

  2. نوع کاربری خارجی را برای برنامه خود انتخاب کنید، سپس روی ایجاد کلیک کنید.

  3. فرم ثبت نام برنامه را تکمیل کنید (شما می توانید بیشتر فیلدها را خالی بگذارید)، سپس روی ذخیره و ادامه کلیک کنید.

  4. در حال حاضر، می‌توانید از افزودن دامنه‌ها صرفنظر کنید و روی ذخیره و ادامه کلیک کنید. در آینده، وقتی برنامه‌ای را برای استفاده خارج از سازمان Google Workspace خود ایجاد می‌کنید، باید محدوده‌های مجوزی را که برنامه شما به آن نیاز دارد، اضافه کرده و تأیید کنید.

  5. افزودن کاربران آزمایشی:

    1. در بخش تست کاربران ، روی افزودن کاربران کلیک کنید.
    2. آدرس ایمیل خود و سایر کاربران آزمایشی مجاز را وارد کنید، سپس روی ذخیره و ادامه کلیک کنید.
  6. خلاصه ثبت برنامه خود را مرور کنید. برای ایجاد تغییرات، روی ویرایش کلیک کنید. اگر ثبت برنامه خوب به نظر می رسد، روی بازگشت به داشبورد کلیک کنید.

3. اعتبار یک برنامه دسکتاپ را تأیید کنید

برای احراز هویت به عنوان کاربر نهایی و دسترسی به داده های کاربر در برنامه خود، باید یک یا چند شناسه مشتری OAuth 2.0 ایجاد کنید. شناسه مشتری برای شناسایی یک برنامه واحد در سرورهای OAuth Google استفاده می شود. اگر برنامه شما روی چندین پلتفرم اجرا می شود، باید برای هر پلتفرم یک شناسه مشتری جداگانه ایجاد کنید.

  1. در کنسول Google Cloud، به منو > APIs & Services > Credentials بروید.

    به Credentials بروید

  2. روی ایجاد اعتبارنامه > شناسه مشتری OAuth کلیک کنید.

  3. روی نوع برنامه > برنامه دسکتاپ کلیک کنید.

  4. در قسمت نام ، نامی را برای اعتبارنامه تایپ کنید. این نام فقط در کنسول Google Cloud نشان داده می شود.

  5. روی ایجاد کلیک کنید. صفحه ایجاد شده توسط سرویس گیرنده OAuth ظاهر می شود که شناسه مشتری و راز مشتری جدید شما را نشان می دهد.

  6. روی OK کلیک کنید. اعتبار جدید ایجاد شده در شناسه های مشتری OAuth 2.0 ظاهر می شود.

  7. برای ذخیره فایل JSON روی دکمه دانلود کلیک کنید. به‌عنوان client_secret_<identifier>.json ذخیره می‌شود و نام آن را به client_secret.json تغییر می‌دهیم و به فهرست کاری خود منتقل می‌کنیم.

اعتبار پیش فرض برنامه را تنظیم کنید

برای تبدیل فایل client_secret.json به اعتبارنامه های قابل استفاده، محل آن را آرگومان --client-id-file دستور gcloud auth application-default login ارسال کنید.

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.tuning'

راه‌اندازی پروژه ساده‌شده در این آموزش باعث می‌شود «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.tuning'

هنگامی که اعتبارنامه های پیش فرض برنامه (ACD) را تنظیم کردید، کتابخانه های سرویس گیرنده در اکثر زبان ها برای یافتن آنها به حداقل یا بدون کمک نیاز دارند.

حلقه

سریع‌ترین راه برای آزمایش عملکرد این است که از آن برای دسترسی به بقیه API با استفاده از curl استفاده کنید:

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

پایتون

در پایتون، کتابخانه های سرویس گیرنده باید آنها را به طور خودکار پیدا کنند:

pip install google-generativeai

حداقل اسکریپت برای آزمایش آن ممکن است این باشد:

import google.generativeai as genai

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

خروجی مورد انتظار عبارت است از:

Available base models: ['models/chat-bison-001', 'models/text-bison-001', 'models/embedding-gecko-001']
My tuned models: []

Node.js

برای استفاده از این اعتبارنامه ها با کتابخانه مشتری Node.js، متغیر محیطی GOOGLE_APPLICATION_CREDENTIALS را تنظیم کنید.

export GOOGLE_APPLICATION_CREDENTIALS='<PATH_TO>/application_default_credentials.json'

کتابخانه مشتری را نصب کنید:

npm install @google-ai/generativelanguage

یک اسکریپت مینیمال بسازید:

const { ModelServiceClient } =
  require("@google-ai/generativelanguage").v1beta3;

const MODEL_NAME = "models/text-bison-001";

const client = new ModelServiceClient({});

client
  .listModels({})
  .then((result) => {
    result = result[0]
    for (let i = 0; i < result.length; i++) {
      console.log(result[i].name);
    }
  });

خروجی آن باید باشد:

models/chat-bison-001
models/text-bison-001
models/embedding-gecko-001

مراحل بعدی

اگر کار می کند، آماده هستید که خودتان یک مدل را تنظیم کنید. شروع با تنظیم را امتحان کنید.

اعتبارنامه ها را خودتان مدیریت کنید [Python]

در بسیاری از موارد، دستور gcloud را برای ایجاد نشانه دسترسی از شناسه مشتری ( client_secret.json ) در دسترس ندارید. Google کتابخانه‌هایی را به زبان‌های مختلف ارائه می‌کند تا به شما امکان می‌دهد آن فرآیند را در برنامه خود مدیریت کنید. این بخش روند را در پایتون نشان می دهد. نمونه‌های معادلی از این نوع روش برای زبان‌های دیگر در اسناد درایو api موجود است.

1. کتابخانه های لازم را نصب کنید

کتابخانه مشتری Google را برای Python و کتابخانه مشتری PalM را نصب کنید.

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

pip install google-generativeai

2. مدیر اعتبارنامه را بنویسید

در پوشه کاری خود، یک فایل با نام load_creds.py ایجاد کنید. با کد زیر شروع کنید تا 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.tuning']

def load_creds():
    """Converts `oauth-client-id.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(
                'oauth-client-id.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

برای به حداقل رساندن تعداد دفعاتی که اگر فایل token.json را ذخیره می‌کند، باید از طریق صفحه‌های مجوز کلیک کنید و بعداً می‌تواند مجدداً از آن استفاده کند، یا اگر منقضی شده است آن را بازخوانی کنید.

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_tuned_models()])
print('My tuned models:', [m.name for m in genai.list_tuned_models()])

4. برنامه خود را اجرا کنید

در پوشه کاری خود، نمونه را اجرا کنید:

python script.py

اولین باری که اسکریپت را اجرا می‌کنید، یک پنجره مرورگر باز می‌شود و از شما می‌خواهد اجازه دسترسی را بدهید.

  1. اگر قبلاً وارد حساب Google خود نشده‌اید، از شما خواسته می‌شود که وارد شوید. اگر به چندین حساب وارد شده‌اید ، هنگام پیکربندی پروژه، حتماً حسابی را که به‌عنوان «حساب آزمایشی» تنظیم کرده‌اید انتخاب کنید.

  2. اطلاعات مجوز در سیستم فایل ذخیره می شود، بنابراین دفعه بعد که کد نمونه را اجرا می کنید، از شما درخواست مجوز نمی شود.

شما با موفقیت احراز هویت را تنظیم کردید.

،

PalM API به شما امکان می دهد مدل ها را بر اساس داده های خود تنظیم کنید. از آنجایی که داده‌های شما و مدل‌های تنظیم‌شده شما هستند، نسبت به کلیدهای API به کنترل‌های دسترسی سخت‌تر نیاز دارند.

این شروع سریع از یک رویکرد احراز هویت ساده استفاده می کند که برای یک محیط آزمایشی مناسب است. برای یک محیط تولید، قبل از انتخاب اعتبارنامه‌های دسترسی مناسب برای برنامه‌تان، درباره احراز هویت و مجوز اطلاعات کسب کنید.

اهداف

  • پروژه ابری خود را برای OAuth تنظیم کنید
  • برنامه-default-credentials را تنظیم کنید
  • به جای استفاده از gcloud auth اعتبارنامه ها را در برنامه خود مدیریت کنید

پیش نیازها

برای اجرای این شروع سریع، شما نیاز دارید:

پروژه ابری خود را راه اندازی کنید

برای تکمیل این شروع سریع، ابتدا باید پروژه ابری خود را راه اندازی کنید.

1. API را فعال کنید

قبل از استفاده از Google API، باید آنها را در پروژه Google Cloud روشن کنید.

سپس صفحه رضایت OAuth پروژه را پیکربندی کنید و خود را به عنوان کاربر آزمایشی اضافه کنید. اگر قبلاً این مرحله را برای پروژه Cloud خود انجام داده اید، به بخش بعدی بروید.

  1. در کنسول Google Cloud، به منو > APIs & Services > صفحه رضایت OAuth بروید.

    به صفحه رضایت OAuth بروید

  2. نوع کاربری خارجی را برای برنامه خود انتخاب کنید، سپس روی ایجاد کلیک کنید.

  3. فرم ثبت نام برنامه را تکمیل کنید (شما می توانید بیشتر فیلدها را خالی بگذارید)، سپس روی ذخیره و ادامه کلیک کنید.

  4. در حال حاضر، می‌توانید از افزودن دامنه‌ها صرفنظر کنید و روی ذخیره و ادامه کلیک کنید. در آینده، وقتی برنامه‌ای را برای استفاده خارج از سازمان Google Workspace خود ایجاد می‌کنید، باید محدوده‌های مجوزی را که برنامه شما به آن نیاز دارد، اضافه کرده و تأیید کنید.

  5. افزودن کاربران آزمایشی:

    1. در بخش تست کاربران ، روی افزودن کاربران کلیک کنید.
    2. آدرس ایمیل خود و سایر کاربران آزمایشی مجاز را وارد کنید، سپس روی ذخیره و ادامه کلیک کنید.
  6. خلاصه ثبت برنامه خود را مرور کنید. برای ایجاد تغییرات، روی ویرایش کلیک کنید. اگر ثبت برنامه خوب به نظر می رسد، روی بازگشت به داشبورد کلیک کنید.

3. اعتبار یک برنامه دسکتاپ را تأیید کنید

برای احراز هویت به عنوان کاربر نهایی و دسترسی به داده های کاربر در برنامه خود، باید یک یا چند شناسه مشتری OAuth 2.0 ایجاد کنید. شناسه مشتری برای شناسایی یک برنامه واحد در سرورهای OAuth Google استفاده می شود. اگر برنامه شما روی چندین پلتفرم اجرا می شود، باید برای هر پلتفرم یک شناسه مشتری جداگانه ایجاد کنید.

  1. در کنسول Google Cloud، به منو > APIs & Services > Credentials بروید.

    به Credentials بروید

  2. روی ایجاد اعتبارنامه > شناسه مشتری OAuth کلیک کنید.

  3. روی نوع برنامه > برنامه دسکتاپ کلیک کنید.

  4. در قسمت نام ، نامی را برای اعتبارنامه تایپ کنید. این نام فقط در کنسول Google Cloud نشان داده می شود.

  5. روی ایجاد کلیک کنید. صفحه ایجاد شده توسط سرویس گیرنده OAuth ظاهر می شود که شناسه مشتری و راز مشتری جدید شما را نشان می دهد.

  6. روی OK کلیک کنید. اعتبار جدید ایجاد شده در شناسه های مشتری OAuth 2.0 ظاهر می شود.

  7. برای ذخیره فایل JSON روی دکمه دانلود کلیک کنید. به‌عنوان client_secret_<identifier>.json ذخیره می‌شود و نام آن را به client_secret.json تغییر می‌دهیم و به فهرست کاری خود منتقل می‌کنیم.

اعتبار پیش فرض برنامه را تنظیم کنید

برای تبدیل فایل client_secret.json به اعتبارنامه های قابل استفاده، محل آن را آرگومان --client-id-file دستور gcloud auth application-default login ارسال کنید.

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.tuning'

راه‌اندازی پروژه ساده‌شده در این آموزش باعث می‌شود «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.tuning'

هنگامی که اعتبارنامه های پیش فرض برنامه (ACD) را تنظیم کردید، کتابخانه های سرویس گیرنده در اکثر زبان ها برای یافتن آنها به حداقل یا بدون کمک نیاز دارند.

حلقه

سریع‌ترین راه برای آزمایش عملکرد این است که از آن برای دسترسی به بقیه API با استفاده از curl استفاده کنید:

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

پایتون

در پایتون، کتابخانه های سرویس گیرنده باید آنها را به طور خودکار پیدا کنند:

pip install google-generativeai

حداقل اسکریپت برای آزمایش آن ممکن است این باشد:

import google.generativeai as genai

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

خروجی مورد انتظار عبارت است از:

Available base models: ['models/chat-bison-001', 'models/text-bison-001', 'models/embedding-gecko-001']
My tuned models: []

Node.js

برای استفاده از این اعتبارنامه ها با کتابخانه مشتری Node.js، متغیر محیطی GOOGLE_APPLICATION_CREDENTIALS را تنظیم کنید.

export GOOGLE_APPLICATION_CREDENTIALS='<PATH_TO>/application_default_credentials.json'

کتابخانه مشتری را نصب کنید:

npm install @google-ai/generativelanguage

یک اسکریپت مینیمال بسازید:

const { ModelServiceClient } =
  require("@google-ai/generativelanguage").v1beta3;

const MODEL_NAME = "models/text-bison-001";

const client = new ModelServiceClient({});

client
  .listModels({})
  .then((result) => {
    result = result[0]
    for (let i = 0; i < result.length; i++) {
      console.log(result[i].name);
    }
  });

خروجی آن باید باشد:

models/chat-bison-001
models/text-bison-001
models/embedding-gecko-001

مراحل بعدی

اگر کار می کند، آماده هستید که خودتان یک مدل را تنظیم کنید. شروع با تنظیم را امتحان کنید.

اعتبارنامه ها را خودتان مدیریت کنید [Python]

در بسیاری از موارد، دستور gcloud را برای ایجاد نشانه دسترسی از شناسه مشتری ( client_secret.json ) در دسترس ندارید. Google کتابخانه‌هایی را به زبان‌های مختلف ارائه می‌کند تا به شما امکان می‌دهد آن فرآیند را در برنامه خود مدیریت کنید. این بخش روند را در پایتون نشان می دهد. نمونه‌های معادلی از این نوع روش برای زبان‌های دیگر در اسناد درایو api موجود است.

1. کتابخانه های لازم را نصب کنید

کتابخانه مشتری Google را برای Python و کتابخانه مشتری PalM را نصب کنید.

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

pip install google-generativeai

2. مدیر اعتبارنامه را بنویسید

در پوشه کاری خود، یک فایل با نام load_creds.py ایجاد کنید. با کد زیر شروع کنید تا 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.tuning']

def load_creds():
    """Converts `oauth-client-id.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(
                'oauth-client-id.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

برای به حداقل رساندن تعداد دفعاتی که اگر فایل token.json را ذخیره می‌کند، باید از طریق صفحه‌های مجوز کلیک کنید و بعداً می‌تواند مجدداً از آن استفاده کند، یا اگر منقضی شده است آن را بازخوانی کنید.

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_tuned_models()])
print('My tuned models:', [m.name for m in genai.list_tuned_models()])

4. برنامه خود را اجرا کنید

در پوشه کاری خود، نمونه را اجرا کنید:

python script.py

اولین باری که اسکریپت را اجرا می‌کنید، یک پنجره مرورگر باز می‌شود و از شما می‌خواهد اجازه دسترسی را بدهید.

  1. اگر قبلاً وارد حساب Google خود نشده‌اید، از شما خواسته می‌شود که وارد شوید. اگر به چندین حساب وارد شده‌اید ، هنگام پیکربندی پروژه، حتماً حسابی را که به‌عنوان «حساب آزمایشی» تنظیم کرده‌اید انتخاب کنید.

  2. اطلاعات مجوز در سیستم فایل ذخیره می شود، بنابراین دفعه بعد که کد نمونه را اجرا می کنید، از شما درخواست مجوز نمی شود.

شما با موفقیت احراز هویت را تنظیم کردید.