Versión 2.5.1#
30.09.26
Se ha lanzado una nueva versión de Sherpa AI Server: Versión 2.5.1.
1. Pasos de procesamiento en la pantalla de Chat#
En la pantalla de Chat, las llamadas a herramientas, sus resultados y los mensajes intermedios del Asistente ahora se agrupan en un bloque desplegable "Etapas de procesamiento". Junto a él permanece la respuesta final, y durante el trabajo, el encabezado del bloque muestra el paso actual.
Esto ayuda a seguir la ejecución de la solicitud y leer la respuesta final sin una larga cadena de mensajes de servicio.
2. Filtros en la pantalla de Auditoría#
En la pantalla de Auditoría han aparecido filtros de servidor por usuarios, tiempo, tipo de evento, mensaje y agente. Se encuentran en el menú estándar de las columnas correspondientes. Los valores seleccionados se guardan, y la exportación utiliza la misma área de datos que la tabla.
El filtro de tiempo tiene en cuenta la zona horaria de la cuenta y no desplaza el período guardado al cambiar el navegador a horario de verano. Varios usuarios y otras condiciones ahora se pueden aplicar simultáneamente.
Esto ayuda a verificar eventos durante el período deseado y exportar solo los registros encontrados.
3. Cambio de modelo y dimensionalidad del índice de documentos#
En la pantalla de Documentos, en la pestaña "Indexación", se ha corregido el guardado y la lectura de los campos "Modelo de indexación" y "Dimensionalidad de embedding". Ahora se admite el cambio entre modelos con dimensionalidad de vector 384 y 1024 en ambas direcciones. Al guardar el cambio de modelo o dimensionalidad, los vectores antiguos se limpian, y los archivos para los cuales se prevé la indexación automática se ponen en cola para su re-procesamiento. Las muestras para búsqueda también se reindexan. El modo de indexación manual permanece manual, y el modo sin indexación no inicia la indexación.
La búsqueda tiene en cuenta la dimensionalidad real del vector y no mezcla los resultados del modelo antiguo y nuevo. Si un archivo tiene fragmentos añadidos solo a través de la API, el sistema rechaza el cambio de modelo y la limpieza separada de vectores: antes de repetir, tales fragmentos deben guardarse fuera del sistema y eliminarse o eliminar el archivo mismo. Esto protege los datos que no se pueden recuperar del documento original.
Esto ayuda a cambiar de manera segura el modelo de indexación sin mezclar resultados de búsqueda incompatibles.
4. Búsqueda en grandes bases de documentos#
Para la búsqueda en áreas superiores a 40,000 vectores se ha añadido el uso de índices HNSW preparados con un conjunto limitado de candidatos. Si los fragmentos activos encontrados son menos que el número solicitado, la búsqueda realiza una selección exacta en la cuenta, archivos y dimensionalidad seleccionados. Para áreas más pequeñas se utiliza búsqueda exacta. El administrador puede configurar el tamaño del conjunto inicial de candidatos y elegir explícitamente el modo exacto a través de EMBED_SEARCH_STRATEGY=scoped_exact.
Esto reduce el trabajo de búsqueda en grandes índices y obtiene el número solicitado de fragmentos, si están en el área seleccionada. La velocidad y calidad de la búsqueda dependen de los datos de la instalación; antes de elegir los parámetros, deben ser probados en sus propias consultas.
5. Configuración del menú lateral#
En el archivo de configuración de la apariencia del cliente branding.json se ha añadido la posibilidad de ocultar el interruptor "Comunes" / "Personales" en la barra lateral de la pantalla de Chat. La selección automática de chats disponibles se mantiene.
Esto ayuda a configurar la navegación para instalaciones donde el usuario no necesita un interruptor manual de áreas de chat.
6. Limpieza del historial de chats con registro en auditoría#
En la sección "Registro de auditoría de chats", la acción "Limpiar historial" ahora advierte explícitamente sobre la eliminación irreversible de mensajes de toda la cuenta que sean anteriores a la fecha seleccionada y las evaluaciones relacionadas. La eliminación y el registro del evento de auditoría se realizan como una sola operación. En el evento se guardan el iniciador, la dirección IP, la fecha de corte y el número de mensajes eliminados; para la solicitud con token se registran su identificador y nombre.
Esto ayuda al administrador a controlar la limpieza irreversible y analizar sus resultados a través del registro.
7. Conexión segura a un modelo externo#
Para vLLM remoto se ha añadido un ejemplo de configuración de proxy inverso con HTTPS. La verificación del certificado TLS del servidor del modelo de lenguaje ahora se puede habilitar en la configuración. La documentación sobre el cifrado de medios y copias de seguridad se ha complementado con un orden de acciones y limitaciones para la aplicación de AES-256 en la instalación piloto.
Esto ayuda al administrador a planificar una conexión segura y almacenamiento de datos teniendo en cuenta las capacidades de su infraestructura.
8. Preparación de la actualización en una base de datos con contenido#
Para una base existente, antes de iniciar las migraciones, es necesario crear previamente los índices de vectores y el índice de verificación de fragmentos duplicados. Los scripts backend/migrations/prepare_dimension_hnsw.sql y backend/migrations/prepare_documents_dedup_index.sql se ejecutan por separado a través de psql -X -v ON_ERROR_STOP=1 -f, fuera de la transacción de migraciones. Preparan los índices para dimensionalidades 384 y 1024 sin un bloqueo prolongado de escritura. Para otra dimensionalidad, primero se requiere backend/migrations/prepare_additional_dimension_hnsw.sql. El orden y los parámetros se indican en la documentación de búsqueda.
El servicio de búsqueda vectorial ahora requiere un token de acceso configurado, cuando está habilitado EMBED_AUTH_REQUIRED=true: antes de iniciar, se debe establecer un EMBED_AUTH_TOKEN no vacío. En la entrega también se establecen límites para el tamaño del documento y el número de sus fragmentos.
Esto ayuda a realizar la actualización en una base de trabajo sin una creación inesperadamente larga de índices durante la migración o la primera búsqueda.
9. Correcciones en la pantalla de Chat#
El desplazamiento automático ya no interrumpe la lectura de una respuesta larga después de desplazarse manualmente hacia arriba. Se ha añadido un botón de desplazamiento suave hacia abajo para volver a los nuevos mensajes.
Se ha corregido el procesamiento de la moderación de entrada: la respuesta fija se guarda en el historial como respuesta del Asistente, y la solicitud bloqueada no inicia la generación. Se ha corregido un mensaje falso sobre el exceso de contexto del guion del agente: antes de acortar la solicitud, el sistema aclara su tamaño teniendo en cuenta las herramientas y la plantilla. Los conjuntos de reglas de moderación guardados se cargan nuevamente sin error.
Esto ayuda a leer las respuestas a su propio ritmo y obtener un comportamiento predecible del Asistente bajo restricciones y moderación.
10. Correcciones en la pantalla de Documentos#
La lista de documentos ahora se carga correctamente después de actualizar la página, cambiar la vista y buscar. El indicador permanece hasta que se completa la solicitud, la recarga después de un error funciona, y la respuesta obsoleta no reemplaza el nuevo filtro de carpetas. Después de eliminar una carpeta, el filtro se actualiza.
La búsqueda en varias carpetas y la búsqueda de texto completo BM25 ya no omiten coincidencias existentes debido a la limitación prematura de la lista de resultados. La búsqueda de archivos sin un área explícitamente especificada está limitada a las carpetas de la cuenta; las carpetas de chat se excluyen a menos que el administrador haya habilitado FILE_SEARCH_INCLUDE_CHAT_FOLDERS=1.
Esto ayuda a obtener una lista actualizada de archivos y resultados de búsqueda esperados.
11. Correcciones en la indexación de documentos#
La indexación a través de un modelo externo ahora informa de un error si la respuesta del servicio es incompleta, hay menos vectores de los esperados o parte de los fragmentos únicos no se ha registrado. En caso de un error parcial de limpieza, los archivos ya procesados permanecen en la cola de reindexación. El texto coincidente de diferentes archivos o con diferentes orígenes se guarda por separado.
Un campo status vacío al cargar un archivo a través de la API ahora es equivalente a un campo ausente: el archivo recibe el estado estándar de espera. En la indexación manual, la API acepta un cuerpo vacío {} y determina la cuenta a partir de la autorización.
Esto ayuda a no considerar la indexación incompleta como exitosa y a mantener la relación de los resultados de búsqueda con la fuente correcta.
12. Biblioteca de prompts y sesión de usuario#
En la biblioteca de prompts, se ha acelerado la apertura de carpetas y el cambio entre las pestañas "Personales" / "Comunes": la lista se carga página por página sin una solicitud separada para cada carpeta. Las solicitudes API prolongadas ya no mantienen la sesión del usuario y no interfieren con otras solicitudes. El tiempo de vida de la sesión ahora corresponde a SESSION_LIFETIME_MINUTES, por lo que el recolector de basura de PHP no la finaliza prematuramente después de 24 minutos de inactividad.
Esto hace que trabajar con la biblioteca y realizar acciones paralelas en la interfaz sea más ágil.
13. Correcciones en la API y servicios del servidor#
Valores escalares incorrectos de los filtros object_folder_guids y field_names ahora pasan la verificación de datos normal en lugar de un error de PHP. Un error en el nombre del campo file_guids en lugar de files_guids en la consulta de búsqueda devuelve el código 422. La verificación de OpenAPI reutiliza el esquema cargado dentro de la solicitud.
El tiempo de espera de Whisper ahora se establece a través de WHISPER_UPSTREAM_TIMEOUT_SECONDS; por defecto es de 310 segundos. En el nginx del cliente, el tiempo de espera para solicitudes prolongadas se ha aumentado a 600 segundos. La contraseña de PostgreSQL ha sido excluida de los registros del servicio de indexación.
Esto simplifica el diagnóstico de errores de integraciones y reduce la probabilidad de interrupciones en el procesamiento prolongado.
14. Fiabilidad de la actualización y funcionamiento de los Asistentes#
Se han corregido las migraciones que podían detenerse debido a un número de versión repetido, una extensión larga de un archivo antiguo o una conexión a PostgreSQL a través de un socket local. Después de eliminar el campo del modelo, se limpia la caché de metadatos antes de crear el proxy de Doctrine. La versión actualizada de pg_textsearch elimina la falla de indexación después de un error de índice BM25.
En la pantalla de Asistentes, la edición, fijación y eliminación se determinan nuevamente por los permisos de acción sobre los asistentes: ya no hay una configuración separada para prohibir la edición. También se ha corregido la duplicación de signos en los diálogos de confirmación.
Esto reduce el riesgo de fallos durante la actualización y devuelve el control de los asistentes a los permisos asignados del rol.