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 `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 `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.
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.
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.