Lema:
"Convierte tus videos de YouTube en conversaciones inteligentes."
Chat It Up! transforma la experiencia de conversación: más que un simple chat, es una herramienta inteligente que extrae y organiza conocimiento de tus videos de YouTube, documentos y archivos de audios, brindándote respuestas precisas y resúmenes accesibles en un instante. Con solo un clic, convierte tus archivos en diálogos enriquecedores que te ahorran tiempo y te acercan al conocimiento de manera intuitiva y elegante.
La plataforma utiliza inteligencia artificial para procesar contenido en diferentes formatos (audios, videos de YouTube y documentos en PDF) y generar respuestas o resúmenes personalizados mediante un chatbot interactivo. El objetivo principal es convertir contenido multimedia y textual en formatos accesibles y comprensibles, ideal para profesionales y estudiantes que necesitan consultar, resumir o extraer información sin procesar contenido extenso.
Objetivo del Proyecto: Crear una aplicación web basada en inteligencia artificial que permita a los usuarios cargar contenido multimedia (archivos de audio, documentos PDF y enlaces de YouTube) y recibir resúmenes o respuestas mediante un chatbot.
- Subida y almacenamiento de archivos: El usuario puede subir documentos PDF, audios o enlaces de YouTube.
- Transcripción y Procesamiento:
- Los audios se transcriben con Whisper.
- Los documentos PDF se procesan con PyPDF2 para extracción de texto.
- Los audios de YouTube se descargan con yt-dlp y se procesan para extraer texto.
- Generación de Respuestas y Resúmenes: Mediante la API de Azure OpenAI, el chatbot analiza las consultas del usuario y proporciona respuestas basadas en el contenido previamente procesado.
- Interfaz del Chatbot: Streamlit facilita la interacción del usuario con el chatbot, mostrando resultados en tiempo real y permitiendo cargas de archivos fácilmente.
- Contenidos de menos de 30 minutos (para audios y videos).
- Documentos PDF de menos de 20 páginas (para garantizar tiempos de procesamiento razonables).
- Soporte para textos en inglés y español en la fase inicial.
- FastAPI: Framework para construir la API web.
- Streamlit: Para crear una interfaz de usuario amigable donde los usuarios pueden interactuar con el chatbot y cargar archivos multimedia.
- Azure Blob Storage: Almacena todos los archivos subidos por los usuarios para procesamiento, funcionando como la base de datos principal para almacenar y recuperar datos en el modelo RAG, cumpliendo con altos estándares de disponibilidad y eficiencia.
- Backend en Python: Procesa archivos, gestiona las interacciones de la API y controla la comunicación entre el usuario y el chatbot.
- Whisper (Azure Speech): Utilizado para transcribir audio a texto, haciendo que el contenido de audio y video sea accesible para la generación de respuestas.
- Generación Aumentada por Recuperación (RAG): Implementada con servicios de Azure para mejorar la capacidad del chatbot de recuperar y generar información relevante a partir del contenido almacenado.
- Azure Content Safety: Analiza el contenido de las URL de YouTube para garantizar que cumpla con los estándares de seguridad antes de su procesamiento.
- Azure Translator: Traduce contenido de texto al español, haciendo la información accesible a una audiencia más amplia.
- API de Azure OpenAI: GPT-4 se utiliza para generar resúmenes, responder preguntas y analizar el contenido textual.
- PyPDF2: Permite la lectura de archivos PDF para la extracción directa de contenido textual.
- Pydub: Procesa y manipula el audio descargado, asegurando que esté en el formato adecuado para la transcripción.
- yt-dlp: Descarga el audio de los videos de YouTube proporcionados por el usuario para su posterior procesamiento.
4. Escalabilidad hacia un Sistema de Recuperación de Información con RAG (Retrieval-Augmented Generation)
Para llevar esta plataforma a una escala mayor y permitir búsquedas precisas en múltiples contenidos, se puede implementar un sistema RAG aprovechando Azure Blob Storage para el almacenamiento de archivos y recuperación de información:
- Azure Blob Storage como Base de Datos Principal: Usar Blob Storage para almacenar archivos multimedia y documentos permite una recuperación rápida y eficiente, ideal para el procesamiento RAG.
- Azure Cognitive Search: Crear un índice de búsqueda sobre los textos transcritos y los documentos PDF almacenados en Azure Blob Storage. Este índice permitirá que el modelo de OpenAI recupere y utilice información relevante de manera eficiente.
- Generación de Respuestas Enriquecida: El chatbot buscará en el índice de Azure Cognitive Search el contenido más relevante y lo enviará al modelo de OpenAI, permitiendo respuestas basadas en información específica a la consulta del usuario.
Al manejar datos de los usuarios, es fundamental cumplir con los estándares de privacidad y seguridad de Azure:
- Cifrado de Datos: Azure Blob Storage cifra los datos en reposo y en tránsito. Implementa un sistema de acceso seguro (rol basado) para limitar quién puede ver o modificar los archivos.
- Cumplimiento de Normativas: Azure cumple con diversas normativas (GDPR, HIPAA, ISO 27001) que aseguran el manejo de datos de usuarios conforme a la regulación global y local.
- Auditoría y Monitoreo: Usar Azure Monitor para auditar y monitorear el uso y acceso a los datos, detectando posibles accesos no autorizados.
- Política de Retención de Datos: Configurar políticas de almacenamiento y eliminación de datos para que los archivos subidos por los usuarios se eliminen automáticamente después de un periodo de tiempo determinado.
Modelo Freemium: Ofrecer una versión gratuita con límites de uso (como procesamiento de un número limitado de archivos por mes) y una versión premium que permita mayores volúmenes de procesamiento.
- Clientes Potenciales: Empresas de educación, creadores de contenido, estudiantes y profesionales que deseen extraer y organizar información de contenido.
- Suscripciones Mensuales/Anuales: Ofrecer un modelo de suscripción que permita procesar un número ilimitado de documentos y audios.
- Planes Personalizados para Organizaciones: Empresas que requieran análisis de gran volumen podrán adquirir planes personalizados con acceso completo a funciones avanzadas.
- Python 3.8 o superior
- Azure AI Services
- Archivo
.env
con las credenciales de Azure - Archivo
requirements.txt
con las librerías necesarias
-
Clonar el repositorio:
git clone https://github.com/CodeGeekR/audio-summary-azure-ai.git cd audio-summary-azure-ai
-
Crear y activar un entorno virtual:
python3 -m venv venv source venv/bin/activate # En Windows usa `venv\Scripts\activate`
-
Instalar las dependencias:
pip install -r requirements.txt
-
Configurar las variables de entorno:
Crear un archivo
.env
en el directorio raíz del proyecto con el siguiente contenido:AI_SERVICE_ENDPOINT=tu_endpoint_de_ai AI_SERVICE_KEY=tu_clave_de_ai AZURE_SPEECH_KEY=tu_clave_de_speech AZURE_SERVICE_REGION=tu_region_de_servicio AZURE_TRANSLATOR_KEY=tu_clave_traslator AZURE_TRANSLATOR_ENDPOINT=tu_endpoint_de_traslator AZURE_TRANSLATOR_LOCATION=tu_region_de_servicio
Reemplaza
tu_clave_de_speech
,tu_region_de_servicio
,tu_endpoint_de_ai
ytu_clave_de_ai
con tus credenciales de Azure.
-
Ejecutar el script:
python3 run.py
-
Interactuar con la API:
Utiliza herramientas como Postman o cURL para interactuar con la API. Por ejemplo, para transcribir un video de YouTube, envía una solicitud POST a http://127.0.0.1:8000/api/v1/transcribe/ con el siguiente cuerpo JSON:
{ "url": "your_video_url" }
-
Ver los resultados: Los archivos transcritos, traducidos y mejorados se guardarán en Azure Blob Storage y estarán disponibles para su recuperación y análisis mediante el chatbot.
Las contribuciones son bienvenidas. Por favor, abre un issue o un pull request para discutir cualquier cambio que te gustaría realizar.
Este proyecto está licenciado bajo la Licencia MIT. Consulta el archivo LICENSE para más detalles.
Somos entusiastas de la programación y la inteligencia artificial. Como parte del Microsoft Hackathon Innovation Challenge 2024, hemos desarrollado esta aplicación para atender las necesidades de usuarios que desean transcribir o cargar archivos para contextualizar e interactuar con un chatbot inteligente. Este proyecto busca explorar soluciones innovadoras que faciliten el acceso a la información mediante IA y simplifiquen procesos complejos en una experiencia accesible e intuitiva.
Este proyecto fue desarrollado por un equipo apasionado de entusiastas de la programación y la inteligencia artificial. Para más información sobre cada integrante, puedes visitar sus perfiles:
- Samuel Diaz
- GitHub: github.com
- LinkedIn: linkedin
- Rafael Castellanos
- GitHub: github.com
- LinkedIn: linkedin