Gemini API memungkinkan Anda melakukan pengambilan semantik pada data Anda sendiri. Karena data Anda, hal ini memerlukan kontrol akses yang lebih ketat daripada kunci API.
Panduan memulai ini menggunakan pendekatan autentikasi yang disederhanakan dan sesuai untuk lingkungan pengujian. Untuk lingkungan produksi, pelajari tentang 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 harus 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 pengujian . Jika Anda telah menyelesaikan langkah ini untuk project Cloud, langsung saja ke bagian bagian berikutnya.
Di konsol Google Cloud, buka Menu > API & Layanan > OAuth layar izin.
Pilih jenis pengguna Eksternal untuk aplikasi Anda, lalu klik Buat.
Lengkapi formulir pendaftaran aplikasi (Anda boleh mengosongkan sebagian besar kolom), lalu klik Simpan dan Lanjutkan.
Untuk saat ini, Anda dapat melewati penambahan cakupan, lalu mengklik Simpan dan Lanjutkan. Di kolom masa depan, saat Anda membuat aplikasi untuk digunakan di luar Google Workspace organisasi Anda, Anda harus menambahkan dan memverifikasi cakupan otorisasi aplikasi Anda.
Tambahkan pengguna uji coba:
- Di bagian Pengguna uji coba, klik Tambahkan pengguna.
- Masukkan alamat email Anda dan pengguna uji coba resmi lainnya, lalu klik Simpan dan Lanjutkan.
Tinjau ringkasan pendaftaran aplikasi Anda. Untuk melakukan perubahan, klik Edit. Jika pendaftaran aplikasi terlihat baik-baik saja, klik Back to Dashboard.
3. Memberi otorisasi kredensial untuk aplikasi desktop
Untuk mengautentikasi sebagai pengguna akhir dan mengakses data pengguna di aplikasi, Anda harus buat satu atau beberapa ID Klien OAuth 2.0. Client ID digunakan untuk mengidentifikasi aplikasi tunggal ke server OAuth Google. Jika aplikasi Anda berjalan di beberapa platform, Anda harus membuat ID klien terpisah untuk setiap platform.
Di konsol Google Cloud, buka Menu > API & Layanan > Kredensial.
Klik Create Credentials > Client ID OAuth.
Klik Jenis aplikasi > Aplikasi desktop.
Di kolom Name, ketik nama untuk kredensial tersebut. Nama ini hanya yang ditampilkan di Konsol Google Cloud.
Klik Buat. Layar yang dibuat klien OAuth akan muncul, yang menunjukkan Client ID dan Rahasia klien.
Klik Oke. Kredensial yang baru dibuat muncul di bagian Klien OAuth 2.0 pengguna.
Klik tombol download untuk menyimpan file JSON. Sandi akan disimpan sebagai
client_secret_<identifier>.json
, dan mengganti namanya menjadiclient_secret.json
dan memindahkannya ke direktori kerja Anda.
Menyiapkan kredensial default aplikasi
Untuk mengonversi file client_secret.json
menjadi kredensial yang dapat digunakan, teruskan
lokasi perintah gcloud auth application-default login
Argumen --client-id-file
.
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'
Penyiapan project yang disederhanakan dalam tutorial ini akan memicu "Google belum memverifikasi aplikasi ini.". Hal ini wajar, pilih "continue".
Token ini 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.retriever'
Setelah Anda mengatur kredensial {i> default<i} aplikasi (ACD), klien {i>library<i} di sebagian besar bahasa hanya perlu bantuan untuk menemukannya.
Curl
Cara tercepat untuk menguji apakah ini berfungsi adalah dengan menggunakannya untuk mengakses REST API yang menggunakan curl:
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
Dengan python, library klien akan menemukannya secara otomatis:
pip install google-generativeai
Skrip minimal untuk mengujinya mungkin adalah:
import google.generativeai as genai
print('Available base models:', [m.name for m in genai.list_models()])
Langkah berikutnya
Jika berhasil, Anda siap untuk mencoba Pengambilan semantik pada data teks.
Mengelola kredensial sendiri [Python]
Biasanya, Anda tidak akan memiliki perintah gcloud
untuk membuat akses
dari Client-ID (client_secret.json
). Google menyediakan perpustakaan di
banyak bahasa agar Anda dapat mengelola proses tersebut dalam aplikasi. Bagian ini
menunjukkan prosesnya, dengan python. Ada contoh yang setara untuk pengurutan ini
prosedur, untuk bahasa lain, tersedia dalam
Dokumentasi Drive API
1. Menginstal library yang diperlukan
Instal library klien Google untuk Python, dan library klien Gemini.
pip install --upgrade -q google-api-python-client google-auth-httplib2 google-auth-oauthlib
pip install google-generativeai
2. Menulis pengelola kredensial
Untuk meminimalkan berapa kali Anda harus mengklik otorisasi
layar, buat file bernama load_creds.py
di direktori kerja Anda untuk
menyimpan file token.json
dalam cache yang dapat digunakan kembali nanti, atau memuat ulang jika sudah tidak berlaku.
Mulai dengan
kode berikut untuk mengonversi file 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.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. Tulis 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_models()])
4. Menjalankan program Anda
Dalam direktori kerja Anda, jalankan contoh:
python script.py
Saat pertama kali Anda menjalankan skrip, skrip membuka jendela {i>browser<i} dan meminta Anda untuk mengizinkan akses.
Jika Anda belum login ke Akun Google, Anda akan diminta untuk login. Jika Anda login ke beberapa akun, pastikan untuk memilih akun yang Anda tetapkan sebagai "Akun Percobaan" saat mengonfigurasi project.
Informasi otorisasi disimpan di sistem file, jadi saat berikutnya Anda menjalankan kode contoh, Anda tidak akan diminta untuk melakukan otorisasi.
Anda berhasil menyiapkan autentikasi.