Самый простой способ аутентификации в API Gemini — это настройка ключа API, как описано в кратком руководстве по API Gemini . Если вам необходимы более строгие меры контроля доступа, вы можете использовать OAuth. Это руководство поможет вам настроить аутентификацию с помощью OAuth.
В этом руководстве используется упрощенный подход к аутентификации, подходящий для тестовой среды. Для производственной среды перед выбором учетных данных доступа , подходящих для вашего приложения, необходимо ознакомиться с основами аутентификации и авторизации.
Цели
- Настройте свой облачный проект для аутентификации OAuth.
- Настройте учетные данные по умолчанию для приложения.
- Управляйте учетными данными в своей программе вместо использования
gcloud auth
Предварительные требования
Для запуска этого краткого руководства вам потребуется:
Настройте свой облачный проект
Для завершения этого краткого руководства вам сначала необходимо настроить свой облачный проект.
1. Включите API.
Перед использованием API Google необходимо включить их в проекте Google Cloud.
В консоли Google Cloud включите API генеративного языка Google.
2. Настройте экран согласия OAuth.
Далее настройте экран согласия OAuth для проекта и добавьте себя в качестве тестового пользователя. Если вы уже выполнили этот шаг для своего облачного проекта, перейдите к следующему разделу.
В консоли Google Cloud перейдите в Меню > Платформа аутентификации Google > Обзор .
Заполните форму настройки проекта и в разделе «Аудитория» установите тип пользователя на «Внешний» .
Заполните оставшуюся часть формы, примите условия Политики обработки пользовательских данных, а затем нажмите «Создать» .
На данный момент вы можете пропустить добавление областей авторизации и нажать «Сохранить и продолжить» . В будущем, при создании приложения для использования за пределами вашей организации Google Workspace, вам потребуется добавить и проверить области авторизации, необходимые вашему приложению.
Добавить тестовых пользователей:
- Перейдите на страницу «Аудитория» платформы Google Auth.
- В разделе «Проверка пользователей» нажмите «Добавить пользователей» .
- Введите свой адрес электронной почты и имена других авторизованных пользователей, участвующих в тестировании, затем нажмите «Сохранить» .
3. Авторизация учетных данных для настольного приложения.
Для аутентификации в качестве конечного пользователя и доступа к пользовательским данным в вашем приложении необходимо создать один или несколько идентификаторов клиента OAuth 2.0. Идентификатор клиента используется для идентификации отдельного приложения на серверах OAuth Google. Если ваше приложение работает на нескольких платформах, необходимо создать отдельный идентификатор клиента для каждой платформы.
В консоли Google Cloud перейдите в Меню > Платформа аутентификации Google > Клиенты .
Нажмите «Создать клиента» .
Выберите «Тип приложения» > «Настольное приложение» .
В поле «Имя» введите имя для учетных данных. Это имя отображается только в консоли 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'
После установки учетных данных приложения по умолчанию (ADC) клиентским библиотекам в большинстве языков программирования практически не требуется помощь в их поиске.
Кудри
Самый быстрый способ проверить работоспособность — использовать его для доступа к 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-genai
Примером минимального скрипта для тестирования может служить:
from google import genai
client = genai.Client()
print('Available base models:', [m.name for m in client.models.list()])
Следующие шаги
Если это работает, вы готовы попробовать семантический поиск на ваших текстовых данных .
Управление учетными данными самостоятельно [Python]
Во многих случаях у вас не будет доступа к команде gcloud для создания токена доступа на основе идентификатора клиента ( client_secret.json ). Google предоставляет библиотеки на многих языках, позволяющие управлять этим процессом в вашем приложении. В этом разделе демонстрируется этот процесс на Python. Аналогичные примеры подобной процедуры для других языков доступны в документации API Google Drive.
1. Установите необходимые библиотеки.
Установите клиентскую библиотеку Google для Python и клиентскую библиотеку Gemini.
pip install --upgrade -q google-api-python-client google-auth-httplib2 google-auth-oauthlibpip install google-genai
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
from google import genai
from load_creds import load_creds
creds = load_creds()
client = genai.Client(credentials=creds)
print()
print('Available base models:', [m.name for m in client.models.list()])
4. Запустите свою программу.
В рабочей директории запустите пример:
python script.pyПри первом запуске скрипта открывается окно браузера и запрашивается подтверждение доступа.
Если вы еще не вошли в свою учетную запись Google, вам будет предложено войти. Если вы вошли в несколько учетных записей, обязательно выберите ту учетную запись, которую вы указали в качестве «Тестовой учетной записи» при настройке проекта.
Информация об авторизации хранится в файловой системе, поэтому при следующем запуске примера кода запрос на авторизацию не потребуется.
Вы успешно настроили аутентификацию.