View a markdown version of this page

Documentación del conocimiento institucional a partir de las entradas de voz mediante Amazon Bedrock y Amazon Transcribe - Recomendaciones de AWS

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Documentación del conocimiento institucional a partir de las entradas de voz mediante Amazon Bedrock y Amazon Transcribe

Praveen Kumar Jeyarajan, Jundong Qiao, Rajiv Upadhyay y Megan Wu, Amazon Web Services

Resumen

Capturar el conocimiento institucional es fundamental para garantizar el éxito y la resiliencia de la organización. El conocimiento institucional representa la sabiduría, los conocimientos y las experiencias colectivos acumulados por los empleados a lo largo del tiempo, a menudo de naturaleza tácita y transmitidos de manera informal. Esta gran cantidad de información abarca enfoques únicos, prácticas recomendadas y soluciones para problemas complejos que tal vez no estén documentados en otros lugares. Al formalizar y documentar este conocimiento, las empresas pueden preservar la memoria institucional, fomentar la innovación, mejorar los procesos de toma de decisiones y acelerar las curvas de aprendizaje de los nuevos empleados. Además, promueve la colaboración, empodera a las personas y cultiva una cultura de mejora continua. En última instancia, el aprovechamiento del conocimiento institucional ayuda a las empresas a utilizar su activo más valioso, la inteligencia colectiva de su fuerza laboral, para superar los desafíos, impulsar el crecimiento y mantener una ventaja competitiva en entornos empresariales dinámicos.

Este patrón explica cómo captar el conocimiento institucional a través de grabaciones de voz de los empleados sénior. Utiliza Amazon Transcribe y Amazon Bedrock para la documentación y verificación sistemáticas. Al documentar este conocimiento informal, puede conservarlo y compartirlo con otros grupos de empleados. Este esfuerzo apoya la excelencia operativa y mejora la eficacia de los programas de formación mediante la incorporación de los conocimientos prácticos adquiridos a través de la experiencia directa.

Requisitos previos y limitaciones

Requisitos previos 

  • Una cuenta de AWS activa

  • Docker instalado

  • La versión 2.114.1 o posterior de AWS Cloud Development Kit (AWS CDK) instalada y arrancada en las regiones de AWS us-east-1 o us-west-2

  • La versión 2.114.1 o posterior del Kit de herramientas de AWS CDK instalada

  • Interfaz de la línea de comandos de AWS (AWS CLI) instalada y configurada

  • La versión 3.12 o posterior de Python instalada

  • Permisos para crear recursos de Amazon Transcribe, Amazon Bedrock, Amazon Simple Storage Service (Amazon S3) y AWS Lambda

Limitaciones

  • Esta solución se implementa en una única cuenta de AWS.

  • Esta solución solo se puede implementar en las regiones de AWS en las que estén disponibles Amazon Bedrock y Amazon Transcribe. Para obtener información sobre la disponibilidad, consulte la documentación de Amazon Bedrock y Amazon Transcribe.

  • Los archivos de audio deben estar en un formato compatible con Amazon Transcribe. Para obtener una lista de los formatos compatibles, consulte Formatos multimedia en la documentación de Transcribe.

Versiones de producto

  • AWS SDK para Python (Boto3) versión 1.34.57 o posterior

  • LangChain versión 0.1.12 o posterior

Arquitectura

La arquitectura representa un flujo de trabajo sin servidor en AWS. AWS Step Functions organiza las funciones de Lambda para el procesamiento de audio, el análisis de texto y la generación de documentos. En el siguiente diagrama se muestra el flujo de trabajo de Step Functions, también conocido como máquina de estado.

Diagrama de arquitectura de la máquina de estado de Step Functions que genera un documento

Cada paso de la máquina de estado lo gestiona una función de Lambda distinta. Los siguientes son los pasos del proceso de generación de documentos:

  1. La función de Lambda preprocess valida la entrada pasada a Step Functions y muestra todos los archivos de audio presentes en la ruta de la carpeta URI de Amazon S3 proporcionada. Las funciones de Lambda posteriores del flujo de trabajo utilizan la lista de archivos para validar, resumir y generar el documento.

  2. La función de Lambda transcribe usa Amazon Transcribe para convertir archivos de audio en transcripciones de texto. Esta función de Lambda es responsable de iniciar el proceso de transcripción y transformar con precisión la voz en texto, que luego se almacena para su posterior procesamiento.

  3. La función de Lambda validate analiza las transcripciones del texto y determina la relevancia de las respuestas a las preguntas iniciales. Al utilizar un modelo de lenguaje de gran tamaño (LLM) a través de Amazon Bedrock, identifica y separa las respuestas relacionadas con el tema de las respuestas no relacionadas con el tema.

  4. La función de Lambda summarize utiliza Amazon Bedrock para generar un resumen coherente y conciso de las respuestas relacionadas con el tema.

  5. La función de Lambda generate agrupa los resúmenes en un documento bien estructurado. Puede formatear el documento de acuerdo con plantillas predefinidas e incluir cualquier contenido o dato adicional necesario.

  6. Si se produce un error en alguna de las funciones de Lambda, recibirá una notificación por correo electrónico a través de Amazon Simple Notification Service (Amazon SNS).

A lo largo de este proceso, AWS Step Functions se asegura de que cada función de Lambda se inicie en la secuencia correcta. Esta máquina de estado tiene la capacidad de procesamiento en paralelo para mejorar la eficiencia. Un bucket de Amazon S3 actúa como repositorio de almacenamiento central y respalda el flujo de trabajo mediante la administración de los distintos formatos multimedia y de documentos involucrados.

Tools (Herramientas)

Servicios de AWS

  • Amazon Bedrock es un servicio totalmente gestionado que pone a su disposición modelos básicos de alto rendimiento (FMs) de las principales empresas emergentes de IA y Amazon a través de una API unificada.

  • AWS Lambda es un servicio de computación que ayuda a ejecutar código sin necesidad de aprovisionar ni administrar servidores. Ejecuta el código solo cuando es necesario y amplía la capacidad de manera automática, por lo que solo pagará por el tiempo de procesamiento que utilice.

  • Amazon Simple Notification Service (Amazon SNS) le permite coordinar y administrar el intercambio de mensajes entre publicadores y clientes, incluidos los servidores web y las direcciones de correo electrónico.

  • Amazon Simple Storage Service (Amazon S3) es un servicio de almacenamiento de objetos basado en la nube que lo ayuda a almacenar, proteger y recuperar cualquier cantidad de datos.

  • AWS Step Functions es un servicio de orquestación sin servidor que le permite combinar funciones de Lambda AWS y otros servicios de AWS para crear aplicaciones esenciales desde el punto de vista empresarial.  

  • Amazon Transcribe es un servicio de reconocimiento de voz automático que utiliza modelos de machine learning para convertir audio en texto.

Otras herramientas

  • LangChaines un marco para desarrollar aplicaciones que funcionan con modelos de lenguaje de gran tamaño ()LLMs.

Repositorio de código

El código de este patrón está disponible en el GitHub genai-knowledge-capturerepositorio.

El repositorio de código contiene los siguientes archivos y carpetas:

  • Carpeta assets: los activos estáticos de la solución, como el diagrama de arquitectura y el conjunto de datos público.

  • Carpeta code/lambdas: el código de Python para todas las funciones de Lambda.

    • Carpeta code/lambdas/generate: el código Python que genera un documento a partir de los datos resumidos en el bucket de S3.

    • Carpeta code/lambdas/preprocess: el código de Python que procesa las entradas de la máquina de estado de Step Functions.

    • Carpeta code/lambdas/summarize: el código de Python que resume los datos transcritos mediante el servicio de Amazon Bedrock.

    • Carpeta code/lambdas/transcribe: el código Python que convierte los datos de voz (archivo de audio) en texto mediante Amazon Transcribe.

    • Carpeta code/lambdas/validate: el código de Python que valida si todas las respuestas pertenecen al mismo tema.

  • code/code_stack.py: los archivos de Python de constructo de AWS CDK usados para crear los recursos de AWS.

  • app.py: los archivos de Python de la aplicación de AWS CDK que se utilizan para implementar los recursos de AWS en la cuenta de AWS de destino.

  • requirements.txt: la lista de todas las dependencias de Python que se deben instalar para AWS CDK.

  • cdk.json: el archivo de entrada que proporciona los valores necesarios para crear los recursos.

Prácticas recomendadas

El ejemplo de código proporcionado es únicamente para fines proof-of-concept (PoC) o piloto. Si desea llevar el código a producción, siga las siguientes prácticas recomendadas:

Epics

TareaDescripciónHabilidades requeridas

Exporte las variables de cuenta y región de AWS.

Para proporcionar las credenciales de AWS para AWS CDK mediante variables de entorno, ejecute los siguientes comandos.

export CDK_DEFAULT_ACCOUNT=<12-digit AWS account number> export CDK_DEFAULT_REGION=<Region>
AWS DevOps, DevOps ingeniero

Configure el perfil con nombre de AWS CLI.

Para configurar el perfil de la AWS CLI para la cuenta, siga las instrucciones de Opciones de los archivos de configuración y credenciales.

AWS DevOps, DevOps ingeniero
TareaDescripciónHabilidades requeridas

Clone el repositorio en su estación de trabajo local.

Para clonar el genai-knowledge-capturerepositorio, ejecuta el siguiente comando en tu terminal.

git clone https://github.com/aws-samples/genai-knowledge-capture
AWS DevOps, DevOps ingeniero

(Opcional) Sustituya los archivos de audio.

Para personalizar la aplicación de muestra para que incorpore sus propios datos, haga lo siguiente:

  1. Navegue hasta la carpeta assets/audio_samples del repositorio clonado.

  2. Elimine las carpetas que contienen los archivos de audio de muestra.

  3. Cree una carpeta para cada tema que desee analizar.

  4. Transfiera sus archivos de audio a sus carpetas respectivas.

AWS DevOps, DevOps ingeniero

Configure un entorno de Python virtual.

Para configurar y activar el entorno virtual de Python, ejecute el siguiente comando.

cd genai-knowledge-capture python3 -m venv .venv source .venv/bin/activate pip install -r requirements.txt
AWS DevOps, DevOps ingeniero

Sintetice el código de AWS CDK.

Para convertir el código en una configuración de CloudFormation pila de AWS, ejecute el siguiente comando.

cdk synth
AWS DevOps, DevOps ingeniero
TareaDescripciónHabilidades requeridas

Aprovisione el acceso al modelo fundacional.

Habilite el acceso al modelo Anthropic Claude 3 Sonnet para su cuenta de AWS. Para obtener instrucciones, consulte Adición de un modelo de acceso en la documentación de Bedrock.

AWS DevOps

Implementar recursos en la cuenta.

Para implementar recursos en la cuenta de AWS mediante AWS CDK, haga lo siguiente:

  1. (Opcional) En la raíz del repositorio clonado, en el app.py archivo, actualiza el nombre de la CloudFormation pila de AWS. El nombre predeterminado de la pila es genai-knowledge-capture-stack.

  2. Ejecute el cdk deploy comando para implementar los recursos.

    El comando cdk deploy usa constructos de capa 3 para crear un conjunto de funciones de Lambda, un bucket de S3, un tema de Amazon SNS y una máquina de estado de Step Functions. Los archivos de audio de la carpeta assets/audio_samples se copian en el bucket de S3 durante la implementación.

  3. Inicie sesión en la consola de administración de AWS y, a continuación, abra la CloudFormation consola en https://console.aws.amazon.com/cloudformation/.

  4. Confirme que se ha implementado correctamente la pila. Para obtener instrucciones, consulte Revisar la pila en la CloudFormation consola de AWS.

AWS DevOps, DevOps ingeniero

Suscríbase al tema de Amazon SNS.

Para suscribirse al tema de Amazon SNS para recibir notificaciones, haga lo siguiente:

  1. En la CloudFormation consola, en el panel de navegación, selecciona Stacks.

  2. Elija la pila genai-knowledge-capture-stack.

  3. Elija la pestaña Salidas.

  4. Busque el nombre del tema de Amazon SNS con la clave SNSTopicName.

  5. Para configurar una dirección de correo electrónico para recibir notificaciones, siga las instrucciones de Suscripción de una dirección de correo electrónico a un tema de Amazon SNS.

AWS general
TareaDescripciónHabilidades requeridas

Ejecuta la máquina de estado.

  1. Abra la consola de Step Functions.

  2. En la página State machines, selecciona genai-knowledge-capture-stack-state-machine.

  3. Seleccione Iniciar ejecución.

  4. (Opcional) En el cuadro Nombre, escriba un nombre para la ejecución.

  5. En el área de entrada, introduzca el siguiente objeto JSON mediante la sustitución del texto del marcador de posición, donde:

    • <Name> es el nombre que desea asignar al documento.

    • <S3 bucket name> es el nombre del bucket de Amazon S3 que contiene los archivos de audio.

    • <Folder path> es el nombre del directorio que contiene los archivos de audio.

    {   "documentName": "<Name>",   "audioFileFolderUri": "s3://<S3 bucket name>/<Folder path>" }
  6. Seleccione Iniciar ejecución.

  7. En la página de detalles de la ejecución, revise los resultados y espere a que se complete la ejecución.

Desarrollador de aplicaciones, AWS general
TareaDescripciónHabilidades requeridas

Elimine los recursos de AWS.

Después de probar la solución, limpie los recursos:

  1. Elimine todos los objetos del bucket de S3 y, a continuación, elimine el bucket. Para obtener más información, consulte Eliminación de un bucket.

  2. Para clonar el repositorio, ejecute el comando cdk destroy.

AWS DevOps, DevOps ingeniero

Recursos relacionados

Documentación de AWS

Otros recursos