Amazon Kendra
Servicio de búsqueda empresarial basado en machine learning que devuelve respuestas precisas a preguntas en lenguaje natural sobre documentos internos
Descripción general
Amazon Kendra es un servicio de búsqueda empresarial inteligente que utiliza machine learning. Ingiere documentos de diversas fuentes de datos como S3, RDS, SharePoint, Confluence y Salesforce, extrayendo con precisión las secciones relevantes dentro de los documentos para responder a preguntas en lenguaje natural. Su mayor característica es la capacidad de devolver información semánticamente relacionada que no podría encontrarse con búsquedas tradicionales por palabras clave, mejorando drásticamente la precisión de búsqueda en bases de conocimiento internas y help desks.
Índices y conectores de fuentes de datos
El índice de Kendra es un contenedor lógico que almacena los documentos objetivo de búsqueda. Al crear un índice se selecciona la edición (Developer o Enterprise), asegurando la capacidad según el número de documentos y la frecuencia de consultas. La edición Developer tiene un límite de 10,000 documentos y 4,000 consultas diarias, siendo adecuada para propósitos de validación. Se proporcionan más de 40 tipos de conectores de fuentes de datos incluyendo S3, RDS, SharePoint Online, Confluence, ServiceNow y Google Drive, donde cada conector procesa automáticamente la autenticación específica de la fuente, sincronización diferencial y extracción de metadatos. La programación de sincronización puede configurarse bajo demanda o periódicamente (intervalo mínimo de 1 hora), reindexando solo los documentos modificados mediante sincronización diferencial. Usando la API BatchPutDocument como fuente de datos personalizada, también se pueden ingerir datos de sistemas propios. Los documentos pueden tener atributos personalizados (nombre de departamento, nombre de proyecto, nivel de confidencialidad, etc.) que se utilizan para búsqueda por facetas y filtrado.
Procesamiento de consultas y ajuste de ranking
El procesamiento de consultas de Kendra se basa en búsqueda semántica mediante un modelo de comprensión del lenguaje natural (NLU). Analiza la intención de la pregunta del usuario, incluyendo en los resultados no solo coincidencias exactas de palabras clave sino también documentos semánticamente relacionados. Los resultados se clasifican en 3 tipos: Suggested Answer extrae la sección relevante del documento como respuesta directa, Document muestra documentos completos de alta relevancia, y FAQ realiza coincidencias desde pares de preguntas y respuestas pre-registrados. Para mejorar la precisión del ranking, se ajustan los pesos por campo mediante Relevance Tuning. Por ejemplo, es efectivo aumentar la importancia del campo título y potenciar documentos con fechas de actualización más recientes. Además, al enviar feedback de clics del usuario mediante la API SubmitFeedback, el modelo de machine learning mejora continuamente el ranking. El tiempo de respuesta de consultas es normalmente inferior a 1 segundo, manteniendo velocidades prácticas incluso con conjuntos de documentos a gran escala.
Control de acceso y contexto de usuario
Kendra soporta nativamente el control de acceso a nivel de documento (ACL). Los conectores de fuentes de datos importan automáticamente la información de permisos del sistema origen, devolviendo solo los documentos visibles según los grupos a los que pertenece el usuario durante la búsqueda. Con los conectores de SharePoint y Confluence, las ACL del sistema origen se reflejan directamente en Kendra, eliminando la necesidad de gestión duplicada de permisos. Para fuentes de datos personalizadas, se configuran explícitamente permisos de acceso y denegación por usuario o grupo mediante objetos Principal. El contexto de usuario es un mecanismo que pasa el ID de usuario e información de grupo como parámetro UserContext al ejecutar consultas. Al integrarse con IAM Identity Center, la información del usuario puede obtenerse automáticamente del token SSO. Como consideración operativa, la sincronización de ACL depende del momento de sincronización de la fuente de datos, por lo que los cambios de permisos pueden no reflejarse inmediatamente. En entornos de alta confidencialidad, se recomienda configurar intervalos de sincronización cortos y ejecutar sincronización manual después de cambios de permisos.