Refactor CSS variables and styles for improved theme consistency; enhance user message and assistant message styling for better visual clarity and aesthetics.
Añade un recordatorio para que los usuarios puedan enviar capturas de pantalla si tienen dudas, mejorando la asistencia y la claridad en la comunicación.
Ajusta el estilo de los mensajes de usuario y el contenedor del chatbot, optimizando bordes y márgenes para mejorar la estética y la experiencia del usuario.
Añade estilos modernos y limpios para el chatbot, incluyendo soporte para temas claro y oscuro. Se mejoran los estilos de mensajes, botones y áreas de entrada, optimizando la experiencia del usuario.
Añade bordes de gradiente multicolor a los estilos de la interfaz para los temas claro y oscuro, mejorando la estética visual y la experiencia del usuario.
Mejora el estilo del título en la interfaz, ajustando el tamaño, peso y color para una mejor visibilidad. Se añade un efecto de sombra sutil para mayor profundidad en el tema claro y un brillo ligero en el tema oscuro.
Añade soporte para temas claros y oscuros en la interfaz, implementando una paleta de colores y estilos CSS para mejorar la experiencia del usuario. Se actualiza la descripción del chatbot para mayor claridad y se asegura la consistencia visual en ambos modos.
Actualiza la interfaz para soportar un tema oscuro, eliminando el CSS externo y aplicando estilos directamente en el código. Se mejora la descripción del chatbot para mayor claridad.
Añade soporte para un tema claro y oscuro en la interfaz, mejorando la experiencia del usuario. Se carga el CSS desde un archivo externo y se actualizan los estilos para adaptarse a ambos modos.
Añade soporte para múltiples motores de inferencia en `app.py`, permitiendo la selección entre Gemini y Qwen3-VL. Se implementa la configuración de claves API y la creación de instancias de cliente según el motor seleccionado. Además, se mejora la gestión de errores al verificar la configuración de las claves API, proporcionando mensajes específicos para cada motor. Esta modificación optimiza la flexibilidad y la claridad del código al manejar diferentes proveedores de inferencia.
Refactoriza la interfaz de usuario en `app.py` al eliminar el uso de `gr.Blocks` y simplificar la estructura del código. Se actualiza la función de lanzamiento para utilizar `chat.launch()` en lugar de `demo.launch()`, manteniendo la funcionalidad de la aplicación. Esta modificación mejora la claridad y la gestión de la interfaz de usuario.
Refactoriza la interfaz de usuario en `app.py` al envolver `gr.ChatInterface` dentro de `gr.Blocks`, mejorando la estructura del código. Se añade un script de JavaScript para mantener el enfoque en el campo de entrada después de las respuestas, optimizando la experiencia del usuario. Además, se actualiza la función de lanzamiento para utilizar `demo.launch()` en lugar de `chat.launch()`, asegurando una mejor gestión de la interfaz.
Elimina el parámetro opcional `request` de la función `respond` en `app.py`, simplificando la firma de la función y mejorando la claridad del código. Esta modificación se realiza para optimizar la gestión de la función y centrarse en el manejo del historial de interacciones sin la necesidad de gestionar sesiones.
Añade un parámetro opcional `request` a la función `respond` en `app.py` para permitir la gestión de sesiones en Gradio. Esta modificación incluye la agrupación de todos los turnos de una misma sesión mediante el uso de `session_hash`, mejorando la organización de las interacciones y la trazabilidad de las respuestas del asistente.
Elimina el decorador `@traceable` de la función `respond` en `app.py`, simplificando la gestión de trazas en el sistema. Esta modificación se realiza para optimizar el rendimiento y la claridad del código, manteniendo la funcionalidad principal de la respuesta del asistente.
Añade soporte para el cliente LangSmith en `app.py` y mejora la gestión de trazas. Se implementa la función `_flush_langsmith` para asegurar que las trazas se envían antes de la salida del proceso o entre ejecuciones. Además, se registra esta función para su ejecución al finalizar el programa, optimizando el manejo de trazas y garantizando que no se pierdan datos importantes. Se actualiza la función `respond` para llamar a `_flush_langsmith` entre solicitudes, mejorando la fiabilidad del sistema.
Añade funciones para manejar imágenes y normalizar contenido de usuario en `app.py`. Se implementan las funciones `_build_image_parts` y `_value_to_user_content` para procesar imágenes y generar contenido de usuario adecuado. Además, se mejora la función `_value_preview` para ofrecer una vista previa segura de los mensajes, incluyendo el conteo de imágenes. Se actualiza la función `respond` para utilizar estas nuevas funciones, optimizando el manejo de contenido y mejorando la legibilidad del código.
Añade funciones de previsualización de texto y manejo de historial en `app.py`. Se implementan las funciones `_preview_text` y `_history_preview` para limitar la longitud del texto mostrado y mejorar la visualización del historial de interacciones. Además, se integra la instrumentación opcional de RunTree para el seguimiento de sesiones de chat, permitiendo registrar la cantidad de mensajes y manejar errores de manera más efectiva.
Actualiza `app.py` para implementar un nuevo estilo CSS que mejora la apariencia de la interfaz de usuario, forzando un tema oscuro similar al de ChatGPT. Se eliminan las definiciones de estilo anteriores y se reemplazan por una variable `style`, lo que simplifica la gestión del CSS en la aplicación. Además, se añade el decorador `@traceable` a la función `respond`, mejorando la trazabilidad de las respuestas del asistente.
Actualiza `requirements.txt` para incluir la dependencia `langsmith` en la versión 0.4.30. Esto asegura que la aplicación tenga acceso a las funcionalidades necesarias de esta biblioteca, mejorando su rendimiento y capacidades.
Actualiza `app.py` para redefinir el `system_prompt`, enfocándose en guiar a usuarios no técnicos en la creación de credenciales de Gmail y OneDrive. Se establecen reglas claras para la interacción, incluyendo la entrega de un solo paso por mensaje y la aceptación de capturas de pantalla, mejorando así la claridad y efectividad de la asistencia brindada.
Actualiza `app.py` para enfatizar la importancia de proporcionar instrucciones paso a paso al usuario, evitando que se sienta abrumado. Se añade una recomendación para que los usuarios adjunten capturas de pantalla o imágenes, lo que facilitará la comprensión y mejorará la interacción en el proceso de asistencia.
Actualiza `app.py` para incluir una nueva instrucción en el `system_prompt`, indicando que el usuario no es experto y debe recibir instrucciones paso a paso. Se invita a los usuarios a adjuntar capturas de pantalla o imágenes para facilitar la comprensión del proceso, mejorando así la interacción y el soporte brindado.
Actualiza `app.py` para reemplazar un ejemplo en la interfaz de chat. Se cambia la pregunta sobre las credenciales de Outlook por una sobre las credenciales de OneDrive, mejorando la relevancia de los ejemplos ofrecidos a los usuarios.
Actualiza `.gitignore` para incluir el archivo `.env` y el directorio `.gradio/`. Esto asegura que los archivos sensibles y temporales no se incluyan en el control de versiones, mejorando la seguridad y la limpieza del repositorio.
Actualiza `app.py` para mejorar la gestión de mensajes multimodales. Se agrega un nuevo `system_prompt` que guía al asistente en la interacción con los usuarios y se implementa la capacidad de manejar imágenes adjuntas, convirtiéndolas a cadenas base64. La interfaz de chat se actualiza para permitir la carga de múltiples tipos de imágenes, mejorando la experiencia del usuario al crear claves API de Gmail y Outlook.
Agrega el archivo `requirements.txt` para gestionar las dependencias del proyecto, incluyendo `dotenv` y `openai`. Esto facilitará la instalación de las bibliotecas necesarias para el funcionamiento de la aplicación.
Actualiza `app.py` para integrar la API de Gemini a través de OpenAI. Se elimina la dependencia de `huggingface_hub` y se refactoriza la función `respond` para manejar mensajes multimodales. Se implementa la función `_extract_text_and_files` para extraer texto y archivos adjuntos de los mensajes. Además, se crea una interfaz de chat personalizada que guía a los usuarios en la creación de claves API de Gmail y Outlook.
Actualiza .gitignore para incluir el archivo .env y corrige la exclusión de uv.lock. Se asegura que el archivo .gitignore esté correctamente formateado con un salto de línea al final.
Agrega capacidad de carga de imágenes a la interfaz de chat en `app.py`. Se implementa la función `encode_image` para convertir imágenes PIL a cadenas base64. La función `respond` se actualiza para manejar mensajes de texto e imágenes, y se crea una nueva función `create_chat_interface` para estructurar la interfaz de usuario con opciones de carga de imágenes.
Refactoriza la función `respond` en `app.py` para establecer valores predeterminados para `system_message`, `max_tokens`, `temperature` y `top_p`. Elimina los inputs adicionales en la interfaz de chat y habilita el modo de depuración en el lanzamiento de la aplicación.