Documente el 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.

Documente el conocimiento institucional a partir de las entradas de voz mediante Amazon Bedrock y Amazon Transcribe

Creado por Praveen Kumar Jeyarajan (AWS), Jundong Qiao (AWS), Megan Wu (AWS) y Rajiv Upadhyay (AWS)

Repositorio de código: genai-knowledge-capture

Entorno: PoC o piloto

Tecnologías: aprendizaje automático e inteligencia artificial; productividad empresarial; CloudNative

Servicios de AWS: Amazon Bedrock; AWS CDK; AWS Lambda; Amazon SNS; AWS Step Functions; Amazon Transcribe

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, mejores prácticas y soluciones para problemas complejos que podrían no estar 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, aprovechar el 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 

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. El siguiente diagrama muestra el flujo de trabajo de Step Functions, también conocido como máquina de estados.

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

Cada paso de la máquina de estados es gestionado por una función Lambda distinta. Los siguientes son los pasos del proceso de generación de documentos:

  1. La función preprocess Lambda 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 Lambda descendentes del flujo de trabajo utilizan la lista de archivos para validar, resumir y generar el documento.

  2. La función transcribe Lambda usa Amazon Transcribe para convertir archivos de audio en transcripciones de texto. Esta función 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 validate Lambda analiza las transcripciones del texto y determina la relevancia de las respuestas a las preguntas iniciales. Al utilizar un modelo de lenguaje amplio (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 summarize Lambda utiliza Amazon Bedrock para generar un resumen coherente y conciso de las respuestas relacionadas con el tema.

  5. La función generate Lambda 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 alguna de las funciones de Lambda falla, 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 estados 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.

Herramientas

Servicios de AWS

  • Amazon Bedrock es un servicio totalmente gestionado que pone a su disposición modelos básicos (FM) de alto rendimiento 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 le 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 aprendizaje automático para convertir audio en texto.

Otras herramientas

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

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:

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

  • code/lambdasfolder: el código de Python para todas las funciones de Lambda

    • code/lambdas/generatecarpeta: el código Python que genera un documento a partir de los datos resumidos en el depósito de S3

    • code/lambdas/preprocessfolder: el código Python que procesa las entradas de la máquina de estados Step Functions

    • code/lambdas/summarizefolder: el código Python que resume los datos transcritos mediante el servicio Amazon Bedrock

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

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

  • code/code_stack.py— El archivo Python de construcción de AWS CDK que se utiliza para crear recursos de AWS

  • app.py— El archivo Python de la aplicación AWS CDK que se utiliza 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 la AWS CDK

  • cdk.json— El archivo de entrada para proporcionar los valores necesarios para crear recursos

Prácticas recomendadas

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

Epics

TareaDescripciónHabilidades requeridas

Exporte variables para la cuenta y la región de AWS.

Para proporcionar las credenciales de AWS para la CDK de AWS 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 la CLI de AWS.

Para configurar el perfil con nombre de la CLI de AWS para la cuenta, siga las instrucciones de Configuración y configuración del archivo de credenciales.

AWS DevOps, DevOps ingeniero
TareaDescripciónHabilidades requeridas

Clona el repositorio en tu estación de trabajo local.

Para clonar el genai-knowledge-capturerepositorio, ejecute el siguiente comando en su 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 ejemplo para que incorpore sus propios datos, haga lo siguiente:

  1. Navegue hasta la assets/audio_samples carpeta 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 el entorno virtual de Python.

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 CDK de AWS.

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 básico.

Habilite el acceso al modelo Anthropic Claude 3 Sonnet para su cuenta de AWS. Para obtener instrucciones, consulte Añadir 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 la CDK de AWS, 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 esgenai-knowledge-capture-stack.

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

    El cdk deploy comando usa construcciones de capa 3 para crear un conjunto de funciones Lambda, un bucket de S3, un tema de Amazon SNS y una máquina de estados Step Functions. Los archivos de audio de la assets/audio_samples carpeta 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 la pila se implementó correctamente. 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. Elige la genai-knowledge-capture-stack pila.

  3. Elija la pestaña Salidas.

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

  5. Configure una dirección de correo electrónico para recibir notificaciones siguiendo las instrucciones del tema Suscribir 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, elija genai-knowledge-capture-stack-state-machine.

  3. Seleccione Iniciar ejecución.

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

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

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

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

    • <Folder path>es el 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 depósito de S3 y, a continuación, elimine el depósito. Para obtener más información, consulte Eliminación de un bucket.

  2. Desde el repositorio clonado, ejecute el comandocdk destroy.

AWS DevOps, DevOps ingeniero

Recursos relacionados

Documentación de AWS

Otros recursos