TodoBI - Business Intelligence, Big Data, ML y AI TodoBI - Business Intelligence, Big Data, ML y AI

Como construir una app LLM para chatear con Gmail de forma sencilla

Crea una aplicación LLM con RAG para chatear con tu bandeja de entrada de Gmail en sólo 30 líneas de código Python (instrucciones paso a paso), usando streamlit como interfaz

Aquí tienes la explicación y el código Open Source gracias a

  1. Instala las librerías Python necesarias. Ejecuta el siguiente comando desde su terminal.
Imagen

  1. Crea un proyecto en Google Cloud

Dirígete a Google Cloud Console https://console.cloud.google.com.

Haz clic en "Crear proyecto", dale un nombre y continúa.

Imagen

  1. Configura la pantalla de consentimiento de OAuth
  • Abre la pantalla de consentimiento de OAuth: En tu Google Cloud Console, navega hasta "APIs & Services > OAuth consent screen".
  • Configura el tipo de usuario: Selecciona "Externo" como tipo de usuario si tu aplicación será utilizada por usuarios ajenos a tu organización.
Imagen

  1. Publica la pantalla de consentimiento OAuth
  • Proporciona la información necesaria de la aplicación, incluido el nombre de la aplicación, el correo electrónico de asistencia al usuario y la información de contacto del desarrollador.
  • Después de rellenar todos los datos, haz clic en "Guardar y continuar" a través de las pantallas adicionales.
  • Habilitar API de Gmail y crear credenciales de autenticación
0:00
/0:16
  1. Busca "Gmail API", selecciónalo y haz clic en "Habilitar".
  • Ve a la pestaña Credenciales
  • Selecciona "Crear credenciales" > "ID de cliente OAuth".
  • Elige "Aplicación web", ponle un nombre y añade http://localhost:8080/ como URI de redirección.
0:00
/0:24
  1. Configura las credenciales de gmail para la aplicación RAG

Descarga las credenciales en formato JSON y guárdalas como credentials.json en tu directorio de trabajo. Este archivo es crucial para la autenticación.

Imagen

  1. Importaa las bibliotecas necesarias
  • Streamlit para construir la aplicación web
  • Embedchain para la funcionalidad RAG
  • tempfile para crear archivos y directorios temporales
Imagen

  1. Configura la aplicación Embedchain

Para esta aplicación utilizaremos GPT-4 Turbo, puedes elegir entre cohere, anthropic o cualquier otro LLM de tu elección.

Seleccione la base de datos vectorial como opensource chroma db (eres libre de elegir cualquier otra base de datos vectorial de tu elección)

Imagen

  1. Configura la aplicación Streamlit

Streamlit te permite crear interfaces de usuario con sólo código python, para esta app lo haremos:

  • Añadir un título a la aplicación utilizando 'st.title()'
  • Crear una entrada de texto para introducir su clave API OpenAI utilizando 'st.text_input()'
  • Establecer el filtro de gmail para seleccionar la bandeja de entrada
Imagen

  1. Inicializaa la aplicación Embedchain
  • Si se proporciona la clave de la API de OpenAI, cree un directorio temporal para la base de datos vectorial utilizando "tempfile.mkdtemp()".
  • Inicializa la aplicación Embedchain utilizando la función "embedchain_bot".
  • Añadir correos electrónicos filtrados a la base de conocimientos
Imagen

  1. Pregunta sobre tus correos electrónicos y obten respuestas
  • Crea una entrada de texto para que el usuario introduzca su pregunta utilizando 'st.text_input()'
  • Si se formula una pregunta, obtenga la respuesta de la aplicación Embedchain y muéstrela mediante "st.write()
Imagen

Código completo de la aplicación RAG para chatear con tu bandeja de entrada de Gmail:

Imagen

Demostración de la aplicación utilizando Streamlit

Pega el código anterior en vscode o pycharm y ejecuta el siguiente comando: 'streamlit run chat_gmail.py'

0:00
/0:39