Cómo utilizar la API de Google Gemini

Publicado el jueves 8 de febrero del 2024 por Lino Uruñuela

 

Este es el primer artículo que escribo sobre Inteliigencia artificial generativa en este blog, y ya te digo yo que no va a ser el último!

Hoy quiero mostrar cómo crear aplicaciones / desarrollos con Google Gemini, además y por pura casualidad, Google acaba de anunciar hoy mismo que actualiza Bard, para renombrarlo como Gemini y también ha anunciado que Gemini Advanced ya está disponible (bajo suscrippción de 20€/mes). Esta versión de chatBot ()  utiliza la versión 'Ultra 1.0' bajo el capot del chat y supuestamente es el modelo de leguaje más avanzado de Google hasta el momento.

Para poder probar y/o integrar Gemini en tu web o aplicación debemos dar de alta una cuenta en Google Cloud, habilitar la facturación (introducir tarjeta de crédito) y habilitar la API de Vertex. En Esspaña y el resto de la Unión Europea Vertex es el único camino que hay disponible para inttegrar los grandes modelos del lenguaje de Google, al menos de momento.

Para poder habilitar y utilizar la API de Gemini debes:

  1. Crear una cuenta en Google Cloud y activar la facturación
    • Crear una cuenta de Google Cloud:
      • Accede a la página de inicio de Google Cloud:
      • Haz clic en "Empezar".
      • Inicia sesión con tu cuenta de Google (o crea una nueva si no la tienes).
      • Selecciona un nombre para tu proyecto y haz clic en "Crear".
      • Revisa y acepta los términos y condiciones.
    • Activar la facturación:
      • Ve a la consola de Google Cloud:
      • Haz clic en el menú de hamburguesas (tres líneas horizontales) en la esquina superior izquierda.
      • Selecciona "Facturación".
      • Sigue las instrucciones en pantalla para completar la configuración de la cuenta de facturación.
      • Una vez que la cuenta de facturación esté configurada, ve a la página "Proyectos".
      • Haz clic en el nombre del proyecto para el que deseas activar la facturación.
      • En la sección "Facturación", haz clic en "Habilitar la facturación".
      • Selecciona la cuenta de facturación que deseas usar y haz clic en "Guardar"

  2. Habilitar la api de Vertex
    • Accede a la consola de Google Cloud:
    • Haz clic en el menú de hamburguesas (tres líneas horizontales) en la esquina superior izquierda.
    • Selecciona "APIs y servicios".
    • En la barra de búsqueda, escribe "Vertex AI" y haz clic en "Vertex AI API".
    • Haz clic en "Habilitar".
    • Si se te solicita, acepta los términos y condiciones.

Una vez que ya has realizado estos pasos casi estamos listos para comenzar a trastear con la API de Gemini, pero debemos habilitar nuestro entorno, en este casos elegiremos python, por lo que si quieress ejecutarlo desde tu propio ordenador deberás instalar el cliente de Google Cloud. Para ello sigue los pasos tal como indica la propia documentación de Google.

Una vez instalado el cliente de Google Cloud en tu ordenador debes autenticarte, para ello simplemente ejecutamos el suiguiente comando que nos pedirá seleccionar una cuenta de Google y autorzar a tu ordenador a iuriliar las APIs de Google Cloud

gcloud init

Una vez concedido el permiso no deberemos ejecutar este comanddo más vecess :

Ahora vamos con lo que es el uso ded la API de Vertex AI, debes instalar la librería de Vertex AI con el siguiente comando

pip install "google-cloud-aiplatform>=1.38"

Y ya en el código de nuestro fichero / script / colab de python añadimos el código correspondiente.

Lo primero, importar las librerías de Vertex AI

import vertexai
from vertexai.preview.generative_models import GenerativeModel, Part

Ahora necesttamos el ID del proyecto en Google Cloud para el cual has habilitado la API de Vertex, copia el ID y sustituye donde pone 'ID_PROYECTO' por el ID de proyecto en el siguiente código

#MODIFICA 'ID_PROYECTO' POR EL ID DE TU PROYECTO EN GOOGLE CLOUD
#ZONA_PROYECTO ES LA ZONA DONDE SE EJECUTA, POR AHORA NO HAY OPCIÓN EUROPEA
IDPROYECTO="ID_PROYECTO"
ZONA_PROYECTO='us-central1'


vertexai.init(project=IDPROYECTO, location=ZONA_PROYECTO)

def generate_text(ejecutaPrompt: str) -> str:
    # Initialize Vertex AI

    # Load the model
    model = GenerativeModel("gemini-pro")
    response = model.generate_content(
            ejecutaPrompt,
            generation_config={
                "max_output_tokens": 2048,
                "temperature": 0.9,
                "top_p": 1
            },
        )

    print(response.text)

 

Ahora definimos nuestro prompt, en este ejemplo vamos a generar el texto sobre el regate 'cola de vaca' de Romario

#DEFINE TU PROMPT PARA EJECUTAR SOBRE GOOGLE GEMINI

prompt='''
Eres un redactor de contenido experto en deportes,
redacta un artículo con diferentes seccciones donde explique paso a paso y con gran detalle
la física involucrada en un dribling de Romario con su regate 'cola de vaca'.
GENERA LA SALIDA EN FORMATO TEXTO PLANO con formato adaptado, espacios en blanco como identación, listas identadas, etc
'''

generate_text(prompt)

Y ya podemos ejecutarlo!!

En este ejemplo la respuesta que nos da Gemini es

# Física del regate 'cola de vaca' de Romario

El regate 'cola de vaca' es un movimiento característico del fútbol que consiste en llevar el balón con el pie derecho, tocándolo suavemente con el exterior para que se aleje del defensa, y luego girando rápidamente alrededor del balón con el pie izquierdo, pasando el balón por detrás del pie derecho y alejándolo del defensa en la dirección opuesta.

### Principios físicos involucrados

- **Fuerza de fricción:** La fuerza de fricción es la fuerza que se opone al movimiento entre dos superficies en contacto. En el caso del regate 'cola de vaca', la fuerza de fricción está presente entre el balón y el césped.
- **Momento de inercia:** El momento de inercia es una medida de la resistencia de un objeto a la rotación. En el caso del regate 'cola de vaca', el momento de inercia del balón está determinado por su masa y su distribución de masa.
- **Par:** Un par es una fuerza que tiende a hacer girar un objeto. En el caso del regate 'cola de vaca', el par está generado por la fuerza de fricción entre el balón y el césped.

### Secuencia del movimiento

1. El jugador conduce el balón con el pie derecho, tocándolo suavemente con el exterior para que se aleje del defensa.
2. El jugador gira rápidamente alrededor del balón con el pie izquierdo, pasando el balón por detrás del pie derecho.
3. El jugador extiende el pie izquierdo y lo apoya en el césped, generando una fuerza de fricción que hace girar el balón en sentido contrario a las agujas del reloj.
4. El par generado por la fuerza de fricción hace que el balón gire rápidamente y se aleje del defensa en la dirección opuesta.

### Factores que afectan al éxito del regate

- **Velocidad del jugador:** Cuanto más rápido sea el jugador, más fuerza de fricción se generará y más rápido girará el balón.
- **Dirección del movimiento:** La dirección del movimiento del jugador afecta al momento de inercia del balón y, por tanto, a la fuerza de fricción necesaria para hacerlo girar.
- **Estado del césped:** El estado del césped puede afectar a la fuerza de fricción entre el balón y el césped. Un césped seco y duro generará más fricción que un césped húmedo y blando.


### Conclusión

El regate 'cola de vaca' es un movimiento complejo que requiere una combinación de fuerza, velocidad, coordinación y sincronización. Los principios físicos involucrados en el regate incluyen la fuerza de fricción, el momento de inercia y el par.
 
 
También he creado este Colab con este mismo ejemplo, en el caso de utilizar las apis de Google Cloud desde Google Colab, en vez de instalar el cliente de Google Cloud solo debes añadir las siguietes líneas al comienzo del código, que solicitará acceso al usuario cuando la ejecute.
 
from google.colab import auth
auth.authenticate_user()
 
En el próximo artículo iré mostrando diferentes desafíos a la hora de crear extensos artículos para que queden razonablemente bien y para que no añada información rediundante, y por supuesto a escala!. :)
 
 
 

 




Lea otros artículos de Google Gemini

Últimos posts

Últimos comentarios


JaviLazaro
Ya me has dado la necesidad de crear un comaando en bash para hacer estas cosas. Gracias Lino por estos tips
Post: Obtener KWs de varias fuentes usando la línea de comandos

Señor Muñoz
Lino, el 11% más de clicks y el 47% más de impresiones diarias ¿es algo constante o depende de cada sitio web?
Post: Diferencias entre la exportación de datos de Search Console usando BigQuery o usando la API

Carlos
Hola En mi blog tengo artículos atemporales (es decir, no caducan nunca, de manera que sirve para quien lo lea hoy o lo lea dentro de 5
Post: Tratamiento de urls que tienen un tiempo de vida muy corto

Profe Ray
Veo que hay comentarios de hace 5 años y de hace 3 años. ¿Habrá algun post actualizado sobre este tema o sigue funcionando? Lo cierto es
Post: Cómo cargar css y js y no bloquear la carga de contenido

Pepe
Muchas gracias por el articulo!! Muy buena información.
Post: Qué es ofuscar enlaces y cómo mejora el enlazado interno

María
Sí, he buscado el archivo robots.txt y todo está correcto. La última versión vista con error fue el 08/11/2021 y la última vez que el
Post: Errores críticos originados por el robots.txt

Lino
@María un placer verte por aquí :) Lo primero, a veces, con el robots.txt no se puede "forzar" a que lo rastree, si tu site no es muy p
Post: Errores críticos originados por el robots.txt

María
Hola Lino, tengo el mismo problema. El probador de robots de google me indica: "Error al obtener el archivo robots.txt Tienes un archivo ro
Post: Errores críticos originados por el robots.txt

Mario
Estoy tratando de vincular los datos en Google Data Studio y he combinado los datos de la tabla "Impresión del sitio" con "Impresión de UR
Post: Datos incoherentes y cálculo de la posición media en Search Console

José B. Moreno Suárez
Yo hace tiempo que agrupaba con stemmers. Ahora, además, comparo con un proceso las keywords que aportan impresiones a una URL determinada
Post: Clustering de keywords SEO en Google Search Console - Parte II