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 Shubhamsaboo
- Instala las librerías Python necesarias. Ejecuta el siguiente comando desde su terminal.
- 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.
- 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.
- 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
- 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.
- 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.
- Importaa las bibliotecas necesarias
- Streamlit para construir la aplicación web
- Embedchain para la funcionalidad RAG
- tempfile para crear archivos y directorios temporales
- 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)
- 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
- 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
- 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()
Código completo de la aplicación RAG para chatear con tu bandeja de entrada de Gmail:
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'