วิธีที่ง่ายที่สุดในการตรวจสอบสิทธิ์ Gemini API คือการกำหนดค่าคีย์ API ตามที่อธิบายไว้ในการเริ่มต้นใช้งาน Gemini API อย่างรวดเร็ว หากต้องการการควบคุมการเข้าถึงที่เข้มงวดมากขึ้น คุณสามารถใช้ OAuth แทนได้ คู่มือนี้จะช่วยคุณตั้งค่าการตรวจสอบสิทธิ์ด้วย OAuth
คู่มือนี้ใช้วิธีการตรวจสอบสิทธิ์แบบง่ายที่เหมาะ สำหรับสภาพแวดล้อมการทดสอบ สำหรับสภาพแวดล้อมการใช้งานจริง โปรดดูข้อมูลเกี่ยวกับการตรวจสอบสิทธิ์และการให้สิทธิ์ ก่อน เลือกข้อมูลเข้าสู่ระบบเพื่อเข้าถึง ที่เหมาะสมกับแอปของคุณ
วัตถุประสงค์
- ตั้งค่าโปรเจ็กต์ที่อยู่ในระบบคลาวด์สำหรับ OAuth
- ตั้งค่าข้อมูลรับรองเริ่มต้นของแอปพลิเคชัน
- จัดการข้อมูลเข้าสู่ระบบในโปรแกรมแทนการใช้
gcloud auth
ข้อกำหนดเบื้องต้น
หากต้องการเรียกใช้การเริ่มต้นอย่างรวดเร็วนี้ คุณต้องมีสิ่งต่อไปนี้
ตั้งค่าโปรเจ็กต์ที่อยู่ในระบบคลาวด์
หากต้องการทําการเริ่มต้นอย่างรวดเร็วนี้ให้เสร็จสมบูรณ์ คุณต้องตั้งค่าโปรเจ็กต์ระบบคลาวด์ก่อน
1. เปิดใช้ API
ก่อนใช้ Google API คุณต้องเปิดใช้ API ในโปรเจ็กต์ Google Cloud
เปิดใช้ Google Generative Language API ในคอนโซล Google Cloud
2. กำหนดค่าหน้าจอขอความยินยอม OAuth
จากนั้นกำหนดค่าหน้าจอขอความยินยอม OAuth ของโปรเจ็กต์และเพิ่มตัวคุณเองเป็นผู้ใช้ทดสอบ หากดำเนินการขั้นตอนนี้สำหรับโปรเจ็กต์ Cloud เสร็จแล้ว ให้ข้ามไปยัง ส่วนถัดไป
ใน Google Cloud Console ให้ไปที่เมนู > > ภาพรวม
กรอกแบบฟอร์มการกำหนดค่าโปรเจ็กต์และตั้งค่าประเภทผู้ใช้เป็นภายนอก ในส่วนกลุ่มเป้าหมาย
กรอกข้อมูลในแบบฟอร์มส่วนที่เหลือ ยอมรับข้อกำหนดของนโยบายข้อมูลผู้ใช้ แล้วคลิกสร้าง
ตอนนี้คุณสามารถข้ามการเพิ่มขอบเขต แล้วคลิกบันทึกและดำเนินการต่อ ในอนาคต เมื่อสร้างแอปเพื่อใช้ภายนอกองค์กร Google Workspace คุณต้องเพิ่มและยืนยันขอบเขตการให้สิทธิ์ที่แอปของคุณต้องการ
เพิ่มผู้ใช้ทดสอบ
3. ให้สิทธิ์ข้อมูลเข้าสู่ระบบสำหรับแอปพลิเคชันบนเดสก์ท็อป
หากต้องการตรวจสอบสิทธิ์ในฐานะผู้ใช้ปลายทางและเข้าถึงข้อมูลผู้ใช้ในแอป คุณต้องสร้างรหัสไคลเอ็นต์ OAuth 2.0 อย่างน้อย 1 รายการ รหัสไคลเอ็นต์ใช้เพื่อระบุแอปเดี่ยวไปยังเซิร์ฟเวอร์ OAuth ของ Google หากแอปทำงานบนหลายแพลตฟอร์ม คุณต้องสร้างรหัสไคลเอ็นต์แยกต่างหากสำหรับแต่ละแพลตฟอร์ม
ใน Google Cloud Console ให้ไปที่เมนู > > ไคลเอ็นต์
คลิกสร้างไคลเอ็นต์
คลิกประเภทแอปพลิเคชัน > แอปเดสก์ท็อป
ในช่องชื่อ ให้พิมพ์ชื่อของข้อมูลเข้าสู่ระบบ ชื่อนี้จะแสดงใน Google Cloud Console เท่านั้น
คลิกสร้าง หน้าจอไคลเอ็นต์ OAuth ที่สร้างขึ้นจะปรากฏขึ้น โดยแสดง รหัสไคลเอ็นต์และรหัสลับไคลเอ็นต์ใหม่
คลิกตกลง ข้อมูลเข้าสู่ระบบที่สร้างขึ้นใหม่จะปรากฏในส่วนรหัสไคลเอ็นต์ OAuth 2.0
คลิกปุ่มดาวน์โหลดเพื่อบันทึกไฟล์ JSON ระบบจะบันทึกเป็น
client_secret_<identifier>.json
และเปลี่ยนชื่อเป็นclient_secret.json
แล้วย้ายไปยังไดเรกทอรีการทำงาน
ตั้งค่าข้อมูลรับรองเริ่มต้นของแอปพลิเคชัน
หากต้องการแปลงไฟล์ client_secret.json
เป็นข้อมูลเข้าสู่ระบบที่ใช้ได้ ให้ส่งตำแหน่งของไฟล์ไปยังอาร์กิวเมนต์ --client-id-file
ของคำสั่ง 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.retriever'
การตั้งค่าโปรเจ็กต์แบบง่ายในบทแนะนำนี้จะทริกเกอร์กล่องโต้ตอบ "Google ยังไม่ได้ ยืนยันแอปนี้" ซึ่งเป็นเรื่องปกติ ให้เลือก"ดำเนินการต่อ"
ซึ่งจะวางโทเค็นที่ได้ไว้ในตำแหน่งที่รู้จักกันดีเพื่อให้เข้าถึงได้
โดย gcloud
หรือไลบรารีของไคลเอ็นต์
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'
เมื่อตั้งค่าข้อมูลเข้าสู่ระบบเริ่มต้นของแอปพลิเคชัน (ADC) แล้ว ไคลเอ็นต์ ไลบรารีในภาษาส่วนใหญ่จะต้องการความช่วยเหลือเพียงเล็กน้อยหรือไม่ต้องการเลยในการค้นหา
Curl
วิธีที่เร็วที่สุดในการทดสอบว่าการตั้งค่านี้ใช้งานได้คือการใช้เพื่อเข้าถึง REST API โดยใช้ 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
ใน Python ไลบรารีของไคลเอ็นต์ควรค้นหาได้โดยอัตโนมัติ
pip install google-generativeai
สคริปต์ขั้นต่ำในการทดสอบอาจเป็นดังนี้
import google.generativeai as genai
print('Available base models:', [m.name for m in genai.list_models()])
ขั้นตอนถัดไป
หากใช้งานได้ แสดงว่าคุณพร้อมที่จะลองการดึงข้อมูลเชิงความหมายในข้อมูลข้อความแล้ว
จัดการข้อมูลเข้าสู่ระบบด้วยตนเอง [Python]
ในหลายกรณี คุณจะไม่มีคำสั่ง gcloud
เพื่อสร้างโทเค็นการเข้าถึงจากรหัสไคลเอ็นต์ (client_secret.json
) Google มีไลบรารีในหลายภาษาเพื่อให้คุณจัดการกระบวนการดังกล่าวภายในแอปได้ ส่วนนี้จะแสดงกระบวนการใน Python ตัวอย่างที่เทียบเท่าของขั้นตอนประเภทนี้สำหรับภาษาอื่นๆ มีอยู่ในเอกสารประกอบของ Drive API
1. ติดตั้งไลบรารีที่จำเป็น
ติดตั้งไลบรารีของไคลเอ็นต์ Google สำหรับ Python และไลบรารีของไคลเอ็นต์ Gemini
pip install --upgrade -q google-api-python-client google-auth-httplib2 google-auth-oauthlib
pip install google-generativeai
2. เขียนเครื่องมือจัดการข้อมูลเข้าสู่ระบบ
หากต้องการลดจำนวนครั้งที่คุณต้องคลิกผ่านหน้าจอการให้สิทธิ์
ให้สร้างไฟล์ชื่อ load_creds.py
ในไดเรกทอรีการทำงานเพื่อแคชไฟล์ token.json
ที่สามารถนำกลับมาใช้ใหม่ได้ในภายหลัง หรือรีเฟรชหากหมดอายุ
เริ่มต้นด้วยโค้ดต่อไปนี้เพื่อแปลงไฟล์ client_secret.json
เป็นโทเค็นที่ใช้กับ 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. เขียนโปรแกรม
ตอนนี้มาสร้าง script.py
กัน
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. เรียกใช้โปรแกรม
ในไดเรกทอรีการทำงาน ให้เรียกใช้ตัวอย่างโดยใช้คำสั่งต่อไปนี้
python script.py
เมื่อเรียกใช้สคริปต์เป็นครั้งแรก สคริปต์จะเปิดหน้าต่างเบราว์เซอร์และแจ้งให้คุณ ให้สิทธิ์เข้าถึง
หากยังไม่ได้ลงชื่อเข้าใช้บัญชี Google คุณจะได้รับข้อความแจ้งให้ ลงชื่อเข้าใช้ หากลงชื่อเข้าใช้หลายบัญชี โปรดเลือกบัญชีที่คุณตั้งค่าเป็น "บัญชีทดสอบ" เมื่อกำหนดค่าโปรเจ็กต์
ระบบจะจัดเก็บข้อมูลการให้สิทธิ์ไว้ในระบบไฟล์ ดังนั้นในครั้งถัดไปที่คุณ เรียกใช้โค้ดตัวอย่าง ระบบจะไม่แจ้งให้คุณขอรับการให้สิทธิ์
คุณตั้งค่าการตรวจสอบสิทธิ์เรียบร้อยแล้ว