La API de Gemini te permite realizar una recuperación semántica con tus propios datos. Ya que es tus datos, se necesitan controles de acceso más estrictos que las claves de API.
En esta guía de inicio rápido, se usa un enfoque de autenticación simplificado que resulta apropiado para un entorno de pruebas. Para un entorno de producción, aprende alrededor de autenticación y autorización antes de elige las credenciales de acceso que sean adecuados para tu app.
Objetivos
- Configura tu proyecto de la nube para OAuth
- Configura application-default-credentials
- Administra las credenciales en tu programa en lugar de usar
gcloud auth
.
Requisitos previos
Para ejecutar esta guía de inicio rápido, necesitas lo siguiente:
Configura tu proyecto de la nube
Para completar esta guía de inicio rápido, primero debes configurar tu proyecto de Cloud.
1. Habilita la API
Antes de usar las APIs de Google, debes activarlas en un proyecto de Google Cloud.
En la consola de Google Cloud, habilita la API de Google Generative Language.
2. Cómo configurar la pantalla de consentimiento de OAuth
A continuación, configura la pantalla de consentimiento de OAuth del proyecto y agrégate como prueba. usuario. Si ya completaste este paso para tu proyecto de Cloud, dirígete al sección.
En la consola de Google Cloud, ve al Menú > APIs y Servicios > OAuth pantalla de consentimiento.
Selecciona el tipo de usuario Externo para tu app y, luego, haz clic en Crear.
Completa el formulario de registro de la app (puedes dejar la mayoría de los campos en blanco). Luego, haz clic en Guardar y continuar.
Por ahora, puedes omitir el paso de agregar permisos y hacer clic en Guardar y continuar. En la en el futuro, cuando crees una app para usarla fuera de tu cuenta de Google Workspace debes agregar y verificar los permisos de autorización que la aplicación.
Agrega usuarios de prueba:
- En Usuarios de prueba, haz clic en Agregar usuarios.
- Ingresa tu dirección de correo electrónico y los demás usuarios de prueba autorizados. Luego, Haz clic en Guardar y continuar.
Revisa el resumen del registro de tu app. Para realizar cambios, haz clic en Editar. Si si el registro de la app es correcto, haz clic en Volver al panel.
3. Autoriza credenciales para una aplicación de escritorio
Para autenticarte como usuario final y acceder a los datos del usuario en tu app, debes crear uno o más IDs de cliente de OAuth 2.0. Un ID de cliente se usa con el fin de identificar una sola app para los servidores de OAuth de Google. Si tu app se ejecuta en varias plataformas debes crear un ID de cliente diferente para cada plataforma.
En la consola de Google Cloud, ve al Menú > APIs y Servicios > Credenciales.
Haz clic en Crear credenciales > ID de cliente de OAuth.
Haz clic en Tipo de aplicación > App para computadoras de escritorio.
En el campo Nombre, escribe un nombre para la credencial. Este nombre solo es que se muestran en la consola de Google Cloud.
Haz clic en Crear. Aparecerá la pantalla de creación del cliente de OAuth, en la que se mostrará tu nueva ID y secreto del cliente.
Haz clic en Aceptar. La credencial creada recientemente aparece en Cliente de OAuth 2.0 IDs
Haz clic en el botón de descarga para guardar el archivo JSON. Se guardará como
client_secret_<identifier>.json
y cámbiale el nombre aclient_secret.json
. y moverla a tu directorio de trabajo.
Configura las credenciales predeterminadas de la aplicación
Para convertir el archivo client_secret.json
en credenciales utilizables, pasa su
la ubicación de lagcloud auth application-default login
--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'
La configuración simplificada de proyecto en este instructivo activa un error "Google hast verificó esta app". Esto es normal; elige "continuar".
Esto coloca el token resultante en una ubicación conocida para que se pueda acceder a él.
por gcloud
o por las bibliotecas cliente.
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'
Una vez que configuras las credenciales predeterminadas de la aplicación (ACD), el cliente en la mayoría de los lenguajes necesitan muy poca o nada de ayuda para encontrarlos.
Curl
La forma más rápida de comprobar si funciona es usarlo para acceder al servicio de REST API con 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
En Python, las bibliotecas cliente deberían encontrarlos automáticamente:
pip install google-generativeai
Una secuencia de comandos mínima para probarla podría ser la siguiente:
import google.generativeai as genai
print('Available base models:', [m.name for m in genai.list_models()])
Próximos pasos
Si eso funciona, estás listo para intentarlo Recuperación semántica en tus datos de texto.
Administra las credenciales por tu cuenta [Python]
En muchos casos, no tendrás el comando gcloud
disponible para crear el acceso.
token del ID de cliente (client_secret.json
). Google proporciona bibliotecas en
varios idiomas para que puedas administrar ese proceso dentro de tu app. Esta sección
demuestra el proceso en Python. Hay ejemplos equivalentes de este tipo
de procedimiento, para otros idiomas, disponible en la
Documentación de la API de Drive
1. Instala las bibliotecas necesarias
Instalar la biblioteca cliente de Google para Python y la biblioteca cliente de Gemini
pip install --upgrade -q google-api-python-client google-auth-httplib2 google-auth-oauthlib
pip install google-generativeai
2. Escribir el administrador de credenciales
Para minimizar la cantidad de veces que debe hacer clic para avanzar por la autorización
pantallas, crea un archivo llamado load_creds.py
en tu directorio de trabajo para
almacena en caché un archivo token.json
que puede volver a usar más tarde o actualizar si vence.
Comienza con el
siguiente código para convertir el archivo client_secret.json
en un token que se puede usar con
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. Escribe el programa
Ahora, crea tu 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. Cómo ejecutar el programa
En tu directorio de trabajo, ejecuta la muestra:
python script.py
La primera vez que ejecutes la secuencia de comandos, se abrirá una ventana del navegador y se te solicitará para autorizar el acceso.
Si aún no accediste a tu Cuenta de Google, se te solicitará que accede a tu cuenta. Si accediste a varias cuentas, asegúrate de seleccionar el que configuraste como "Cuenta de prueba" cuando configures el proyecto.
La información de autorización se almacena en el sistema de archivos; por lo tanto, la próxima vez que ejecuta el código de muestra, no se te pedirá autorización.
Configuraste correctamente la autenticación.