이 개념 증명 솔루션은 회사 고위 직원의 음성 녹음을 통해 부족 지식을 캡처하는 데 사용할 수 있는 잠재적인 솔루션을 설명합니다. 입력 데이터의 체계적인 문서화 및 검증을 위해 Amazon Transcribe 및 Amazon Bedrock 서비스를 사용하는 방법론을 간략하게 설명합니다. 이 비공식 지식의 공식화를 위한 구조를 제공함으로써 솔루션은 조직 내 후속 직원 집단에 대한 수명과 적용 가능성을 보장합니다. 이러한 노력은 운영 우수성의 지속적인 유지를 보장할 뿐만 아니라 직접적인 경험을 통해 습득한 실무 지식의 통합을 통해 교육 프로그램의 효율성을 향상시킵니다.
이 데모 애플리케이션은 Amazon Transcribe 및 Amazon Bedrock을 사용하는 문서 생성 애플리케이션에 대한 개념 증명입니다.
다이어그램은 AWS 클라우드 리전 내에서 AWS Step Functions에 의해 조정되는 워크플로에 대한 솔루션 아키텍처를 보여줍니다. 워크플로는 사용자 입력을 처리하도록 설계된 여러 단계와 각 단계의 성공 및 실패 처리 메커니즘으로 구성됩니다. 다음은 프로세스 흐름에 대한 설명입니다.
사용자 입력 : preprocess
Lambda 함수를 트리거하기 위해 사용자 입력으로 워크플로가 시작됩니다.
전처리 : 입력이 먼저 전처리됩니다. 성공하면 transcribe
단계로 이동합니다. 실패하면 Amazon SNS가 트리거되어 알림을 보냅니다.
Transcribe : 이 단계에서는 이전 단계의 출력을 가져옵니다. 성공적인 전사는 검증 단계로 진행되고, 전사 출력은 Amazon S3 버킷에 저장됩니다.
유효성 검사 : 전사된 데이터의 유효성을 검사합니다. 검증 결과에 따라 워크플로우는 다음과 같이 달라집니다.
요약 : 사후 검증으로 데이터가 성공적으로 요약되면 요약된 텍스트가 Amazon S3 버킷에 저장됩니다. 실패하면 Amazon SNS가 트리거되어 알림을 보냅니다.
Amazon Bedrock 은 Lambda 함수 검증 및 요약을 지원하는 핵심 서비스입니다.
생성 : 이 마지막 단계는 요약된 텍스트에서 최종 문서를 생성합니다. 실패하면 Amazon SNS가 알림을 보내도록 트리거됩니다.
프로세스의 각 단계에는 "성공" 또는 "실패" 경로가 표시되어 있으며, 이는 다양한 단계에서 오류를 처리할 수 있는 워크플로의 능력을 나타냅니다. 실패하면 Amazon SNS를 사용하여 사용자에게 알림을 보냅니다.
AWS Step Functions 워크플로는 중앙 조정자로 작동하여 각 작업이 올바른 순서로 실행되고 각 단계의 성공 또는 실패를 적절하게 처리하도록 합니다.
cdk.json
파일은 CDK 도구 키트에 앱 실행 방법을 알려줍니다.
이 프로젝트는 표준 Python 프로젝트처럼 설정됩니다. 또한 초기화 프로세스는 이 프로젝트 내에 .venv
디렉터리에 저장된 virtualenv를 생성합니다. virtualenv를 생성하려면 venv
패키지에 액세스할 수 있는 경로에 python3
(또는 Windows용 python
) 실행 파일이 있다고 가정합니다. 어떤 이유로든 virtualenv 자동 생성에 실패하면 virtualenv를 수동으로 생성할 수 있습니다.
MacOS 및 Linux에서 virtualenv를 수동으로 생성하려면:
$ python3 -m venv .venv
init 프로세스가 완료되고 virtualenv가 생성되면 다음 단계를 사용하여 virtualenv를 활성화할 수 있습니다.
$ source .venv/bin/activate
Windows 플랫폼인 경우 다음과 같이 virtualenv를 활성화합니다.
% .venvScripts activate.bat
virtualenv가 활성화되면 필요한 종속성을 설치할 수 있습니다.
$ pip install -r requirements.txt
다른 CDK 라이브러리와 같은 추가 종속성을 추가하려면 setup.py
파일에 추가하고 pip install -r requirements.txt
명령을 다시 실행하세요.
이제 이 코드에 대한 CloudFormation 템플릿을 합성할 수 있습니다.
$ cdk synth
다른 CDK 라이브러리와 같은 추가 종속성을 추가하려면 setup.py
파일에 추가하고 pip install -r requirements.txt
명령을 다시 실행하세요.
특정 계정 및 지역에서 CDK를 처음 실행하는 경우 부트스트랩을 수행해야 합니다.
$ cdk bootstrap
부트스트랩이 완료되면 CDK 배포를 진행할 수 있습니다.
$ cdk deploy
처음 배포하는 경우 ECS(Amazon Elastic Container Service)에서 여러 Docker 이미지를 빌드하는 데 약 30~45분 정도 걸릴 수 있습니다. 완료될 때까지 기다려 주시기 바랍니다. 그런 다음 일반적으로 5~8분 정도 소요되는 docgen-stack 배포를 시작합니다.
배포 프로세스가 완료되면 터미널에 CDK 출력이 표시되고 CloudFormation 콘솔에서도 상태를 확인할 수 있습니다.
향후 비용을 피하기 위해 사용을 마친 후 CDK를 삭제하려면 콘솔을 통해 삭제하거나 터미널에서 다음 명령을 실행하면 됩니다.
$ cdk destroy
CDK에서 생성된 S3 버킷을 수동으로 삭제해야 할 수도 있습니다. 비용 발생을 방지하려면 생성된 리소스를 모두 삭제하시기 바랍니다.
cdk ls
앱의 모든 스택을 나열합니다.cdk synth
합성된 CloudFormation 템플릿을 내보냅니다.cdk deploy
이 스택을 기본 AWS 계정/지역에 배포cdk diff
배포된 스택을 현재 상태와 비교cdk docs
열기 CDK 문서cdk destroy
하나 이상의 지정된 스택을 파괴합니다. code # Root folder for code for this solution
├── lambdas # Root folder for all lambda functions
│ ├── preprocess # Lambda function that processes user input, and outputs audio files uris for Amazon Transcribe
│ ├── transcribe # Lambda function that triggers Amazon Transcribe batch transcription
│ ├── validate # Lambda function that analyzes answers from Amazon Transcribe using LLMs from Amazon Bedrock
│ ├── summarize # Lambda function that summarizes on-topic texts from Amazon Transcribe using LLMs from Amazon Bedrock
│ └── generate # Lambda function that generates documents from the summary.
└── code_stack.py # Amazon CDK stack that deploys all AWS resources
자신의 데이터를 통합하도록 DocGen 애플리케이션을 조정하려면 다음 단계를 따라야 합니다.
배포 시 AWS CDK 인프라는 오디오 파일을 지정된 Amazon S3 버킷으로 자동 전송하는 기능을 지원합니다. 그런 다음 AWS Step Function의 실행을 시작하여 처리 단계를 시작할 수 있습니다.
솔루션이 배포되면 이메일로 SNS 주제를 구독하여 알림을 받을 수 있습니다.
SNS 이메일 알림을 따르세요.
StepFunction 워크플로 내의 단계가 실패하면 이메일 알림을 받게 됩니다.
배포 후 다음 명령을 사용하여 배포된 AWS 상태 머신을 트리거할 수 있습니다.
aws stepfunctions start-execution
--state-machine-arn "arn:aws:states:<your aws region>:<your account id>:stateMachine:genai-knowledge-capture-stack-state-machine"
--input "{"documentName": "<your document name>", "audioFileFolderUri": "s3://<your s3 bucket>/assets/audio_samples/what is amazon bedrock/"}"
자세한 내용은 기여를 참조하세요.
이 라이브러리는 MIT-0 라이선스에 따라 라이선스가 부여됩니다. 라이센스 파일을 참조하십시오.