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

Gemini API, kendi verilerinizde semantik alma işlemi gerçekleştirebilmenizi sağlar. Söz konusu olan sizin verileriniz olduğu için bu işlem, API anahtarlarından daha sıkı erişim kontrolleri gerektirir.

Bu hızlı başlangıç kılavuzu, test ortamı için uygun olan basitleştirilmiş bir kimlik doğrulama yaklaşımı kullanır. Üretim ortamı için uygulamanız için uygun olan erişim kimlik bilgilerini seçmeden önce kimlik doğrulama ve yetkilendirme hakkında bilgi edinin.

Hedefler

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

Ön koşullar

Bu hızlı başlangıç kılavuzunu çalıştırmak için ihtiyacınız olanlar:

Bulut projenizi oluşturun

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 bunları 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 kullanıcısı olarak ekleyin. Cloud projeniz için bu adımı zaten tamamladıysanız sonraki bölüme geçin.

  1. Google Cloud konsolunda Menü > API'ler ve Hizmetler > OAuth izin ekranı'na gidin.

    OAuth izin ekranına gidin

  2. Uygulamanız için Harici kullanıcı türünü seçin, 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. Gelecekte, Google Workspace kuruluşunuzun dışında kullanmak için bir uygulama oluşturduğunuzda, uygulamanızın gerektirdiği yetkilendirme kapsamlarını eklemeniz ve doğrulamanız gerekir.

  5. Test kullanıcıları ekleyin:

    1. Test kullanıcıları'nın altında Kullanıcı ekle'yi tıklayın.
    2. E-posta adresinizi ve diğer yetkili test kullanıcılarınızı girip 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. Uygulama kaydı sorunsuz görünüyorsa Kontrol Paneline Dön'ü tıklayın.

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

Son kullanıcı olarak kimlik doğrulaması yapmak ve uygulamanızda kullanıcı verilerine erişmek için bir veya daha fazla OAuth 2.0 İstemci Kimliği oluşturmanız gerekir. İstemci kimliği, tek bir uygulamayı Google'ın OAuth sunucularına tanımlamak için kullanılır. 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ü > API'ler ve Hizmetler > Kimlik bilgileri'ne gidin.

    Kimlik Bilgileri'ne git

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

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

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

  5. Create'i (Oluştur) tıklayın. OAuth istemcisi tarafından oluşturulan ekran görünür ve yeni İstemci Kimliğinizi ve İstemci Gizli Anahtarı'nızı gösterir.

  6. OK (Tamam) seçeneğini tıklayın. Yeni oluşturulan kimlik bilgisi, OAuth 2.0 İstemci Kimlikleri bölümünde gösterilir.

  7. JSON dosyasını kaydetmek için indir düğmesini tıklayın. client_secret_<identifier>.json olarak kaydedilecek ve client_secret.json olarak yeniden adlandırıp çalışma dizininize taşınacak.

Uygulama varsayılan kimlik bilgilerini ayarlayın

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

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ğiticideki basitleştirilmiş proje kurulumu, "Google bu uygulamayı doğrulamadı" iletişim kutusunu tetikler. Bu normal bir durumdur. "devam et"i seçin.

Böylece, oluşturulan jetonu iyi bilinen bir konuma yerleştirerek gcloud veya istemci kitaplıklarının erişimine sunabilirsiniz.

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) ayarladıktan sonra, çoğu dildeki istemci kitaplıklarının bunları bulmak için minimum düzeyde yardıma ihtiyacı vardır veya hiç yardıma ihtiyaç duyulmaz.

Kıvırma

Bunun çalışıp çalışmadığını test etmenin en hızlı yolu, API'yi curl kullanarak REST API'ye erişmek için kullanmaktır:

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

Bunu test etmeye yarayan minimal komut dosyası şöyle 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 Metin verilerinizde anlamsal alma özelliğini denemeye hazırsınız.

Kimlik bilgilerini kendiniz yönetme [Python]

Çoğu durumda, erişim jetonunu istemci kimliğinden (client_secret.json) oluşturmak için gcloud komutunu kullanamazsınız. Google, bu işlemi uygulamanızda yönetebilmeniz için birçok dilde kitaplıklar sağlar. Bu bölümde python'daki işlem gösterilmektedir. Bu tür prosedürlerin başka diller için de eşdeğer örneklerini Drive API belgelerinde bulabilirsiniz.

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

Yetkilendirme ekranlarını tıklama zorunluluğunu en aza indirmek için çalışma dizininizde load_creds.py adlı bir dosya oluşturun. Bu dosya, daha sonra yeniden kullanabileceği bir token.json dosyasını önbelleğe alır veya süresi dolarsa yenileyin.

client_secret.json dosyasını genai.configure ile kullanılabilen bir jetona dönüştürmek için aşağıdaki kodla başlayın:

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ırın

Ç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 erişimi yetkilendirmeniz istenir.

  1. Google Hesabınızda henüz oturum açmadıysanız oturum açmanız istenir. Birden fazla hesapta oturum açtıysanız projenizi yapılandırırken "Test Hesabı" olarak belirlediğiniz hesabı seçtiğinizden emin olun.

  2. Yetkilendirme bilgileri dosya sisteminde depolanır. Böylece örnek kodu bir sonraki çalıştırmanızda yetkilendirme istenmez.

Kimlik doğrulamasını başarıyla kurdunuz.