

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
<a name="document-institutional-knowledge-from-voice-inputs-by-using-amazon-bedrock-and-amazon-transcribe"></a>

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

## Resumen
<a name="document-institutional-knowledge-from-voice-inputs-by-using-amazon-bedrock-and-amazon-transcribe-summary"></a>

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](https://docs.aws.amazon.com/transcribe/latest/dg/what-is.html) y [Amazon Bedrock](https://docs.aws.amazon.com/bedrock/latest/userguide/what-is-bedrock.html) 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
<a name="document-institutional-knowledge-from-voice-inputs-by-using-amazon-bedrock-and-amazon-transcribe-prereqs"></a>

**Requisitos previos **
+ Una cuenta de AWS activa
+ Docker [instalado](https://docs.docker.com/engine/install/)
+ La versión 2.114.1 o posterior de AWS Cloud Development Kit (AWS CDK) [instalada](https://docs.aws.amazon.com/cdk/v2/guide/getting_started.html#getting_started_tools) y [arrancada](https://docs.aws.amazon.com/cdk/v2/guide/getting_started.html#getting_started_bootstrap) 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](https://docs.aws.amazon.com/cdk/v2/guide/cli.html)
+ Interfaz de la línea de comandos de AWS (AWS CLI) [instalada](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) y [configurada](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html)
+ La versión 3.12 o posterior de Python [instalada](https://www.python.org/downloads/)
+ 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](https://docs.aws.amazon.com/bedrock/latest/userguide/bedrock-regions.html) y [Amazon Transcribe](https://docs.aws.amazon.com/transcribe/latest/dg/what-is.html#tsc-regions).
+ Los archivos de audio deben estar en un formato compatible con Amazon Transcribe. Para obtener una lista de los formatos compatibles, consulte [Formatos multimedia](https://docs.aws.amazon.com/transcribe/latest/dg/how-input.html#how-input-audio) 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
<a name="document-institutional-knowledge-from-voice-inputs-by-using-amazon-bedrock-and-amazon-transcribe-architecture"></a>

La arquitectura representa un flujo de trabajo sin servidor en AWS. [AWS Step Functions](https://docs.aws.amazon.com/step-functions/latest/dg/welcome.html) 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\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/f1e0106d-b046-4adc-9718-c299efb7b436/images/e90298ca-1b7f-4c3e-97bd-311a9d5a4997.png)


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.

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

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

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

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

1. 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)
<a name="document-institutional-knowledge-from-voice-inputs-by-using-amazon-bedrock-and-amazon-transcribe-tools"></a>

**Servicios de AWS**
+ [Amazon Bedrock](https://docs.aws.amazon.com/bedrock/latest/userguide/what-is-bedrock.html) 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](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) 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](https://docs.aws.amazon.com/sns/latest/dg/welcome.html)) 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)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) 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](https://docs.aws.amazon.com/step-functions/latest/dg/welcome.html) 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](https://docs.aws.amazon.com/transcribe/latest/dg/what-is.html) es un servicio de reconocimiento de voz automático que utiliza modelos de machine learning para convertir audio en texto.

**Otras herramientas**
+ [LangChain](https://python.langchain.com/docs/get_started/introduction/)es 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-capture](https://github.com/aws-samples/genai-knowledge-capture)repositorio.

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
<a name="document-institutional-knowledge-from-voice-inputs-by-using-amazon-bedrock-and-amazon-transcribe-best-practices"></a>

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:
+ Habilitación del [registro de acceso a Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/enable-server-access-logging.html)
+ Habilitación de los [registros de flujo de VPC](https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html)

## Epics
<a name="document-institutional-knowledge-from-voice-inputs-by-using-amazon-bedrock-and-amazon-transcribe-epics"></a>

### Configuración de las credenciales de AWS en su estación de trabajo
<a name="set-up-aws-credentials-on-your-local-workstation"></a>


| Tarea | Descripción | Habilidades 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.<pre>export CDK_DEFAULT_ACCOUNT=<12-digit AWS account number><br />export CDK_DEFAULT_REGION=<Region></pre> | 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](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html). | AWS DevOps, DevOps ingeniero | 

### Configure su entorno
<a name="set-up-your-environment"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Clone el repositorio en su estación de trabajo local. | Para clonar el [genai-knowledge-capture](https://github.com/aws-samples/genai-knowledge-capture)repositorio, ejecuta el siguiente comando en tu terminal.<pre>git clone https://github.com/aws-samples/genai-knowledge-capture</pre> | 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:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/document-institutional-knowledge-from-voice-inputs-by-using-amazon-bedrock-and-amazon-transcribe.html) | AWS DevOps, DevOps ingeniero | 
| Configure un entorno de Python virtual. | Para configurar y activar el entorno virtual de Python, ejecute el siguiente comando.<pre>cd genai-knowledge-capture<br />python3 -m venv .venv<br />source .venv/bin/activate<br />pip install -r requirements.txt</pre> | 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.<pre>cdk synth</pre> | AWS DevOps, DevOps ingeniero | 

### Configuración e implementación de la solución
<a name="configure-and-deploy-the-solution"></a>


| Tarea | Descripción | Habilidades 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](https://docs.aws.amazon.com/bedrock/latest/userguide/model-access.html#model-access-add) 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:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/document-institutional-knowledge-from-voice-inputs-by-using-amazon-bedrock-and-amazon-transcribe.html) | AWS DevOps, DevOps ingeniero | 
| Suscríbase al tema de Amazon SNS. | Para suscribirse al tema de Amazon SNS para recibir notificaciones, haga lo siguiente:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/document-institutional-knowledge-from-voice-inputs-by-using-amazon-bedrock-and-amazon-transcribe.html) | AWS general | 

### Pruebe la solución
<a name="test-the-solution"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Ejecuta la máquina de estado. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/document-institutional-knowledge-from-voice-inputs-by-using-amazon-bedrock-and-amazon-transcribe.html) | Desarrollador de aplicaciones, AWS general | 

### Limpie todos los recursos de AWS de la solución
<a name="clean-up-all-aws-resources-in-the-solution"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Elimine los recursos de AWS. | Después de probar la solución, limpie los recursos:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/document-institutional-knowledge-from-voice-inputs-by-using-amazon-bedrock-and-amazon-transcribe.html) | AWS DevOps, DevOps ingeniero | 

## Recursos relacionados
<a name="document-institutional-knowledge-from-voice-inputs-by-using-amazon-bedrock-and-amazon-transcribe-resources"></a>

**Documentación de AWS**
+ Recursos de Amazon Bedrock:
  + [Acceso a modelos](https://docs.aws.amazon.com/bedrock/latest/userguide/model-access.html)
  + [Parámetros de inferencia para modelos básicos](https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters.html)
+ Recursos de AWS CDK:
  + [Introducción a AWS CDK](https://docs.aws.amazon.com/cdk/v2/guide/getting_started.html)
  + [Utilización de AWS CDK en Python](https://docs.aws.amazon.com/cdk/v2/guide/work-with-cdk-python.html)
  + [Solución de problemas comunes de AWS CDK](https://docs.aws.amazon.com/cdk/v2/guide/troubleshooting.html)
  + [Comandos del kit de herramientas](https://docs.aws.amazon.com/cdk/v2/guide/cli.html#cli-commands)
+ Recursos de AWS Step Functions:
  + [Introducción a AWS Step Functions](https://docs.aws.amazon.com/step-functions/latest/dg/getting-started-with-sfn.html)
  + [Solución de problemas](https://docs.aws.amazon.com/step-functions/latest/dg/troubleshooting.html)
+ [Creación de funciones de Lambda con Python](https://docs.aws.amazon.com/lambda/latest/dg/lambda-python.html)
+ [Creador de aplicaciones de IA generativa en AWS](https://docs.aws.amazon.com/solutions/latest/generative-ai-application-builder-on-aws/solution-overview.html)

**Otros recursos**
+ [LangChain documentación](https://python.langchain.com/docs/get_started/introduction)