OAuth ile kimlik doğrulama hızlı başlangıç kılavuzu

Gemini API, kendi verileriniz üzerinde semantik alma işlemi gerçekleştirmenize olanak tanır. verilerinizin anahtarlarından daha katı erişim denetimleri olması gerekir.

Bu hızlı başlangıç kılavuzunda, size uygun olan basitleştirilmiş bir kimlik doğrulama yaklaşımı kullanılmıştır test ortamı. Üretim ortamı için: hakkında kimlik doğrulama ve yetkilendirme önce erişim kimlik bilgilerini seçme seçmeniz gerekir.

Hedefler

  • Bulut projenizi OAuth için ayarlayın
  • application-default-credentials'ı ayarla
  • gcloud auth kullanmak yerine programınızda kimlik bilgilerini yönetin

Ön koşullar

Bu hızlı başlangıç kılavuzunu çalıştırmak için gerekenler:

Bulut projenizi ayarlayın

Bu hızlı başlangıç kılavuzunu tamamlamak için önce Cloud projenizi kurmanız gerekir.

1. API'yi etkinleştirme

Google API'lerini kullanmadan önce bir Google Cloud projesinde etkinleştirmeniz gerekir.

2. OAuth izin ekranını yapılandırın

Ardından, projenin OAuth izin ekranını yapılandırın ve kendinizi test olarak ekleyin belirtir. Cloud projeniz için bu adımı zaten tamamladıysanız şu bölüme geçin: bir sonraki bölüme geçin.

  1. Google Cloud konsolunda Menü'ye gidin > API'ler ve Hizmetler > OAuth izin ekranı'nı seçin.

    OAuth izin ekranına git

  2. Uygulamanız için Harici kullanıcı türünü seçin ve ardından Oluştur'u tıklayın.

  3. Uygulama kayıt formunu doldurun (çoğu alanı boş bırakabilirsiniz), ardından Kaydet ve Devam Et'i tıklayın.

  4. Şimdilik kapsam eklemeyi atlayıp Kaydet ve Devam Et'i tıklayabilirsiniz. Google Workspace dışında kullanmak üzere bir uygulama oluşturduğunuzda yetkilendirme kapsamlarını eklemeniz ve doğrulamanız pek çok bilgi sağlayabilir.

  5. Test kullanıcıları ekleyin:

    1. Test kullanıcıları bölümünde Kullanıcı ekle'yi tıklayın.
    2. E-posta adresinizi ve diğer yetkili test kullanıcılarını girin, ardından Kaydet ve Devam Et'i tıklayın.
  6. Uygulama kaydı özetinizi inceleyin. Değişiklik yapmak için Düzenle'yi tıklayın. Eğer Uygulama kaydında bir sorun yoksa Kontrol Paneline Dön'ü tıklayın.

3. Masaüstü uygulaması için kimlik bilgilerini yetkilendirme

Son kullanıcı olarak kimlik doğrulamak ve uygulamanızdaki kullanıcı verilerine erişmek için şunları yapmanız gerekir: En az bir OAuth 2.0 İstemci Kimliği oluşturun. Client-ID, bir tek bir uygulamayı Google'ın OAuth sunucularına göndermesini sağlar. Uygulamanız birden fazla platformda çalışıyorsa her platform için ayrı bir istemci kimliği oluşturmanız gerekir.

  1. Google Cloud konsolunda Menü'ye gidin > API'ler ve Hizmetler > Credentials (Kimlik Bilgisi).

    Kimlik bilgilerine git

  2. Kimlik Bilgisi Oluştur'u tıklayın > OAuth istemci kimliği.

  3. Uygulama türü'nü tıklayın > Masaüstü uygulaması.

  4. Ad alanına kimlik bilgisi için bir ad yazın. Bu ad yalnızca Google Cloud Console'da görebilirsiniz.

  5. Oluştur'u tıklayın. OAuth istemcisi oluşturuldu ekranı görünür ve yeni istemcinizi gösterir İstemci kimliği ve İstemci gizli anahtarı.

  6. Tamam'ı tıklayın. Yeni oluşturulan kimlik bilgisi OAuth 2.0 İstemcisi altında görünür. Kimlikler.

  7. JSON dosyasını kaydetmek için indir düğmesini tıklayın. Şu şekilde kaydedilecek: client_secret_<identifier>.json ve client_secret.json olarak yeniden adlandır çalışma dizininize taşımanızı sağlar.

Uygulama varsayılan kimlik bilgilerini ayarlama

client_secret.json dosyasını kullanılabilir kimlik bilgilerine dönüştürmek için gcloud auth application-default login komutunun konumunu --client-id-file bağımsız değişkeni.

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'

Bu eğitimdeki basitleştirilmiş proje kurulumu "Google, doğruladı." iletişim kutusu. Bu normal bir durumdur. "Devam"ı seçin.

Bu işlem, sonuçta elde edilen jetonu iyi bilinen bir konuma yerleştirir ve böylece jeton erişilebilir. gcloud veya istemci kitaplıklarınız tarafından oluşturulur.

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'

Uygulama varsayılan kimlik bilgilerini (ACD) ayarlandıktan sonra, istemci çoğu dildeki kitaplıkların bulmak için yardıma ihtiyacı yoktur veya hiç yoktur.

Curl

Bunun çalışıp çalışmadığını test etmenin en hızlı yolu, onu REST'e erişmek için kullanmaktır. Curl kullanan 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'da istemci kitaplıkları bunları otomatik olarak bulur:

pip install google-generativeai

Test etmek için kullanabileceğiniz küçük komut dosyası şu olabilir:

import google.generativeai as genai

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

Sonraki adımlar

Bu çözüm işe yararsa denemeye hazırsınız demektir. Metin verilerinizin semantik olarak alınması.

Kimlik bilgilerini kendiniz yönetme [Python]

Çoğu durumda, erişim oluşturmak için gcloud komutu kullanılamaz istemci kimliğinden (client_secret.json) gelen bir jetondur. Google'ın sağladığı kütüphaneler pek çok dilde düzenlemenizi sağlayabilir. Bu bölüm Python’da süreci gösterir. Bu tür için eşdeğer örnekler vardır diğer diller için Drive API dokümanları

1. Gerekli kitaplıkları yükleyin

Python için Google istemci kitaplığını ve Gemini istemci kitaplığını yükleyin.

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

2. Kimlik bilgisi yöneticisini yazma

Yetkilendirmeyi tıklama sayınızı en aza indirmek için ekranında, çalışma dizininizde load_creds.py adlı bir dosya oluşturarak bir token.json dosyasını önbelleğe alır. Bu dosyayı daha sonra yeniden kullanabilir veya süresi dolarsa yenileyebilir.

Şununla başlayın: client_secret.json dosyasını 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. Programınızı yazın

Şimdi script.py oluşturun:

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. Programınızı çalıştırma

Çalışma dizininizde örneği çalıştırın:

python script.py

Komut dosyasını ilk kez çalıştırdığınızda, bir tarayıcı penceresi açılır ve komut dosyası tıklayın.

  1. Google Hesabınızda henüz oturum açmadıysanız oturum açın. Birden çok hesapta oturum açtıysanız mutlaka "Test Hesabı" olarak ayarladığınız hesap dikkate almanız gerekir.

  2. Yetkilendirme bilgileri dosya sisteminde saklanır. Böylece, bir sonraki örnek kodu çalıştırdığınızda yetkilendirme istenmez.

Kimlik doğrulamayı başarıyla ayarladınız.