Guía de inicio rápido de Authentication con OAuth

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.

    Habilitar la API

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.

  1. En la consola de Google Cloud, ve al Menú > APIs y Servicios > OAuth pantalla de consentimiento.

    Ir a la pantalla de consentimiento de OAuth

  2. Selecciona el tipo de usuario Externo para tu app y, luego, haz clic en Crear.

  3. 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.

  4. 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.

  5. Agrega usuarios de prueba:

    1. En Usuarios de prueba, haz clic en Agregar usuarios.
    2. Ingresa tu dirección de correo electrónico y los demás usuarios de prueba autorizados. Luego, Haz clic en Guardar y continuar.
  6. 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.

  1. En la consola de Google Cloud, ve al Menú > APIs y Servicios > Credenciales.

    Ir a Credenciales

  2. Haz clic en Crear credenciales > ID de cliente de OAuth.

  3. Haz clic en Tipo de aplicación > App para computadoras de escritorio.

  4. En el campo Nombre, escribe un nombre para la credencial. Este nombre solo es que se muestran en la consola de Google Cloud.

  5. 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.

  6. Haz clic en Aceptar. La credencial creada recientemente aparece en Cliente de OAuth 2.0 IDs

  7. 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 a client_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.

  1. 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.

  2. 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.