Gemini API cho phép bạn truy xuất ngữ nghĩa dựa trên dữ liệu của riêng mình. Vì dữ liệu của bạn, thì phương thức này cần kiểm soát quyền truy cập nghiêm ngặt hơn so với khoá API.
Hướng dẫn bắt đầu nhanh này sử dụng phương pháp xác thực đơn giản nhưng phù hợp cho môi trường thử nghiệm. Đối với môi trường phát hành công khai, hãy tìm hiểu giới thiệu xác thực và uỷ quyền trước chọn thông tin đăng nhập phù hợp với ứng dụng của bạn.
Mục tiêu
- Thiết lập dự án trên đám mây cho OAuth
- Thiết lập thông tin xác thực mặc định của ứng dụng
- Quản lý thông tin đăng nhập trong chương trình của bạn thay vì sử dụng
gcloud auth
Điều kiện tiên quyết
Để chạy quy trình bắt đầu nhanh này, bạn cần:
Thiết lập dự án trên đám mây
Để hoàn tất quy trình bắt đầu nhanh này, trước tiên, bạn cần thiết lập dự án Cloud của mình.
1. Bật API
Trước khi sử dụng các API của Google, bạn cần bật các API này trong một dự án trên Google Cloud.
Trong bảng điều khiển Google Cloud, hãy bật Google Generative Language API.
2. Định cấu hình màn hình xin phép bằng OAuth
Tiếp theo, hãy định cấu hình màn hình xin phép bằng OAuth của dự án và thêm chính bạn làm một thử nghiệm người dùng. Nếu bạn đã hoàn tất bước này cho dự án Cloud của mình, hãy chuyển đến phần tiếp theo.
Trong bảng điều khiển Google Cloud, hãy chuyển đến Trình đơn > API và Dịch vụ > OAuth màn hình xin phép.
Chọn loại người dùng External (Bên ngoài) cho ứng dụng, sau đó nhấp vào Create (Tạo).
Hoàn tất biểu mẫu đăng ký ứng dụng (bạn có thể để trống hầu hết các trường), sau đó nhấp vào Lưu và tiếp tục.
Hiện tại, bạn có thể bỏ qua bước thêm phạm vi rồi nhấp vào Lưu và tiếp tục. Trong tương lai, khi bạn tạo một ứng dụng để sử dụng bên ngoài Google Workspace tổ chức của mình, bạn phải thêm và xác minh phạm vi uỷ quyền mà ứng dụng yêu cầu.
Thêm người dùng thử nghiệm:
- Trong phần Người dùng thử nghiệm, hãy nhấp vào Thêm người dùng.
- Nhập địa chỉ email của bạn và bất kỳ người dùng thử nghiệm nào khác được uỷ quyền, sau đó hãy nhấp vào Lưu và tiếp tục.
Xem lại thông tin tóm tắt về gói đăng ký ứng dụng của bạn. Để chỉnh sửa, hãy nhấp vào Chỉnh sửa. Nếu quá trình đăng ký ứng dụng có vẻ ổn, hãy nhấp vào Quay lại trang tổng quan.
3. Cấp thông tin đăng nhập cho ứng dụng dành cho máy tính
Để xác thực là người dùng cuối và truy cập vào dữ liệu người dùng trong ứng dụng của bạn, bạn cần phải tạo một hoặc nhiều Mã ứng dụng khách OAuth 2.0. Mã ứng dụng khách được dùng để xác định một ứng dụng vào máy chủ OAuth của Google. Nếu ứng dụng của bạn chạy trên nhiều nền tảng, bạn phải tạo một mã ứng dụng khách riêng cho từng nền tảng.
Trong bảng điều khiển Google Cloud, hãy chuyển đến Trình đơn > API và Dịch vụ > Thông tin xác thực.
Nhấp vào Tạo thông tin xác thực > Mã ứng dụng OAuth.
Nhấp vào Loại ứng dụng > Ứng dụng dành cho máy tính.
Trong trường Tên, nhập tên cho thông tin đăng nhập. Tên này chỉ hiển thị trong bảng điều khiển Google Cloud.
Nhấp vào Tạo. Màn hình OAuth do ứng dụng tạo xuất hiện, cho thấy Mã ứng dụng khách và Mật khẩu ứng dụng khách.
Nhấp vào OK. Thông tin đăng nhập mới được tạo sẽ xuất hiện trong Ứng dụng OAuth 2.0 Mã nhận dạng.
Nhấp vào nút tải xuống để lưu tệp JSON. Tên sẽ được lưu dưới dạng
client_secret_<identifier>.json
rồi đổi tên thànhclient_secret.json
rồi chuyển tệp đó vào thư mục đang làm việc.
Thiết lập thông tin xác thực mặc định của ứng dụng
Để chuyển đổi tệp client_secret.json
thành thông tin đăng nhập có thể sử dụng, hãy truyền
xác định vị trí của lệnh gcloud auth application-default login
Đối số --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'
Quy trình thiết lập dự án được đơn giản hoá trong hướng dẫn này sẽ kích hoạt thông báo "Google chưa đã xác minh ứng dụng này". Điều này là bình thường, hãy chọn "tiếp tục".
Thao tác này sẽ đặt mã thông báo thu được ở một vị trí nổi tiếng để có thể truy cập được mã đó
theo gcloud
hoặc thư viện ứng dụng.
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'
Sau khi đặt thông tin xác thực mặc định của ứng dụng (ACD), ứng dụng ở hầu hết các ngôn ngữ cần rất ít hoặc không cần trợ giúp để tìm các thư viện đó.
Curl
Cách nhanh nhất để kiểm tra xem phương thức này có hoạt động hay không là sử dụng phương thức này để truy cập vào REST API sử dụng 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
Trong python, các thư viện ứng dụng sẽ tự động tìm thấy các thư viện đó:
pip install google-generativeai
Một tập lệnh tối thiểu để kiểm tra có thể là:
import google.generativeai as genai
print('Available base models:', [m.name for m in genai.list_models()])
Các bước tiếp theo
Nếu cách đó hiệu quả thì bạn đã sẵn sàng thử Truy xuất ngữ nghĩa trên dữ liệu văn bản của bạn.
Tự quản lý thông tin đăng nhập [Python]
Trong nhiều trường hợp, bạn sẽ không có sẵn lệnh gcloud
để tạo quyền truy cập
mã thông báo từ Mã ứng dụng khách (client_secret.json
). Google cung cấp các thư viện bằng
nhiều ngôn ngữ để bạn có thể quản lý quá trình đó trong ứng dụng của mình. Phần này
minh hoạ quy trình này, bằng python. Có các ví dụ tương đương cho kiểu này
đối với các ngôn ngữ khác, có sẵn trong
Tài liệu về API Drive
1. Cài đặt các thư viện cần thiết
Cài đặt thư viện ứng dụng Google cho Python và thư viện ứng dụng Gemini.
pip install --upgrade -q google-api-python-client google-auth-httplib2 google-auth-oauthlib
pip install google-generativeai
2. Ghi trình quản lý thông tin xác thực
Để giảm thiểu số lần bạn phải nhấp vào giấy uỷ quyền
trên các màn hình, hãy tạo một tệp có tên là load_creds.py
trong thư mục đang làm việc để
sẽ lưu tệp token.json
vào bộ nhớ đệm để sau này có thể sử dụng lại hoặc làm mới nếu hết hạn.
Bắt đầu bằng
mã sau đây để chuyển đổi tệp client_secret.json
thành mã thông báo có thể sử dụng với
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. Viết chương trình
Bây giờ, hãy tạo script.py
của bạn:
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. Chạy chương trình
Trong thư mục đang hoạt động, hãy chạy mẫu:
python script.py
Lần đầu tiên bạn chạy tập lệnh, một cửa sổ trình duyệt sẽ mở ra và nhắc bạn để cho phép truy cập.
Nếu chưa đăng nhập vào Tài khoản Google, bạn sẽ được nhắc đăng nhập. Nếu bạn đã đăng nhập vào nhiều tài khoản, hãy nhớ chọn tài khoản mà bạn đặt làm "Tài khoản thử nghiệm" khi định cấu hình dự án.
Thông tin uỷ quyền được lưu trữ trong hệ thống tệp để lần tiếp theo bạn chạy mã mẫu, bạn sẽ không được nhắc uỷ quyền.
Bạn đã thiết lập thành công xác thực.