Saltar al contenido principal
InicioTutorialesInteligencia Artificial (IA)

Presentación de la API Gemini de Google: Descubre la potencia de los nuevos modelos de Gemini AI

Aprende a utilizar la API Gemini Python y sus diversas funciones para crear aplicaciones basadas en IA de forma gratuita.
Actualizado jun 2024  · 13 min leer

Google Bard se ha enfrentado a la creciente competencia de ChatGPT, pero con el lanzamiento de sus últimos modelos de Gemini AI, esperan recuperar su posición en el mercado. En un esfuerzo por mejorar la experiencia del usuario, Google ha renovado recientemente la asistencia de la IA Bard con los modelos Gemini Pro y la ha hecho más accesible para los usuarios que desean introducir tanto texto como imágenes para recibir respuestas precisas y naturales.

En este tutorial, exploraremos la API Gemini de Google, que permite crear aplicaciones avanzadas basadas en IA. Gracias a sus potentes funciones, puede incorporar fácilmente entradas de texto e imágenes para generar resultados precisos y contextualmente relevantes. La API Python de Gemini simplifica la integración en sus proyectos existentes, permitiendo la implementación sin problemas de funciones de inteligencia artificial de vanguardia.

¿Qué es Gemini AI?

Gemini AI es un modelo de inteligencia artificial (IA) de vanguardia creado gracias al esfuerzo conjunto de varios equipos de Google, como Google Research y Google DeepMind. Diseñada para ser multimodal, Gemini AI puede comprender y procesar numerosas formas de datos, como texto, código, audio, imágenes y vídeos.

La búsqueda de inteligencia artificial por parte de Google DeepMind ha estado impulsada durante mucho tiempo por la esperanza de utilizar sus capacidades en beneficio colectivo de la humanidad. Con ello, Gemini AI ha logrado avances significativos en la creación de una nueva generación de modelos de IA que se inspiran en la forma en que los seres humanos perciben el mundo e interactúan con él.

Gemini AI, el modelo de IA más sofisticado y de mayor tamaño producido por Google hasta la fecha, se diseñó para ser muy flexible y manejar diversos tipos de información. Su versatilidad le permite funcionar eficazmente en una gran variedad de sistemas, desde potentes servidores de centros de datos hasta dispositivos móviles.

A continuación se presentan tres versiones de los modelos Gemini entrenados para casos de uso específicos:

  1. Gemini Ultra: La versión más avanzada, capaz de realizar tareas complejas.
  2. Gemini Pro: Una opción equilibrada que ofrece un buen rendimiento y escalabilidad.
  3. Gemini Nano: Optimizado para dispositivos móviles, proporciona la máxima eficacia.

Gemini Ultra frente a GPT4

Fuente de la imagen

Entre estas variantes, Gemini Ultra ha mostrado un rendimiento excepcional, superando a GPT-4 en múltiples criterios. Es el primer modelo que supera a los expertos humanos en la prueba de referencia Massive Multitask Language Understanding, que evalúa el conocimiento del mundo y las capacidades de resolución de problemas en 57 áreas temáticas. Este logro demuestra la superior capacidad de comprensión y resolución de problemas de Gemini Ultra.

Si eres nuevo en el campo de la inteligencia artificial, explora el programa de habilidades Fundamentos de la IA. Abarca temas populares de la IA como ChatGPT, grandes modelos lingüísticos e IA generativa.

Configuración del entorno

Antes de empezar a utilizar la API, tenemos que obtener la clave API de la IA de Google para desarrolladores.

1. Haz clic en el botón "Obtener una clave API".

image1.png

2. A continuación, crea el proyecto y genera la clave API.

image16.png

3. Copia la clave API y añade una variable de entorno llamada "Gemini_API_KEY" en su sistema. Para crear una variable de entorno segura en Kaggle, ve a "Complementos" y selecciona "Secretos". A continuación, haz clic en el botón "Añadir un nuevo secreto" para añadir una etiqueta y su valor correspondiente y guárdalo.

image6.png

4. Instala el paquete Gemini Python API mediante pip.

%pip install google-generativeai

5. Configura la API Gemini y añade la clave API. Para acceder al secreto hay que crear el objeto UserSecretsClient y luego proporcionarle la etiqueta.

import google.generativeai as genai
from kaggle_secrets import UserSecretsClient

user_secrets = UserSecretsClient()
gemini_key = user_secrets.get_secret("GEMINI_API_KEY")

genai.configure(api_key = gemini_key)

Generar la respuesta

En esta sección, aprenderemos a generar respuestas mediante el modelo Gemini Pro. Si te encuentras con problemas al ejecutar el código por tu cuenta, puedes seguir el Gemini API Kaggle Notebook.

Ahora comprobaremos el acceso al modelo disponible con la API gratuita. Para ello, ejecuta el código siguiente. Mostrará los modelos de generación compatibles mediante la función list_models.

for m in genai.list_models():
    if 'generateContent' in m.supported_generation_methods:
        print(m.name)

Parece que solo tenemos acceso a dos modelos, "gemini-pro" y "gemini-pro-vision".

models/gemini-pro
models/gemini-pro-vision

Accedamos al modelo "Gemini Pro" y generemos una respuesta mediante una simple consulta.

model = genai.GenerativeModel('gemini-pro')

response = model.generate_content("Please provide a list of the most influential people in the world.")

print(response.text)

Hemos podido generar una respuesta muy precisa con solo unas pocas líneas de código.

image2.png

Gemini AI puede producir múltiples respuestas denominadas candidatas para una pregunta, lo que permite seleccionar la más apropiada. Sin embargo, la versión gratuita de la API solo ofrece una opción candidata.

response.candidates

image7.png

Nuestra salida está en formato Markdown. Vamos a solucionarlo con la herramienta IPython Markdown. Ahora pediremos a Gemini que genere código Python.

from IPython.display import Markdown

response = model.generate_content("Build a simple Python web application.")

Markdown(response.text)

La modelo ha hecho un gran trabajo. Ha generado una guía paso a paso con una explicación de cómo construir y ejecutar una aplicación web sencilla mediante Flask.

image11.png

Transmisión

Es importante utilizar la transmisión para aumentar la velocidad percibida de la aplicación. Al activar el argumento 'stream', la respuesta se generará y mostrará en cuanto esté disponible. Nuestra salida se generará en segmentos, por lo que tenemos que iterar sobre la respuesta.

from IPython.display import display

model = genai.GenerativeModel("gemini-pro")
response = model.generate_content(
    "How can I make authentic Italian pasta?", stream=True
)

for chunk in response:
    display(Markdown(chunk.text))
    display(Markdown("_" * 80))

Cada segmento está separado por una línea discontinua. Como podemos ver a continuación, nuestro contenido se genera en segmentos. La transmisión en la API Gemini es similar al de las API OpenAI y Anthropic.

image5.png

Afinar la respuesta

Podemos ajustar la respuesta generada para adaptarla a nuestras necesidades.

En el siguiente ejemplo, estamos generando un candidato con un máximo de 1000 tokens y una temperatura de 0,7. Además, hemos establecido una secuencia de parada, de modo que cuando aparezca la palabra "tiempo" en el texto generado, el proceso de generación se detenga automáticamente.

response = model.generate_content(
    'How to be productive during a burnout stage.',
    generation_config=genai.types.GenerationConfig(
        candidate_count=1,
        stop_sequences=['time'],
        max_output_tokens=1000,
        temperature=0.7)
)

Markdown(response.text)

image10.png

Probar Gemini Pro Vision

En esta sección, utilizaremos Gemini Pro Vision para acceder a la multimodalidad de Gemini AI.

Descargaremos la foto de Mayumi Maciel de pexel.com con la herramienta curl.

!curl -o landscape.jpg "https://images.pexels.com/photos/18776367/pexels-photo-18776367/free-photo-of-colorful-houses-line-the-canal-in-burano-italy.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2"

image3.png

Para cargar y visualizar la imagen en el Kaggle Notebook, utilizaremos el paquete Pillow Python.

import PIL.Image

img = PIL.Image.open('landscape.jpg')
display(img)

image15.jpg

Para comprender el contenido de esta imagen, primero debemos cargar el modelo "gemini-pro-vision" y proporcionarle un objeto imagen.

model = genai.GenerativeModel('gemini-pro-vision')

response = model.generate_content(img)

Markdown(response.text)

Ha identificado con precisión la ubicación en la imagen y ha proporcionado una descripción.

A beautiful day in Burano, Italy. The colorful houses and the calm water make this a perfect place to relax and enjoy the scenery.

Introduzcamos el texto y el objeto de imagen en nuestra función de generación para hacer a nuestro modelo una pregunta sobre la imagen.

response = model.generate_content(
    ["Can you provide the exact location with coordinates?", img]
)

Markdown(response.text)
45.4408° N, 12.3150° E

Ha proporcionado con precisión las coordenadas del lugar, y nosotros también lo hemos verificado al añadir las coordenadas a Google Maps.

image13.png

Conversaciones por chat

Es posible mantener una conversación con el modelo de IA que conserva el contexto de la charla mediante el historial de las conversaciones anteriores. De este modo, el modelo puede recordar el contenido de la conversación y ofrecer respuestas adecuadas basadas en las interacciones anteriores.

Solo tenemos que crear un objeto de chat utilizando la dirección model.start_chat y proporcionarle el primer mensaje.

model = genai.GenerativeModel('gemini-pro')

chat = model.start_chat(history=[])

chat.send_message("Who created the Mona Lisa?")

for message in chat.history:
    display(Markdown(f'**{message.role}**: {message.parts[0].text}'))

image8.png

Formulemos otra pregunta y mostremos la respuesta en el formato de chat.

chat.send_message("What else he created?")

for message in chat.history:
    display(Markdown(f'**{message.role}**: {message.parts[0].text}'))

El modelo ha recordado el contexto y ha dado una respuesta adecuada.

image9.png

Incrustaciones

La API ofrece acceso a los modelos de incrustación, una herramienta muy popular para las aplicaciones conscientes del contexto. Con una sencilla función de Python, los usuarios pueden convertir sus indicaciones o contenidos en incrustaciones, lo que les permite representar palabras, frases o documentos enteros como vectores densos que codifican el significado semántico.

Proporcionaremos a la función embed_content el nombre del modelo, el contenido, el tipo de tarea y el título.

result = genai.embed_content(
    model="models/embedding-001",
    content="Who created the Mona Lisa?",
    task_type="retrieval_document",
    title="Mona Lisa Research")

print(result['embedding'][:10])
[0.086675204, -0.027617611, -0.015689207, -0.00445945, 0.07286186, 0.00017529335, 0.07243656, -0.018299067, 0.018799499, 0.028495966]

Para convertir varios contenidos en la incrustación, debe proporcionar una lista de cadenas al argumento "content".

result = genai.embed_content(
    model="models/embedding-001",
    content=[
        "Who created the Mona Lisa?",
        "What else he created?",
        "When did he died?"
    ],
    task_type="retrieval_document",
    title="Mona Lisa Research 2")

for emb in result['embedding']:
    print(emb[:10],"\n")
[0.07942627, -0.032543894, -0.010346633, -0.0039942865, 0.071596086, -0.0016670177, 0.07821064, -0.011955016, 0.019478166, 0.03784406] 

[0.027897138, -0.030693276, -0.0012639443, 0.0018902065, 0.07171923, -0.011544562, 0.04235154, -0.024570161, 0.013215181, 0.03026724] 

[0.04341321, 0.013262799, -0.0152797215, -0.009688456, 0.07342798, 0.0033503908, 0.05274988, -0.010907041, 0.05933596, 0.019402765]

Inscríbase en el curso Introducción a las incrustaciones con la API de OpenAI para aprender sobre modelos de incrustación para aplicaciones avanzadas de IA como la búsqueda semántica y los motores de recomendación.

Casos de uso avanzados

Para aprovechar todo el potencial de la API Gemini, es posible que los desarrolladores tengan que profundizar en funciones avanzadas como la configuración de seguridad y la API de bajo nivel.

  • Los ajustes de seguridad permiten a los usuarios configurar el bloqueo de contenidos y la permisividad en los avisos y respuestas, lo que garantiza el cumplimiento de las directrices de la comunidad.
  • La API de nivel inferior ofrece cada vez más flexibilidad para la personalización.
  • Las conversaciones multiturnopueden ampliarse con la clase GenaiChatSession, lo que mejora las experiencias conversacionales.

El uso de funciones avanzadas permite a los desarrolladores crear aplicaciones más eficaces y abre nuevas posibilidades de interacción con el usuario.

Conclusión

La API Gemini abre a los desarrolladores posibilidades apasionantes para crear aplicaciones avanzadas de inteligencia artificial mediante tanto entradas de texto como visuales. Sus modelos de última generación, como Gemini Ultra, superan los límites de lo que los sistemas de IA pueden comprender y generar.

Google ha conseguido que la integración de la IA en las aplicaciones sea más sencilla gracias al cómodo acceso proporcionado a través de una API de Python. La API de Gemini ofrece una serie de funciones, como la generación de contenidos, la incrustación y las conversaciones multiturno, que hacen que la IA sea más accesible. La IA de Géminis supone un gran salto adelante en la comprensión multimodal.

Si te interesa saber más, empieza a desarrollar aplicaciones basadas en IA con la API de OpenAI e inscríbete en un breve curso sobre cómo trabajar con la API de OpenAI. Descubre la funcionalidad de las aplicaciones de IA más populares, como ChatGPT y DataLab, el cuaderno de datos de DataCamp habilitado para IA.

Si eres un profesional y no necesitas el curso práctico, puedes explorar la API de OpenAI en Python con nuestra hoja de trucos.

Temas

¡Comienza hoy tu viaje por la IA!

Certificación disponible

Course

Conceptos de IA Generativa

2 hr
25.7K
Descubre cómo empezar a aprovechar responsablemente la IA generativa. Aprende cómo se desarrollan los modelos generativos de IA y cómo afectarán a la sociedad en el futuro.
See DetailsRight Arrow
Start Course
Ver másRight Arrow