PaLM API, modelleri kendi verilerinizle hassaslaştırmanıza olanak tanır. Bu işlem verileriniz ve ayarlanmış modelleriniz için olduğundan API anahtarlarından daha katı erişim denetimleri gerekir.
Bu hızlı başlangıç kılavuzunda, test ortamı için uygun olan basitleştirilmiş bir kimlik doğrulama yaklaşımı kullanılmaktadır. Üretim ortamında, uygulamanız için uygun erişim kimlik bilgilerini seçmeden önce kimlik doğrulama ve yetkilendirme hakkında bilgi edinin.
Hedefler
- Cloud projenizi OAuth için ayarlama
- application-default-credentials ayarlama
gcloud auth
yerine programınızda kimlik bilgilerini yönetme
Ön koşullar
Bu hızlı başlangıç kılavuzunu çalıştırmak için şunları yapmanız gerekir:
Cloud projenizi ayarlama
Bu hızlı başlangıç kılavuzunu tamamlamak için önce bulut projenizi ayarlamanız gerekir.
1. API'yi etkinleştirme
Google API'lerini kullanmadan önce bir Google Cloud projesinde etkinleştirmeniz gerekir.
Google Cloud Console'da Google Üretken Dil API'yi etkinleştirin.
2. OAuth kullanıcı rızası ekranını yapılandırma
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.
Google Cloud Console'da Menü > API'ler ve Hizmetler > OAuth izin ekranı'na gidin.
Uygulamanız için Harici kullanıcı türünü seçip Oluştur'u tıklayın.
Uygulama kaydı formunu doldurun (çoğu alanı boş bırakabilirsiniz) ve Kaydet ve Devam'ı tıklayın.
Şimdilik kapsam eklemeyi atlayabilir ve Kaydet ve Devam Et'i tıklayabilirsiniz. Gelecekte, Google Workspace kuruluşunuzun dışında kullanılacak bir uygulama oluşturduğunuzda uygulamanızın gerektirdiği yetkilendirme kapsamlarını ekleyip doğrulamanız gerekir.
Test kullanıcıları ekleme:
- Test kullanıcıları bölümünde Kullanıcı ekle'yi tıklayın.
- E-posta adresinizi ve diğer yetkili test kullanıcılarını girin, ardından Kaydet ve Devam'ı tıklayın.
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ğrulamak ve uygulamanızdaki kullanıcı verilerine erişmek için bir veya daha fazla OAuth 2.0 istemci kimliği oluşturmanız gerekir. İstemci kimliği, tek bir uygulamanın Google OAuth sunucularına tanıtılması 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.
Google Cloud Console'da Menü > API'ler ve Hizmetler > Kimlik bilgileri'ne gidin.
Kimlik Bilgileri Oluştur > OAuth istemci kimliği'ni tıklayın.
Uygulama türü > Masaüstü uygulaması'nı tıklayın.
Ad alanına, kimliğin adını yazın. Bu ad yalnızca Google Cloud Console'da gösterilir.
Oluştur'u tıklayın. Yeni istemci kimliğinizi ve istemci gizli anahtarınızı gösteren OAuth istemcisi oluşturuldu ekranı gösterilir.
Tamam'ı tıklayın. Yeni oluşturulan kimlik bilgisi OAuth 2.0 İstemci Kimlikleri altında görünür.
JSON dosyasını kaydetmek için indir düğmesini tıklayın.
client_secret_<identifier>.json
olarak kaydedilir. Dosyayıclient_secret.json
olarak yeniden adlandırıp çalışma dizininize taşıyın.
Uygulama Varsayılan Kimlik Bilgileri'ni ayarlama
client_secret.json
dosyasını kullanılabilir kimlik bilgilerine dönüştürmek için dosya konumunu gcloud auth application-default login
komutunun --client-id-file
bağımsız değişkenine iletin.
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'
Bu eğitimdeki basitleştirilmiş proje kurulumu, "Google bu uygulamayı doğrulamadı." iletişim kutusunu tetikler. Bu normal bir durumdur. "Devam"ı seçin.
Bu işlem, oluşturulan jetonu gcloud
veya istemci kitaplıkları tarafından erişilebilmesi için iyi bilinen bir konuma yerleştirir.
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'
Uygulama Varsayılan Kimlik Bilgileri'ni (ADC) ayarladıktan sonra, çoğu dilde istemci kitaplıklarının bunları bulması için çok az yardıma veya hiç yardıma gerek yoktur.
Kıvrılma
Bunun çalıştığını test etmenin en hızlı yolu, curl'i 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/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",
Python
Python'da istemci kitaplıkları bunları otomatik olarak bulur:
pip install google-generativeai
Bunu test etmek için kullanabileceğiniz minimum komut dosyası şu şekilde olabilir:
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()])
Beklenen çıkış:
Available base models: ['models/chat-bison-001', 'models/text-bison-001', 'models/embedding-gecko-001']
My tuned models: []
Node.js
Bu kimlik bilgilerini Node.js istemci kitaplığıyla kullanmak için GOOGLE_APPLICATION_CREDENTIALS
ortam değişkenini ayarlayın.
export GOOGLE_APPLICATION_CREDENTIALS='<PATH_TO>/application_default_credentials.json'
İstemci kitaplığını yükleyin:
npm install @google-ai/generativelanguage
Minimum düzeyde bir komut dosyası oluşturun:
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);
}
});
Çıktı şu şekilde olmalıdır:
models/chat-bison-001
models/text-bison-001
models/embedding-gecko-001
Sonraki adımlar
Bu yöntem işe yaramazsa bir modeli kendiniz ayarlamaya hazırsınız demektir. Ayarlama yapmaya başlama başlıklı makaleyi inceleyin.
Kimlik bilgilerini kendiniz yönetme [Python]
Çoğu durumda, istemci kimliğinden (client_secret.json
) erişim jetonu oluşturmak için gcloud
komutunu kullanamazsınız. Google, bu süreci uygulamanızda yönetmenize olanak tanıyan birçok dilde kitaplık sağlar. Bu bölümde, süreç Python'da gösterilmektedir. Bu tür prosedürlerin diğer diller için eşdeğer örneklerini Drive API dokümanlarında bulabilirsiniz.
1. Gerekli kitaplıkları yükleme
Python için Google istemci kitaplığını ve PaLM 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
Çalışma dizininizde load_creds.py
adlı bir dosya oluşturun. client_secret.json
öğesini 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.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
Daha sonra yeniden kullanabileceği bir token.json
dosyasını önbelleğe alırsa veya süresinin dolması durumunda yenilemesi durumunda, yetkilendirme ekranlarını tıklamanız gereken süreyi en aza indirmek için.
3. Programınızı yazma
Ardından script.py
'inizi 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_tuned_models()])
print('My tuned models:', [m.name for m in genai.list_tuned_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 erişim için yetki vermenizi ister.
Google Hesabınızda 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 ayarladığınız hesabı seçtiğinizden emin olun.
Yetkilendirme bilgileri dosya sisteminde depolandığından, örnek kodu bir sonraki sefer çalıştırdığınızda yetkilendirme istemiyle karşılaşmazsınız.
Kimlik doğrulamayı başarıyla ayarladınız.