Skip to content

2024 S2 D.iv Google Gemini

Published: at 06:18 PM

Google Colab trae instalado un asistente LLM de programación llamado Gemini. Tiene tres dos interfaces:

  1. Una opción en la célda de código, que se activa haciendo click en la palabra generate

    Bloque de código de Jupyter (también colab), en el que a la izquierda hay un círculo con un triángulo que simboliza "correr el código" y a la derecha el texto "Start coding or generate with AI.

  2. Una ventana tipo chat que se abre haciendo click a la derecha en la palabra Gemini

    Botón con la palabra Gemini y una estrella azul a su lado

Celda de código

Se hace click en la palabra generate, lo que hace que el ícono a la izquierda que representa la celda cambie a ser un lápiz con una estrella. Esto denota que la celda ahora es un prompt o instrucción para que el LLM genere código.

Bloque de google colab, a su izquierda hay un lapiz y la palabra Generate, a su derecha una casilla para ingresar texto, aquí una instrucción (prompt) para el LLM.

Chat

Al hacer click en Gemini sale una ventana de chat que nos permite dar instrucciones al LLM.

Ventana de chat que permite ingresar instrucciones (prompts) al LLM.

Vamos a intentar usarlo para cargar el archivo que tenemos. Pero primero:

Cuidados

Codificaciones

Según wikipedia, “La codificación de caracteres es el método que permite convertir un carácter de un lenguaje natural (como el de un alfabeto o silabario) en un símbolo de otro sistema de representación, como un número o una secuencia de pulsos electrónicos en un sistema electrónico aplicando normas o reglas de codificación.”

En computación son necesarios porque los datos se guardan justamente en archivos electrónicos en los que existen secuencias de números y letras.

En la práctica, esto implica que para “abrir un archivo” necesitemos saber cuál es el sistema de codificación con el que fue grabado. Este proceso no es automágico, porque a una representación electrónica dada le pueden corresponder diferentes caracteres. Si usted se encuentra con un archivo y no sabe cual es la codificación, se recomienda:

  1. Revisar la documentación del archivo o de la fuente del archivo, para saber cómo se codificó.

  2. Revisar el archivo con diferentes codificaciones y revisar si produce resultados inteligibles.

Ejemplo, Datos del DANE

En los datos del DANE que hemos usado anteriormente hemos tenido que usar diferentes codificaciones, por ejemplo:

df = pd.read_csv("Nacimientos_1998_25-5-2024.txt",encoding="ISO-8859-1",sep="\t")

En este caso la palabra encoding indica la codificación.

Solicitar a Google Gemini cargar un archivo secuencialmente con diferentes codificaciones

Supongamos que tenemos el archivo nac2021.csv. Lo intentamos leer con el siguiente código:

# prompt: read a dataframe called nac2021.csv
# check the encoding coding

import pandas as pd
df = pd.read_csv('nac2021.csv')

Genera el siguiente error (al final)

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xcc in position 161614: invalid continuation byte

Esto indica que si se tomase la codificación por defecto (utf-8) habría un texto que no se puede traducir, luego probablemente se puede asumir que hay un error de codificación.

Intentamos que Google Gemini intente cargar el archivo con diferentes codificaciones.

Intentamos que Gemini genere un código que cargue el archivo, así falle. Usamos la instrucción:

intente generar un dataframe del archivo nac2021.csv, pero revisando varias codificaciones 

El código generado es el siguiente:

import pandas as pd

encodings = ['latin-1', 'utf-8', 'iso-8859-1', 'cp1252']

for encoding in encodings:
  try:
    df = pd.read_csv('nac2021.csv', encoding=encoding)
    print(f"Successfully read with encoding: {encoding}")
    # You can add further processing of the dataframe here if successful
    break  # Exit the loop if successful
  except UnicodeDecodeError:
    print(f"Failed to read with encoding: {encoding}")
    continue # Try the next encoding
else:
  print("Failed to read the file with all tested encodings.")

Try/except

(La bibliografía de ésta sección es el libro: Doing Computational Social Science A Practical Introduction, de McLevey pg. 67)

Existen dos tipos de problemas con el código en Python:

Ejemplo (💫 ):

Explique, ¿que hace el siguiente código?

numero = "siete"
if numero<3:
  print("es")
else:
  print("no es")

Intentemos solucionarlo con un try-except

Podríamos intentar saltarnos la excepción:

numero = "siete"
try:
  if numero<3:
    print("es")
  else:
    print("no es")
except:
  print("no cancionó")

Python intenta reproducir el bloque marcado debajo de try. Si no puede, no falla, ejecuta el bloque debajo de except.

Críticas al try-except

Enlaces


Previous Post
Análisis de texto usando Python
Next Post
2024 S2 D3. Taller