Cómo usar CHATGPT (api) sobre la base de datos de tu Empresa [Y te regalo la APP]

Cómo usar CHATGPT (api) sobre la base de datos de tu Empresa [Y te regalo la APP]

Introducción al trabajo de un Data Scientist

Resumen de la sección: En esta sección, se habla sobre las expectativas y la realidad del trabajo de un Data Scientist. Se menciona que, aunque se espera pasar mucho tiempo entrenando modelos y creando algoritmos, en realidad gran parte del tiempo se dedica al análisis de datos para jefes y gerentes de producto.

Expectativas vs Realidad del trabajo de un Data Scientist

  • Muchas veces se piensa que el trabajo principal de un Data Scientist es entrenar modelos y crear algoritmos.
  • Sin embargo, en la realidad, gran parte del tiempo se dedica al análisis de datos para jefes y gerentes de producto.
  • Es importante tener en cuenta esta diferencia para poder enfocarse en tareas más innovadoras.

Creación de una aplicación de Inteligencia Artificial

Resumen de la sección: En esta sección, se plantea la idea de crear una aplicación prototipo que permita a los usuarios realizar sus propios análisis sin depender completamente del Data Scientist. Se menciona que esto se logrará conectando la API GPT-3 a la base de datos empresarial y creando una interfaz con Streamlit.

Creación de una aplicación prototipo

  • Se propone desarrollar una aplicación prototipo que permita a los usuarios realizar sus propios análisis sin depender completamente del Data Scientist.
  • La aplicación estará conectada a la API GPT-3 para procesar las consultas realizadas por los usuarios.
  • Se utilizará Streamlit para crear una interfaz sencilla donde los usuarios puedan ingresar su consulta en lenguaje natural.
  • La aplicación se conectará a la base de datos empresarial y devolverá los resultados solicitados por el usuario.

Arquitectura del sistema

Resumen de la sección: En esta sección, se explica la arquitectura del sistema que se va a desarrollar. Se menciona que la interfaz de la aplicación será similar a un chat, donde el usuario ingresará su consulta en lenguaje natural. Esta interfaz estará conectada al backend, que enviará la consulta a la API GPT-3 para obtener el código SQL necesario para realizar el análisis en una base de datos relacional.

Arquitectura del sistema

  • La aplicación contará con una interfaz tipo chat donde el usuario ingresará su consulta en lenguaje natural.
  • Esta interfaz estará conectada al backend, que enviará la consulta a la API GPT-3 para obtener el código SQL correspondiente.
  • El código SQL será utilizado para realizar consultas en una base de datos relacional.
  • Los resultados obtenidos serán mostrados al usuario a través de la interfaz de Streamlit.

Uso de una base de datos relacional

Resumen de la sección: En esta sección, se menciona que se utilizará una base de datos relacional como ejemplo para realizar los análisis solicitados por los usuarios. Se destaca que no es necesario tener conocimientos técnicos avanzados, ya que solo es necesario hacer consultas en lenguaje natural.

Uso de una base de datos relacional

  • Se utilizará una base de datos relacional como ejemplo para realizar los análisis solicitados por los usuarios.
  • Aunque es una base de datos sencilla, representa el tipo de base de datos que suelen tener las empresas.
  • No se requieren conocimientos técnicos avanzados por parte del usuario, ya que solo es necesario hacer consultas en lenguaje natural.

Orientación al usuario y responsabilidad legal

Resumen de la sección: En esta sección, se destaca que el sistema desarrollado está orientado al usuario y no requiere conocimientos técnicos avanzados. Se menciona que es importante tener cuidado al enviar datos a servidores externos y cumplir con las políticas de la empresa.

Orientación al usuario y responsabilidad legal

  • El sistema desarrollado está orientado al usuario y no requiere conocimientos técnicos avanzados.
  • El usuario solo necesita hacer una consulta en lenguaje natural para obtener los resultados deseados.
  • Es importante tener precaución al enviar datos a servidores externos y asegurarse de cumplir con las políticas de la empresa.
  • Este video tiene fines educativos y no implica ninguna recomendación de uso.

Descripción de la base de datos

Resumen de la sección: En esta sección, se describe la estructura de la base de datos utilizada como ejemplo. Se mencionan las columnas presentes en la tabla "ventas" y se muestra un ejemplo con algunos registros.

Descripción de la base de datos

  • La base de datos utilizada como ejemplo es una base de datos para una empresa de comercio electrónico.
  • La tabla principal es "ventas" y contiene columnas como identificador factura, identificador producto, nombre del producto, cantidad vendida, fecha factura, precio unitario, identificador cliente, país del cliente y ventas totales.
  • Se muestra un ejemplo con algunos registros para ilustrar la estructura de la base de datos.

Estructura de la aplicación

Resumen de la sección: En esta sección, se muestra la estructura de la aplicación desarrollada. Se menciona que se utiliza Visual Studio y se muestran los componentes principales, como la base de datos SQLite y los scripts del backend y frontend.

Estructura de la aplicación

  • La aplicación ha sido desarrollada utilizando Visual Studio.
  • Los componentes principales son la base de datos SQLite y los scripts del backend y frontend.
  • El script "enbars" contiene el código para conectar con la API GPT-3.
  • El script "backenz" se encarga de realizar las consultas del usuario y comunicarse con la API GPT-3.
  • El script "frontend" es responsable de generar la interfaz utilizando Streamlit.

Desarrollo del backend

Resumen de la sección: En esta sección, se explica el desarrollo del backend de la aplicación. Se mencionan los pasos necesarios para cargar la base de datos SQL y cómo interactuar con ella utilizando una clase específica. También se destaca que el código debe importarse desde el script "backenz".

Desarrollo del backend

  1. Cargar la base de datos SQL utilizando una clase específica (sql database).
  1. Especificar la ubicación de la base de datos en el equipo.
  1. Importar el código necesario desde el script "backenz".
  1. Realizar las consultas del usuario utilizando funciones definidas en el script "backenz".
  1. Comunicarse con la API GPT-3 para obtener respuestas a las consultas.
  1. Mostrar los resultados obtenidos al usuario a través de la interfaz de Streamlit.

Creación del objeto lm y definición de la temperatura

Resumen de la sección: En esta sección, se crea el objeto del lenguaje natural (lm) utilizando el paquete ChatGPT. Se define una temperatura cero para obtener una traducción literal de las consultas SQL.

Creación del objeto lm y definición de la temperatura

  • Se utiliza el paquete ChatGPT para crear el objeto del lenguaje natural.
  • Se define una temperatura cero para obtener una traducción literal de las consultas SQL.
  • El modelo utilizado es 3.5 Turbo, que es más económico que la versión 4 de GPT.

Uso de cadenas en Lanchain

Resumen de la sección: En esta sección, se explica cómo utilizar cadenas en Lanchain para encadenar procesos y obtener resultados finales.

Uso de cadenas en Lanchain

  • En Lanchain, existen dos tipos principales: cadenas y agentes.
  • Las cadenas permiten encadenar procesos para obtener resultados finales.
  • En este caso, se utiliza la opción más sencilla que es hacer una cadena.
  • No se requieren herramientas externas ya que no son necesarias en este contexto.

Utilización del sql database change

Resumen de la sección: Aquí se explica cómo utilizar el sql database change para transformar consultas en lenguaje natural a consultas SQL.

Utilización del sql database change

  • El sql database change permite transformar consultas en lenguaje natural a consultas SQL.
  • Es importante seleccionar esta opción al utilizar Lanchain.
  • Permite convertir las consultas realizadas por el usuario en un objeto de SQL.

Definición de una plantilla de prompt

Resumen de la sección: En esta sección, se destaca la importancia de definir una plantilla de prompt detallada para obtener respuestas más precisas del modelo del lenguaje.

Definición de una plantilla de prompt

  • El éxito al trabajar con modelos del lenguaje depende en gran medida de cómo se le pasen las instrucciones.
  • Cuanto más detalladas sean las instrucciones sobre lo que se desea y el formato deseado, mejor será la respuesta obtenida.
  • Se define una plantilla de prompt que incluye instrucciones específicas sobre el formato y los resultados deseados.
  • El usuario solo necesita proporcionar la consulta que desea realizar, ya que el resto está incluido en la plantilla.

Creación de la función "consulta"

Resumen de la sección: Aquí se explica cómo crear la función "consulta" para procesar las consultas realizadas por el usuario.

Creación de la función "consulta"

  • La función "consulta" toma como entrada la pregunta del usuario y la inserta en el formato definido anteriormente.
  • Luego llama a la API OpenAI con esa consulta y obtiene un resultado.
  • Finalmente, devuelve ese resultado al usuario.

Funcionamiento del backend y ejecución

Resumen de la sección: En esta parte, se menciona que todo el backend está funcionando correctamente y se muestra un ejemplo de consulta realizada por el usuario.

Funcionamiento del backend y ejecución

  • Todo el backend ha sido implementado correctamente hasta este punto.
  • Se muestra un ejemplo donde se realiza una consulta sobre el número de registros en una tabla.
  • La respuesta obtenida coincide con los datos previamente obtenidos al acceder directamente a la base de datos.

Construcción de la interfaz

Resumen de la sección: En esta sección, se menciona que falta construir la interfaz para que el usuario pueda realizar consultas sin necesidad de escribir código.

Construcción de la interfaz

  • Falta construir la interfaz para permitir al usuario realizar consultas sin necesidad de escribir código.
  • Se utilizará el paquete Streamlit para construir esta aplicación.
  • Se muestra cómo lanzar la aplicación desde un terminal y abrirá automáticamente en un explorador web.

Interfaz de chat y ejemplo de consulta

Resumen de la sección: Aquí se muestra cómo será la interfaz final y se realiza un ejemplo de consulta utilizando el chat.

Interfaz de chat y ejemplo de consulta

  • Se muestra la interfaz final, que es una aplicación sencilla donde el usuario puede hacer preguntas.
  • Se realiza un ejemplo utilizando la misma pregunta anteriormente realizada en el backend.
  • La respuesta obtenida es correcta, lo que indica que todo está funcionando correctamente hasta este punto.

Devolución de la tabla con 541.909 registros

Resumen de la sección: En esta parte, el presentador menciona que la tabla tiene 541.909 registros y explica que mostrará un código táctico para manejar los eventos de clic en los botones.

Código táctico para manejar eventos de clic

  • Se importan los paquetes necesarios, como Streamlit y base.
  • Se instala un paquete adicional llamado Streamlit Chat UI, que proporciona una interfaz estilo chat para la aplicación.
  • Se definen títulos y se crean listas para preguntas y respuestas.
  • La función "clic" se encarga de llamar al módulo backend y ejecutar la funcionalidad de consulta basada en la pregunta del usuario.
  • La función "consulta" llama a la API GPT para obtener el código SQL correspondiente a la pregunta del usuario.
  • El código SQL se pasa a una base de datos utilizando Lanchain, resolviendo así la consulta y obteniendo la respuesta para el usuario.
  • Se implementa un bucle infinito que permite al usuario hacer más preguntas después de enviar una.

Consultas para poner a prueba la aplicación

Resumen de la sección: En esta parte, el presentador realiza consultas para probar el funcionamiento de la aplicación. Comienza con una consulta sencilla sobre países con mayores ventas totales.

Consulta sobre países con mayores ventas totales

  • El presentador introduce una consulta sobre los tres países con mayores ventas totales.
  • Ejecuta la consulta en la aplicación y obtiene los resultados: Reino Unido (8 millones 187 mil) y Países Bajos (284.000).
  • Verifica los resultados directamente en la base de datos utilizando una consulta SQL similar y confirma que los resultados coinciden.

Consulta más compleja sobre porcentajes de ventas

Resumen de la sección: En esta parte, el presentador plantea una consulta más compleja que involucra el cálculo de porcentajes de ventas por producto.

Consulta sobre porcentaje de ventas por producto

  • El presentador explica que es común calcular el porcentaje que representa un ítem en relación con las ventas totales.
  • Realiza una consulta para obtener las ventas por cada producto y su representación en porcentaje sobre las ventas totales.
  • Muestra los resultados obtenidos y menciona que este tipo de consultas también se utiliza para calcular la contribución de comerciales u otros elementos en las ventas totales.

The above summary is based on the given transcript and may not contain complete information from the video.

Cálculo del total de unidades vendidas y porcentaje

Resumen de la sección: En esta sección, se explica cómo calcular el total de unidades vendidas para todos los productos y luego obtener el porcentaje de ventas para cada producto. Se muestra una consulta SQL que realiza estos cálculos.

Cálculo del total de unidades vendidas y porcentaje

  • Se debe calcular el total de unidades vendidas para todos los productos.
  • Luego, se divide la cantidad vendida de cada producto por el total de unidades vendidas.
  • Esto proporciona el porcentaje de ventas para cada producto.

Consulta SQL para obtener las unidades vendidas y el porcentaje

  • Se utiliza una estructura llamada "ct" (tabla común) para realizar los cálculos.
  • Se crea una tabla llamada "total_unidades" que suma la cantidad vendida de todos los productos.
  • Luego, se realiza una consulta principal que devuelve la suma de las unidades vendidas para cada producto.
  • Se calcula el ratio multiplicando la cantidad del producto por 100 y dividiéndolo por el total de unidades.
  • El resultado final incluye las tablas reales y la tabla "ct", agrupadas por producto.
  • La consulta está ordenada en forma descendente y limitada a los cinco primeros resultados.

Resultados obtenidos

  • Los cinco productos más vendidos en términos de cantidad son:
  • World to gliders con 53.847 unidades
  • Jumbo Bag con 47.30063 unidades

Cálculo del total de unidades mediante consulta SQL

Resumen de la sección: En esta sección, se explica cómo calcular el total de unidades vendidas utilizando una consulta SQL. Se muestra cómo crear una tabla común y realizar la suma de las cantidades vendidas.

Cálculo del total de unidades mediante consulta SQL

  • Se utiliza una estructura llamada "ct" (tabla común) para realizar los cálculos.
  • Se crea una tabla llamada "total_unidades" que suma la cantidad vendida de todos los productos.
  • Esto proporciona el total de unidades vendidas independientemente del producto.

Cálculo del porcentaje de ventas mediante consulta SQL

Resumen de la sección: En esta sección, se explica cómo calcular el porcentaje de ventas utilizando una consulta SQL. Se muestra cómo obtener las unidades vendidas para cada producto y luego calcular el porcentaje en relación al total de unidades.

Cálculo del porcentaje de ventas mediante consulta SQL

  • Se utiliza una estructura llamada "ct" (tabla común) para realizar los cálculos.
  • Se crea una tabla llamada "total_unidades" que suma la cantidad vendida de todos los productos.
  • Luego, se realiza una consulta principal que devuelve la suma de las unidades vendidas para cada producto.
  • Se calcula el ratio multiplicando la cantidad del producto por 100 y dividiéndolo por el total de unidades.
  • El resultado final incluye las tablas reales y la tabla "ct", agrupadas por producto.

Obtención del top 5 productos más vendidos

Resumen de la sección: En esta sección, se explica cómo obtener los cinco productos más vendidos en términos de cantidad. Se muestra cómo ordenar los resultados y limitarlos a los cinco primeros.

Obtención del top 5 productos más vendidos

  • Se realiza una consulta SQL que devuelve la suma de las unidades vendidas para cada producto.
  • Los resultados se ordenan en forma descendente.
  • Se limita la consulta a los cinco primeros resultados.

Resultados obtenidos

Resumen de la sección: En esta sección, se presentan los resultados obtenidos al calcular el top 5 de productos más vendidos. Se comparan estos resultados con los datos proporcionados por el sistema.

Resultados obtenidos

  • El producto con mayor cantidad de unidades vendidas es World War 2 con 53.847 unidades.
  • El segundo producto más vendido es Jumbo Back con 47.367 unidades.

Conclusión

En este video, se muestra cómo utilizar consultas SQL para calcular el total de unidades vendidas y obtener el porcentaje de ventas para cada producto. También se demuestra cómo obtener el top 5 de productos más vendidos en términos de cantidad. Estas técnicas son útiles para analizar y comprender las tendencias de ventas en una empresa.

Recuerda que puedes descargar... (continúa en el video)

Video description

👉 Descarga todos los ficheros para replicar la app del vídeo: 1. Haz click (o copia-pega) en este link: https://bit.ly/chatdatabase 2. Te llevará a una página con las instrucciones y un botón rojo 3. Haz click en el botón rojo 4. Te aparecerá un nuevo botón que pone “Suscribe” para suscribirte al canal 5. Haz click y vuelve a la página anterior 6. Descarga los ficheros En este vídeo vamos a construir una app de inteligencia artificial que: - permita a un usuario decir en lenguaje natural qué consulta quiere hacer - usando langchain la consulta le llegue a la api de ChatGpt   - conecte con una base de datos relacional y haga la consulta - devuelva el resultado en lenguaje natural El poder de este sistema es que para un usuario de negocio ya no será necesario: - aprender SQL - aprender herramientas de BI personal como PowerBI o Tableau - tener que hacer cada petición al equipo de data science / data analytics Herramientas usadas para esta app: • Python • Langchain • Api ChatGPT • Streamlit • Inteligencia artificial