Gemini API ช่วยให้คุณสามารถดึงข้อมูลเชิงความหมายจากข้อมูลของคุณเอง เนื่องจากเป็นข้อมูลของคุณ จึงต้องควบคุมการเข้าถึงที่เข้มงวดกว่าคีย์ API
การเริ่มต้นอย่างรวดเร็วนี้ใช้วิธีการตรวจสอบสิทธิ์แบบง่ายที่เหมาะกับสภาพแวดล้อมการทดสอบ สำหรับสภาพแวดล้อมเวอร์ชันที่ใช้งานจริง โปรดดูข้อมูลเกี่ยวกับการตรวจสอบสิทธิ์และการให้สิทธิ์ก่อนเลือกข้อมูลเข้าสู่ระบบที่เหมาะสมกับแอปของคุณ
วัตถุประสงค์
- ตั้งค่าโปรเจ็กต์ที่อยู่ในระบบคลาวด์สำหรับ OAuth
- ตั้งค่าข้อมูลเข้าสู่ระบบเริ่มต้นของแอปพลิเคชัน
- จัดการข้อมูลเข้าสู่ระบบในโปรแกรมแทนการใช้
gcloud auth
ข้อกำหนดเบื้องต้น
หากต้องการเรียกใช้การเริ่มต้นอย่างรวดเร็วนี้ คุณต้องมีสิ่งต่อไปนี้
ตั้งค่าโปรเจ็กต์ที่อยู่ในระบบคลาวด์
คุณต้องตั้งค่าโปรเจ็กต์ Cloud ก่อนเพื่อให้การเริ่มต้นอย่างรวดเร็วนี้เสร็จสมบูรณ์
1. เปิดใช้ API
ก่อนใช้ Google APIs คุณต้องเปิดใช้ API ในโปรเจ็กต์ Google Cloud
เปิดใช้ Google Generative Language API ในคอนโซล Google Cloud
2. กำหนดค่าหน้าจอขอความยินยอม OAuth
จากนั้น ให้กำหนดค่าหน้าจอขอความยินยอม OAuth ของโปรเจ็กต์ และเพิ่มตัวคุณเองเป็นผู้ใช้ทดสอบ หากทำตามขั้นตอนนี้สำหรับโปรเจ็กต์ที่อยู่ในระบบคลาวด์เรียบร้อยแล้ว ให้ข้ามไปยังส่วนถัดไป
ในคอนโซล Google Cloud ให้ไปที่เมนู > API และบริการ > หน้าจอขอความยินยอม OAuth
เลือกประเภทผู้ใช้เป็นภายนอกของแอป แล้วคลิกสร้าง
กรอกแบบฟอร์มการลงทะเบียนแอป (เว้นช่องส่วนใหญ่ว่างไว้ได้) แล้วคลิกบันทึกและต่อไป
สำหรับตอนนี้ คุณอาจข้ามการเพิ่มขอบเขต แล้วคลิกบันทึกและต่อไป ในอนาคต เมื่อคุณสร้างแอปเพื่อใช้นอกองค์กร Google Workspace คุณต้องเพิ่มและยืนยันขอบเขตการให้สิทธิ์ที่แอปของคุณต้องการ
เพิ่มผู้ใช้ทดสอบดังนี้
- ในส่วนผู้ใช้ทดสอบ ให้คลิกเพิ่มผู้ใช้
- ป้อนอีเมลของคุณและผู้ใช้ทดสอบคนอื่นๆ ที่ได้รับอนุญาต แล้วคลิกบันทึกและต่อไป
ดูสรุปการลงทะเบียนแอป หากต้องการเปลี่ยนแปลง ให้คลิกแก้ไข หากการลงทะเบียนแอปถูกต้องแล้ว ให้คลิกกลับไปยังหน้าแดชบอร์ด
3. ให้สิทธิ์ข้อมูลเข้าสู่ระบบสำหรับแอปพลิเคชันเดสก์ท็อป
หากต้องการตรวจสอบสิทธิ์ว่าเป็นผู้ใช้ปลายทางและเข้าถึงข้อมูลผู้ใช้ในแอป คุณต้องสร้างรหัสไคลเอ็นต์ OAuth 2.0 อย่างน้อย 1 รายการ รหัสไคลเอ็นต์ใช้เพื่อระบุแอปเดียวไปยังเซิร์ฟเวอร์ OAuth ของ Google หากแอปทำงานในหลายแพลตฟอร์ม คุณต้องสร้างรหัสไคลเอ็นต์แยกกันสำหรับแต่ละแพลตฟอร์ม
ในคอนโซล Google Cloud ให้ไปที่เมนู > API และบริการ > ข้อมูลเข้าสู่ระบบ
คลิกสร้างข้อมูลเข้าสู่ระบบ > รหัสไคลเอ็นต์ OAuth
คลิกประเภทแอปพลิเคชัน > แอปบนเดสก์ท็อป
ในช่องชื่อ ให้พิมพ์ชื่อของข้อมูลเข้าสู่ระบบ ชื่อนี้จะแสดง ในคอนโซล Google Cloud เท่านั้น
คลิกสร้าง หน้าจอที่สร้างของไคลเอ็นต์ 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'
เมื่อตั้งค่าข้อมูลเข้าสู่ระบบเริ่มต้นของแอปพลิเคชัน (ACD) แล้ว ไลบรารีของไคลเอ็นต์ในภาษาส่วนใหญ่จำเป็นต้องใช้น้อยที่สุดในการค้นหาข้อมูล
ม้วนกระดาษ
วิธีที่รวดเร็วที่สุดในการทดสอบว่าวิธีนี้ได้ผลคือการใช้เพื่อเข้าถึง 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-ID (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 ระบบจะแจ้งให้คุณลงชื่อเข้าใช้ หากคุณลงชื่อเข้าใช้หลายบัญชี อย่าลืมเลือกบัญชีที่ตั้งค่าเป็น "บัญชีทดสอบ" เมื่อกำหนดค่าโปรเจ็กต์
ข้อมูลการให้สิทธิ์จะจัดเก็บไว้ในระบบไฟล์ ดังนั้นเมื่อคุณเรียกใช้โค้ดตัวอย่างในครั้งถัดไป คุณจะไม่ได้รับข้อความแจ้งให้ให้สิทธิ์
คุณตั้งค่าการตรวจสอบสิทธิ์เรียบร้อยแล้ว