Amazon Bedrock 및 Amazon Transcribe를 사용하여 음성 입력을 통해 기관 지식을 문서화하십시오. - AWS 권장 가이드

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Amazon Bedrock 및 Amazon Transcribe를 사용하여 음성 입력을 통해 기관 지식을 문서화하십시오.

제작: 프라빈 쿠마르 제야라잔 (AWS), 준둥 차오 (AWS), 메간 우 (AWS), 라지브 우파디야 (AWS)

코드 리포지토리: genai-knowledge-capture

환경: PoC 또는 파일럿

기술: 머신 러닝 및 AI, 비즈니스 생산성, 클라우드 네이티브

AWS 서비스: 아마존 베드락, AWS CDK, AWS Lambda, 아마존 SNS, AWS Step Functions, Amazon Transcribe

요약

기관 지식을 확보하는 것은 조직의 성공과 탄력성을 보장하는 데 가장 중요합니다. 제도적 지식은 직원들이 시간이 지나면서 축적된 집단적 지혜, 통찰력, 경험을 나타내며, 대개 암묵적이다가 비공식적으로 전달됩니다. 이 풍부한 정보에는 다른 곳에서는 문서화되지 않은 복잡한 문제에 대한 고유한 접근 방식, 모범 사례 및 솔루션이 포함됩니다. 이러한 지식을 공식화하고 문서화함으로써 기업은 제도적 기억을 보존하고 혁신을 촉진하며 의사 결정 프로세스를 개선하고 신입 사원의 학습 곡선을 가속화할 수 있습니다. 또한 협업을 촉진하고 개인의 역량을 강화하며 지속적인 개선 문화를 조성합니다. 궁극적으로 제도적 지식을 활용하면 기업이 가장 중요한 자산인 인력의 집단 지성을 활용하여 역동적인 비즈니스 환경에서 문제를 해결하고 성장을 촉진하며 경쟁 우위를 유지할 수 있습니다.

이 패턴은 고위 직원의 음성 녹음을 통해 기관 지식을 캡처하는 방법을 설명합니다. 체계적인 문서화 및 검증을 위해 Amazon Transcribe와 Amazon Bedrock을 사용합니다. 이러한 비공식 지식을 문서화하면 이를 보존하고 후속 직원 집단과 공유할 수 있습니다. 이러한 노력은 직접적인 경험을 통해 습득한 실용적인 지식을 통합함으로써 운영 우수성을 지원하고 교육 프로그램의 효과를 향상시킵니다.

사전 조건 및 제한 사항

사전 조건

제한 사항

  • 이 솔루션은 단일 AWS 계정에 배포됩니다.

  • 이 솔루션은 Amazon Bedrock과 Amazon Transcribe를 사용할 수 있는 AWS 지역에만 배포할 수 있습니다. 가용성에 대한 자세한 내용은 Amazon Bedrock 및 Amazon Transcribe 설명서를 참조하십시오.

  • 오디오 파일은 Amazon Transcribe에서 지원하는 형식이어야 합니다. 지원되는 형식 목록은 Transcribe 설명서의 미디어 형식을 참조하십시오.

제품 버전

  • 파이썬용 AWS SDK (Boto3) 버전 1.34.57 이상

  • LangChain 버전 0.1.12 이상

아키텍처

아키텍처는 AWS의 서버리스 워크플로를 나타냅니다. AWS Step Functions는 오디오 처리, 텍스트 분석 및 문서 생성을 위해 Lambda 함수를 오케스트레이션합니다. 다음 다이어그램은 스테이트 머신이라고도 하는 Step Functions 워크플로를 보여줍니다.

문서를 생성하는 Step Functions 스테이트 머신의 아키텍처 다이어그램

상태 머신의 각 단계는 고유한 Lambda 함수에 의해 처리됩니다. 문서 생성 프로세스의 단계는 다음과 같습니다.

  1. preprocessLambda 함수는 Step Functions에 전달된 입력의 유효성을 검사하고 제공된 Amazon S3 URI 폴더 경로에 있는 모든 오디오 파일을 나열합니다. 워크플로의 다운스트림 Lambda 함수는 파일 목록을 사용하여 문서를 검증, 요약 및 생성합니다.

  2. transcribeLambda 함수는 Amazon Transcribe를 사용하여 오디오 파일을 텍스트 스크립트로 변환합니다. 이 Lambda 함수는 트랜스크립션 프로세스를 시작하고 음성을 텍스트로 정확하게 변환한 다음 후속 처리를 위해 저장합니다.

  3. validateLambda 함수는 텍스트 스크립트를 분석하여 초기 질문에 대한 응답의 관련성을 결정합니다. Amazon Bedrock을 통해 대규모 언어 모델 (LLM) 을 사용하여 주제 관련 답변과 주제 외 응답을 식별하고 구분합니다.

  4. summarizeLambda 함수는 Amazon Bedrock을 사용하여 주제별 답변에 대한 일관되고 간결한 요약을 생성합니다.

  5. generateLambda 함수는 요약을 잘 구성된 문서로 조합합니다. 사전 정의된 템플릿에 따라 문서 형식을 지정하고 필요한 추가 콘텐츠 또는 데이터를 포함할 수 있습니다.

  6. Lambda 함수 중 하나라도 실패하면 Amazon Simple Notification Service (Amazon SNS) 를 통해 이메일 알림을 받게 됩니다.

이 프로세스 전반에 걸쳐 AWS Step Functions는 각 Lambda 함수가 올바른 순서로 시작되도록 합니다. 이 스테이트 머신은 효율성을 높이기 위한 병렬 처리 기능을 갖추고 있습니다. Amazon S3 버킷은 중앙 스토리지 리포지토리 역할을 하며, 관련된 다양한 미디어 및 문서 형식을 관리하여 워크플로를 지원합니다.

도구

서비스

  • Amazon Bedrock은 선도적인 AI 스타트업과 Amazon의 고성능 기초 모델 (FM) 을 통합 API를 통해 사용할 수 있게 해주는 완전관리형 서비스입니다.

  • AWS Lambda는 서버를 프로비저닝하거나 관리할 필요 없이 코드를 실행하는 데 도움이 되는 컴퓨팅 서비스입니다. 필요할 때만 코드를 실행하며 자동으로 확장이 가능하므로 사용한 컴퓨팅 시간만큼만 비용을 지불합니다.

  • Amazon Simple Notification Service(Amazon SNS)를 사용하면 웹 서버 및 이메일 주소를 포함하여 게시자와 클라이언트 간의 메시지 교환을 조정하고 관리할 수 있습니다.

  • Amazon Simple Storage Service(S3)는 원하는 양의 데이터를 저장, 보호 및 검색하는 데 도움이 되는 클라우드 기반 객체 스토리지 서비스입니다.

  • AWS Step Functions는 AWS Lambda 함수와 기타 AWS 서비스를 결합할 수 있는 서버리스 오케스트레이션 서비스로, 비즈니스 크리티컬 애플리케이션을 구축합니다. 

  • Amazon Transcribe는 기계 학습 모델을 사용하여 오디오를 텍스트로 변환하는 자동 음성 인식 서비스입니다.

기타 도구

  • LangChain대규모 언어 모델 (LLM) 을 기반으로 하는 애플리케이션을 개발하기 위한 프레임워크입니다.

코드 리포지토리

이 패턴의 코드는 GitHub genai-knowledge-capture저장소에서 사용할 수 있습니다.

코드 리포지토리에는 다음 파일과 폴더가 포함되어 있습니다.

  • assets폴더 - 솔루션의 정적 자산 (예: 아키텍처 다이어그램, 공개 데이터세트)

  • code/lambdas폴더 — 모든 Lambda 함수의 Python 코드

    • code/lambdas/generatefolder - S3 버킷의 요약 데이터로부터 문서를 생성하는 Python 코드

    • code/lambdas/preprocessfolder - Step Functions 스테이트 머신의 입력을 처리하는 Python 코드

    • code/lambdas/summarize폴더 - Amazon Bedrock 서비스를 사용하여 트랜스크립션된 데이터를 요약하는 Python 코드입니다.

    • code/lambdas/transcribe폴더 - Amazon Transcribe를 사용하여 음성 데이터 (오디오 파일) 를 텍스트로 변환하는 Python 코드

    • code/lambdas/validatefolder - 모든 답변이 동일한 주제와 관련이 있는지 확인하는 Python 코드

  • code/code_stack.py— AWS 리소스를 생성하는 데 사용되는 AWS CDK 구성 Python 파일

  • app.py— 대상 AWS 계정에 AWS 리소스를 배포하는 데 사용되는 AWS CDK 앱 Python 파일

  • requirements.txt— AWS CDK에 설치해야 하는 모든 Python 종속성 목록

  • cdk.json— 리소스를 생성하는 데 필요한 값을 제공하는 입력 파일

모범 사례

제공된 코드 예제는 proof-of-concept (PoC) 또는 파일럿 용도로만 사용됩니다. 솔루션을 프로덕션에 적용하려면 다음 모범 사례를 사용하십시오.

에픽

작업설명필요한 기술

계정 및 AWS 리전에 대한 내보내기 변수.

환경 변수를 사용하여 AWS CDK에 대한 AWS 자격 증명을 제공하려면 다음 명령을 실행합니다.

export CDK_DEFAULT_ACCOUNT=<12-digit AWS account number> export CDK_DEFAULT_REGION=<Region>
AWS DevOps, DevOps 엔지니어

AWS CLI 명명된 프로파일을 설정합니다.

계정에 대해 AWS CLI 명명된 프로필을 설정하려면 구성 및 자격 증명 파일 설정의 지침을 따르십시오.

AWS DevOps, DevOps 엔지니어
작업설명필요한 기술

리포지토리를 로컬 워크스테이션에 복제합니다.

genai-knowledge-capture리포지토리를 복제하려면 터미널에서 다음 명령을 실행합니다.

git clone https://github.com/aws-samples/genai-knowledge-capture
AWS DevOps, DevOps 엔지니어

(선택 사항) 오디오 파일을 교체합니다.

자체 데이터를 통합하도록 샘플 애플리케이션을 사용자 지정하려면 다음과 같이 하십시오.

  1. 복제된 저장소의 assets/audio_samples 폴더로 이동합니다.

  2. 샘플 오디오 파일이 들어 있는 폴더를 삭제합니다.

  3. 분석하려는 각 주제에 대한 폴더를 생성합니다.

  4. 오디오 파일을 해당 폴더로 전송합니다.

AWS DevOps, DevOps 엔지니어

Python 가상 환경을 설정합니다.

다음 명령을 실행하여 Python 가상 환경을 설정합니다.

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

AWS CDK 코드를 합성하십시오.

코드를 AWS CloudFormation stack 구성으로 변환하려면 다음 명령을 실행합니다.

cdk synth
AWS DevOps, DevOps 엔지니어
작업설명필요한 기술

기초 모델 액세스를 제공합니다.

AWS 계정의 앤트로픽 클로드 3 소넷 모델에 대한 액세스를 활성화하십시오. 지침은 Bedrock 설명서의 모델 액세스 추가를 참조하십시오.

AWS DevOps

계정에 리소스를 배포하십시오.

AWS CDK를 사용하여 AWS 계정에 리소스를 배포하려면 다음과 같이 하십시오.

  1. (선택 사항) 복제된 리포지토리의 루트에 있는 app.py 파일에서 AWS CloudFormation 스택 이름을 업데이트합니다. 기본 스택 이름은 입니다. genai-knowledge-capture-stack

  2. 리소스를 배포하려면 cdk deploy 명령을 실행합니다.

    cdk deploy 명령은 계층 3 구조를 사용하여 Lambda 함수 세트, S3 버킷, Amazon SNS 주제 및 Step Functions 상태 머신을 생성합니다. assets/audio_samples폴더의 오디오 파일은 배포 중에 S3 버킷으로 복사됩니다.

  3. AWS 관리 콘솔에 로그인한 다음 https://console.aws.amazon.com/cloudformation/ 에서 CloudFormation 콘솔을 엽니다.

  4. 스택이 성공적으로 배포되었는지 확인합니다. 지침은 AWS CloudFormation 콘솔에서의 스택 검토를 참조하십시오.

AWS DevOps, DevOps 엔지니어

Amazon SNS 주제를 구독하세요.

알림을 받기 위해 Amazon SNS 주제를 구독하려면 다음과 같이 하십시오.

  1. CloudFormation 콘솔의 탐색 창에서 [Stacks] 를 선택합니다.

  2. genai-knowledge-capture-stack스택을 선택합니다.

  3. 출력 탭을 선택합니다.

  4. 키를 사용하여 Amazon SNS 주제 이름을 찾을 수 SNSTopicName 있습니다.

  5. Amazon SNS 주제에 대한 이메일 주소 구독의 지침에 따라 알림을 받을 이메일 주소를 구성합니다.

일반 AWS
작업설명필요한 기술

상태 머신을 실행합니다.

  1. Step Functions 콘솔을 엽니다.

  2. 상태 시스템 페이지에서 genai-knowledge-capture-stack-state-machine을 선택합니다.

  3. 실행 시작을 선택합니다.

  4. (선택 사항) 이름 상자에 실행 이름을 입력합니다.

  5. 입력 영역에서 자리 표시자 텍스트를 대체하여 다음 JSON 객체를 입력합니다. 여기서:

    • <Name>문서 이름을 지정하려는 것입니다.

    • <S3 bucket name>오디오 파일이 들어 있는 Amazon S3 버킷의 이름입니다.

    • <Folder path>오디오 파일이 들어 있는 디렉터리입니다.

    {   "documentName": "<Name>",   "audioFileFolderUri": "s3://<S3 bucket name>/<Folder path>" }
  6. 실행 시작을 선택합니다.

  7. 실행 세부 정보 페이지에서 결과를 검토하고 실행이 완료될 때까지 기다립니다.

앱 개발자, 일반 AWS
작업설명필요한 기술

AWS 리소스를 제거합니다.

솔루션을 테스트한 후 리소스를 정리하세요.

  1. S3 버킷에서 모든 객체를 삭제한 다음 버킷을 삭제합니다. 자세한 내용은 버킷 삭제를 참조하십시오.

  2. 복제된 리포지토리에서 명령을 cdk destroy 실행합니다.

AWS DevOps, DevOps 엔지니어

관련 리소스

AWS 설명서

기타 리소스