Actualizado el domingo, 17 marzo, 2024

En este tutorial, aprenderá a usar Python y la API de OpenAI para realizar minería y análisis de datos en sus datos.

El análisis manual de conjuntos de datos para extraer datos útiles, o incluso el uso de programas simples para hacer lo mismo, a menudo puede ser complicado y llevar mucho tiempo. Afortunadamente, con la API de OpenAI y Python es posible analizar sistemáticamente sus conjuntos de datos en busca de información interesante sin sobrediseñar su código y perder tiempo. Esto se puede utilizar como una solución universal para el análisis de datos, eliminando la necesidad de utilizar diferentes métodos, bibliotecas y API para analizar diferentes tipos de datos y puntos de datos dentro de un conjunto de datos.

Repasemos los pasos para usar la API de OpenAI y Python para analizar sus datos, comenzando con cómo configurar las cosas.Tabla de contenidos

Arreglo

Para extraer y analizar datos a través de Python utilizando la API de OpenAI, instala las bibliotecas openai y pandas:

pip3 install openai pandas

Una vez hecho esto, crea una nueva carpeta y crea un archivo de Python vacío dentro de tu nueva carpeta.

Análisis de archivos de texto

Para este tutorial, pensé que sería interesante hacer que Python analizara la última llamada de ganancias de Nvidia.

Descargue la transcripción más reciente de la llamada de ganancias de Nvidia que obtuve de The Motley Fool y muévelo a tu carpeta de proyecto.

A continuación, abra el archivo de Python vacío y añada este código.

El código lee la transcripción de las ganancias de Nvidia que ha descargado y la pasa a la función extract_info como variable de transcript.

La función extract_info pasa el mensaje y la transcripción como entrada del usuario, así como temperature=0.3 y model="gpt-3.5-turbo-16k" La razón por la que utiliza el modelo «gpt-3.5-turbo-16k» es porque puede procesar textos grandes como esta transcripción. El código obtiene la respuesta usando openai.ChatCompletion.create y pasa las variables prompt y transcript como entrada del usuario:

completions = openai.ChatCompletion.create(
    model="gpt-3.5-turbo-16k",
    messages=[
        {"role": "user", "content": prompt+"\n\n"+text}
    ],
    temperature=0.3,
)

La entrada completa se verá así:

Extract the following information from the text: 
    Nvidia's revenue
    What Nvidia did this quarter
    Remarks about AI

Nvidia earnings transcript goes here

Ahora, si pasamos la entrada al openai.ChatCompletion.create, el resultado completo tendrá el siguiente aspecto:

{
  "choices": [
    {
      "finish_reason": "stop",
      "index": 0,
      "message": {
        "content": "Actual response",
        "role": "assistant"
      }
    }
  ],
  "created": 1693336390,
  "id": "request-id",
  "model": "gpt-3.5-turbo-16k-0613",
  "object": "chat.completion",
  "usage": {
    "completion_tokens": 579,
    "prompt_tokens": 3615,
    "total_tokens": 4194
  }
}

Como puede ver, devuelve la respuesta de texto, así como el uso de tokens de la solicitud, lo que puede ser útil si está realizando un seguimiento de sus gastos y optimizando sus costos. Pero como solo nos interesa el texto de la respuesta, lo obtenemos especificando la ruta de respuesta completions.choices[0].message.content.

Si ejecuta el código, debería obtener un resultado similar al que se cita a continuación:

Del texto, podemos extraer la siguiente información:

  1. Ingresos de Nvidia: En el segundo trimestre del año fiscal 2024, Nvidia reportó ingresos récord en el segundo trimestre de 13.51 mil millones, lo que supuso un aumento del 88% secuencial y del 101% interanual.
  2. Lo que hizo Nvidia este trimestre: Nvidia experimentó un crecimiento excepcional en varias áreas. Registraron ingresos récord en su segmento de centros de datos, que aumentaron un 141 % secuencialmente y un 171 % interanual. También experimentaron un crecimiento en su segmento de juegos, con un aumento de los ingresos del 11% secuencial y del 22% interanual. Además, su segmento de visualización profesional experimentó un crecimiento de los ingresos del 28% secuencialmente. También anunciaron asociaciones y colaboraciones con empresas como Snowflake, ServiceNow, Accenture, Hugging Face, VMware y SoftBank.
  3. Comentarios sobre la IA: Nvidia destacó la fuerte demanda de sus plataformas de IA y soluciones informáticas aceleradas. Mencionaron el despliegue de sus sistemas HGX por parte de los principales proveedores de servicios en la nube y empresas de Internet de consumo. También discutieron las aplicaciones de la IA generativa en diversas industrias, como el marketing, los medios de comunicación y el entretenimiento. Nvidia enfatizó el potencial de la IA generativa para crear nuevas oportunidades de mercado y aumentar la productividad en diferentes sectores.

Como puede ver, el código extrae la información especificada en el mensaje (los ingresos de Nvidia, lo que Nvidia hizo este trimestre y comentarios sobre la IA) y la imprime.

Análisis de archivos CSV

Analizar las transcripciones de las llamadas de ingresos y los archivos de texto es genial, pero para analizar sistemáticamente grandes volúmenes de datos, deberá trabajar con archivos CSV.

Como ejemplo de trabajo, descargue este conjunto de datos CSV de artículos de Medium y péguelo en el archivo de su proyecto.

Si echas un vistazo al archivo CSV, verás que tiene las columnas «autor», «aplausos», «reading_time», «enlace», «título» y «texto». Para analizar los artículos de medium con OpenAI, solo necesitas las columnas «título» y «texto».

Crea un nuevo archivo de Python en la carpeta de tu proyecto y pega este código.

Este código es un poco diferente del código que usamos para analizar un archivo de texto. Lee las filas CSV una por una, extrae la información especificada y las agrega a nuevas columnas.

Para este tutorial, he elegido un conjunto de datos CSV de artículos de Medium, que obtuve de HSANKESARA en Kaggle. Este código de análisis CSV encontrará el tono general y la lección/punto principal de cada artículo, utilizando las columnas «título» y «artículo» del archivo CSV. Como siempre me encuentro con artículos de clickbaity en Medium, también pensé que sería interesante contarlo para averiguar qué tan «clickbaity» es cada artículo dándole a cada uno una «puntuación de clickbait» de 0 a 3, donde 0 no es clickbait y 3 es clickbait extremo.

Antes de explicar el código, analizar todo el archivo CSV llevaría demasiado tiempo y costaría demasiados créditos de API, por lo que para este tutorial, he hecho que el código analice solo los primeros cinco artículos usando df = df[:5].

Es posible que esté confundido acerca de la siguiente parte del código, así que permítame explicarlo:

for di in range(len(df)):
    title = titles[di]
    abstract = articles[di]
    additional_params = extract_info('Title: '+str(title) + '\n\n' + 'Text: ' + str(abstract))
    try:
        result = additional_params.split("\n\n")
    except:
        result = {} 

Este código recorre en iteración todos los artículos (filas) del archivo CSV y, con cada iteración, obtiene el título y el cuerpo de cada artículo y lo pasa a la función extract_info, que vimos anteriormente. A continuación, convierte la respuesta de la función extract_info en una lista para separar las diferentes piezas de información mediante este código:

try:
    result = additional_params.split("\n\n")
except:
    result = {} 

A continuación, agrega cada pieza de información a una lista y, si hay un error (si no hay ningún valor), agrega «Sin resultado» a la lista:

try:
    apa1.append(result[0])
except Exception as e:
    apa1.append('No result')
try:
    apa2.append(result[1])
except Exception as e:
    apa2.append('No result')
try:
    apa3.append(result[2])
except Exception as e:
    apa3.append('No result')

Finalmente, una vez finalizado el bucle for, las listas que contienen la información extraída se insertan en nuevas columnas en el archivo CSV:

df = df.assign(Tone=apa1)
df = df.assign(Main_lesson_or_point=apa2)
df = df.assign(Clickbait_score=apa3)

Como puede ver, agrega las listas en nuevas columnas CSV que se llaman «Tono», «Main_lesson_or_point» y «Clickbait_score».

A continuación, los anexa al archivo CSV con index=False:

df.to_csv("data.csv", index=False)

La razón por la que tiene que especificar index=False es para evitar la creación de nuevas columnas de índice cada vez que anexa nuevas columnas al archivo CSV.

Ahora, si ejecutas tu archivo de Python, esperas a que termine y verificas nuestro archivo CSV en un visor de archivos CSV, verás las nuevas columnas, como se muestra a continuación.

Si ejecutas el código varias veces, observarás que las respuestas generadas difieren ligeramente. Esto se debe a que el código utiliza temperature=0.3 para añadir un poco de creatividad a sus respuestas, lo que es útil para temas subjetivos como el clickbait.

Trabajar con varios archivos

Si desea analizar automáticamente varios archivos, primero debe colocarlos dentro de una carpeta y asegurarse de que la carpeta solo contenga los archivos que le interesan, para evitar que su código Python lea archivos irrelevantes. A continuación, instala la biblioteca glob usando pip3 install glob e impórtala en tu archivo de Python usando import glob.

En el archivo de Python, use este código para obtener una lista de todos los archivos de la carpeta de datos:

data_files = glob.glob("data_folder/*")

A continuación, coloque el código que realiza el análisis en un bucle for:

for i in range(len(data_files)):

Dentro del bucle for, lea el contenido de cada archivo de la siguiente manera para los archivos de texto:

f = open(f"data_folder/{data_files[i]}", "r")
txt_data = f.read()

También como esto para archivos CSV:

df = pd.read_csv(f"data_folder/{data_files[i]}")

Además, asegúrese de guardar el resultado de cada análisis de archivo en un archivo separado usando algo como esto:

df.to_csv(f"output_folder/data{i}.csv", index=False)

Conclusión

Recuerde experimentar con su parámetro de temperatura y ajustarlo para su caso de uso. Si quieres que la IA dé respuestas más creativas, aumenta tu temperatura, y si quieres que haga respuestas más objetivas, asegúrate de bajarla.

La combinación de OpenAI y el análisis de datos de Python tiene muchas aplicaciones además del análisis de transcripciones de artículos y llamadas de ganancias. Algunos ejemplos son el análisis de noticias, el análisis de libros, el análisis de reseñas de clientes y mucho más. Dicho esto, cuando pruebe su código Python en grandes conjuntos de datos, asegúrese de probarlo solo en una pequeña parte del conjunto de datos completo para ahorrar créditos y tiempo de API.

Preguntas frecuentes sobre la API de OpenAI para el análisis de datos de Python

¿Qué es la API de OpenAI y cómo funciona?

La API de OpenAI es una poderosa herramienta que permite a los desarrolladores acceder y utilizar las capacidades de los modelos de OpenAI. Funciona enviando solicitudes al punto de conexión de la API, que luego procesa la solicitud y devuelve la salida. La API se puede utilizar para una variedad de tareas, incluida la generación de texto, la traducción, el resumen y más. Está diseñado para ser fácil de usar, con una interfaz sencilla y una documentación clara.

¿Cómo puedo utilizar la API de OpenAI para el análisis de datos?

La API de OpenAI se puede utilizar para el análisis de datos aprovechando sus capacidades de aprendizaje automático. Por ejemplo, puede usarlo para analizar datos de texto, extraer información y hacer predicciones. Puede enviar una solicitud a la API con sus datos y devolverá los resultados del análisis. Esto se puede hacer usando Python, ya que la API admite la integración de Python.

¿Cuáles son los beneficios de usar la API de OpenAI para el análisis de datos?

El uso de la API de OpenAI para el análisis de datos ofrece varias ventajas. En primer lugar, le permite aprovechar el poder del aprendizaje automático sin necesidad de crear y entrenar sus propios modelos, lo que le ahorra tiempo y recursos. En segundo lugar, puede manejar grandes volúmenes de datos y proporcionar información que podría ser difícil de obtener manualmente. Por último, es flexible y se puede utilizar para una amplia gama de tareas de análisis de datos.

¿Cómo puedo integrar la API de OpenAI con Python?

La integración de la API de OpenAI con Python es sencilla. Es necesario instalar el cliente OpenAI Python, lo que se puede hacer mediante pip. Una vez instalada, puede importar la biblioteca OpenAI en su script de Python y usarla para enviar solicitudes a la API. También tendrás que establecer tu clave API, que puedes obtener en el sitio web de OpenAI.

¿Cuáles son algunos ejemplos de tareas que se pueden realizar con la API de OpenAI?

La API de OpenAI se puede utilizar para una amplia gama de tareas. Por ejemplo, se puede utilizar para la generación de texto, donde puede generar texto similar al humano basado en un mensaje. También se puede utilizar para la traducción, el resumen y el análisis de sentimientos. En el contexto del análisis de datos, se puede utilizar para analizar datos de texto, extraer información y hacer predicciones.

¿Hay alguna limitación en el uso de la API de OpenAI?

Si bien la API de OpenAI es poderosa, tiene algunas limitaciones. Por ejemplo, hay límites de velocidad en la cantidad de solicitudes que puede enviar a la API por minuto. Además, la API no es gratuita y el costo puede acumularse si está procesando grandes volúmenes de datos. Por último, aunque la API es generalmente precisa, no es infalible y los resultados deben utilizarse como parte de una estrategia de análisis más amplia.

¿Cómo puedo solucionar problemas al usar la API de OpenAI?

Si tienes problemas al utilizar la API de OpenAI, hay varios pasos que puedes seguir. En primer lugar, compruebe el mensaje de error, ya que a menudo proporciona pistas sobre lo que salió mal. También puede consultar la documentación de la API, que proporciona información detallada sobre cómo usar la API y solucionar problemas comunes. Si sigues atascado, puedes ponerte en contacto con la comunidad de OpenAI para obtener ayuda.

¿Qué tan segura es la API de OpenAI?

La API de OpenAI está diseñada teniendo en cuenta la seguridad. Todos los datos enviados a la API se cifran en tránsito, y OpenAI tiene políticas estrictas para proteger sus datos. Sin embargo, al igual que con cualquier servicio en línea, es importante usar la API de manera responsable y seguir las mejores prácticas para la seguridad de los datos.

¿Puedo utilizar la API de OpenAI con fines comerciales?

Sí, puedes utilizar la API de OpenAI con fines comerciales. Sin embargo, debe tener en cuenta que hay costos asociados con el uso de la API y debe revisar los términos de servicio de la API para asegurarse de que el uso previsto sea compatible.

¿Cuál es el futuro de la API de OpenAI?

El futuro de la API de OpenAI es prometedor. OpenAI mejora continuamente sus modelos y amplía las capacidades de la API. A medida que el aprendizaje automático y la IA continúan avanzando, podemos esperar que la API se vuelva aún más poderosa y versátil.

La estructura de Django
Cláusula INSERT IGNORE de MySQL