PaLM API memungkinkan Anda menyesuaikan model dengan data Anda sendiri. Karena ini adalah data Anda dan model yang telah disesuaikan, ini memerlukan kontrol akses yang lebih ketat daripada Kunci API.
Panduan memulai ini menggunakan pendekatan autentikasi sederhana yang sesuai untuk lingkungan pengujian. Untuk lingkungan produksi, pelajari autentikasi dan otorisasi sebelum memilih kredensial akses yang sesuai untuk aplikasi Anda.
Tujuan
- Menyiapkan project cloud untuk OAuth
- Menyiapkan application-default-credentials
- Kelola kredensial dalam program Anda, bukan menggunakan
gcloud auth
Prasyarat
Untuk menjalankan panduan memulai ini, Anda memerlukan:
Menyiapkan project cloud
Untuk menyelesaikan panduan memulai ini, Anda harus menyiapkan project cloud terlebih dahulu.
1. Mengaktifkan API
Sebelum menggunakan Google API, Anda perlu mengaktifkannya di project Google Cloud.
Di Konsol Google Cloud, aktifkan Google Generative Language API.
2. Mengonfigurasi layar izin OAuth
Selanjutnya, konfigurasikan layar izin OAuth project dan tambahkan diri Anda sebagai pengguna uji coba. Jika Anda sudah menyelesaikan langkah ini untuk project Cloud, lanjutkan ke bagian berikutnya.
Di konsol Google Cloud, buka Menu > APIs & Services > OAuth consent screen.
Pilih jenis pengguna External untuk aplikasi Anda, lalu klik Create.
Lengkapi formulir pendaftaran aplikasi (Anda dapat mengosongkan sebagian besar kolom), lalu klik Simpan dan Lanjutkan.
Untuk saat ini, Anda dapat melewati penambahan cakupan dan mengklik Simpan dan Lanjutkan. Di masa mendatang, saat membuat aplikasi untuk digunakan di luar organisasi Google Workspace, Anda harus menambahkan dan memverifikasi cakupan otorisasi yang diperlukan aplikasi Anda.
Tambahkan pengguna pengujian:
- Di bagian Pengguna uji coba, klik Tambahkan pengguna.
- Masukkan alamat email Anda dan pengguna pengujian resmi lainnya, lalu klik Simpan dan Lanjutkan.
Tinjau ringkasan pendaftaran aplikasi Anda. Untuk melakukan perubahan, klik Edit. Jika pendaftaran aplikasi sudah benar, klik Back to Dashboard.
3. Mengizinkan kredensial untuk aplikasi desktop
Untuk mengautentikasi sebagai pengguna akhir dan mengakses data pengguna di aplikasi Anda, Anda perlu membuat satu atau beberapa Client ID OAuth 2.0. Client ID digunakan untuk mengidentifikasi satu aplikasi ke server OAuth Google. Jika aplikasi Anda berjalan di beberapa platform, Anda harus membuat client ID terpisah untuk setiap platform.
Di Konsol Google Cloud, buka Menu > APIs & Services > Credentials.
Klik Buat Kredensial > ID klien OAuth.
Klik Jenis aplikasi > Aplikasi desktop.
Di kolom Name, ketik nama untuk kredensial tersebut. Nama ini hanya ditampilkan di Konsol Google Cloud.
Klik Create. Layar yang dibuat klien OAuth akan muncul, yang menampilkan Client ID dan Rahasia klien baru Anda.
Klik OK. Kredensial yang baru dibuat akan muncul pada Client ID OAuth 2.0.
Klik tombol download untuk menyimpan file JSON. Folder akan disimpan sebagai
client_secret_<identifier>.json
, lalu ganti namanya menjadiclient_secret.json
lalu pindahkan ke direktori kerja Anda.
Menyiapkan kredensial default aplikasi
Untuk mengonversi file client_secret.json
menjadi kredensial yang dapat digunakan, teruskan
lokasinya argumen --client-id-file
perintah 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'
Penyiapan project yang disederhanakan dalam tutorial ini akan memicu dialog "Google belum memverifikasi aplikasi ini".. Hal ini wajar, pilih "continue".
Tindakan ini akan menempatkan token yang dihasilkan di lokasi yang dikenal sehingga dapat diakses oleh gcloud
atau library klien.
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'
Setelah Anda menetapkan kredensial default aplikasi (ACD), library klien dalam sebagian besar bahasa tidak akan memerlukan bantuan atau bantuan untuk menemukannya.
Curl
Cara tercepat untuk menguji apakah langkah ini berfungsi adalah dengan menggunakannya untuk mengakses API lainnya menggunakan 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",
Python
Di python, library klien akan menemukannya secara otomatis:
pip install google-generativeai
Skrip minimal untuk mengujinya dapat berupa:
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()])
Berikut adalah output yang diinginkan:
Available base models: ['models/chat-bison-001', 'models/text-bison-001', 'models/embedding-gecko-001']
My tuned models: []
Node.js
Untuk menggunakan kredensial ini dengan library klien Node.js, tetapkan variabel lingkungan GOOGLE_APPLICATION_CREDENTIALS
.
export GOOGLE_APPLICATION_CREDENTIALS='<PATH_TO>/application_default_credentials.json'
Instal library klien:
npm install @google-ai/generativelanguage
Buat skrip minimal:
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);
}
});
Outputnya harus berupa:
models/chat-bison-001
models/text-bison-001
models/embedding-gecko-001
Langkah berikutnya
Jika cara tersebut berhasil, Anda siap untuk mencoba men-tuning model sendiri. Coba Mulai melakukan tuning.
Mengelola sendiri kredensial [Python]
Dalam banyak kasus, Anda tidak akan menyediakan perintah gcloud
untuk membuat token
akses dari Client ID (client_secret.json
). Google menyediakan library dalam
banyak bahasa agar Anda dapat mengelola proses tersebut dalam aplikasi. Bagian ini
menunjukkan proses tersebut, dalam Python. Ada contoh yang setara dari prosedur
semacam ini. Untuk bahasa lain, tersedia di
dokumentasi drive api
1. Menginstal library yang diperlukan
Instal library klien Google untuk Python, dan library klien PaLM.
pip install --upgrade -q google-api-python-client google-auth-httplib2 google-auth-oauthlib
pip install google-generativeai
2. Menulis pengelola kredensial
Di direktori kerja, buat file bernama load_creds.py
. Mulailah dengan
kode berikut untuk mengonversi client_secret.json
menjadi token yang dapat digunakan dengan
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
Untuk meminimalkan frekuensi klik pada layar
otorisasi jika menyimpan cache file token.json
yang dapat digunakan kembali nanti, atau memuat ulang jika
masa berlaku file sudah berakhir.
3. Menulis program Anda
Sekarang buat script.py
Anda:
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. Menjalankan program Anda
Di direktori kerja Anda, jalankan contoh:
python script.py
Saat pertama kali dijalankan, skrip akan membuka jendela browser dan meminta Anda untuk mengizinkan akses.
Jika belum login ke Akun Google, Anda akan diminta untuk login. Jika Anda login ke beberapa akun, pastikan untuk memilih akun yang ditetapkan sebagai "Akun Uji" saat mengonfigurasi project.
Informasi otorisasi disimpan di sistem file, sehingga saat berikutnya Anda menjalankan kode contoh, Anda tidak akan diminta untuk melakukan otorisasi.
Anda berhasil menyiapkan autentikasi.