쿠키 기본 설정 선택

당사는 사이트와 서비스를 제공하는 데 필요한 필수 쿠키 및 유사한 도구를 사용합니다. 고객이 사이트를 어떻게 사용하는지 파악하고 개선할 수 있도록 성능 쿠키를 사용해 익명의 통계를 수집합니다. 필수 쿠키는 비활성화할 수 없지만 '사용자 지정' 또는 ‘거부’를 클릭하여 성능 쿠키를 거부할 수 있습니다.

사용자가 동의하는 경우 AWS와 승인된 제3자도 쿠키를 사용하여 유용한 사이트 기능을 제공하고, 사용자의 기본 설정을 기억하고, 관련 광고를 비롯한 관련 콘텐츠를 표시합니다. 필수가 아닌 모든 쿠키를 수락하거나 거부하려면 ‘수락’ 또는 ‘거부’를 클릭하세요. 더 자세한 내용을 선택하려면 ‘사용자 정의’를 클릭하세요.

Amazon Bedrock 에이전트 및 지식 기반을 사용하여 완전 자동화된 채팅 기반 어시스턴트 개발 - 권장 가이드

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

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

Amazon Bedrock 에이전트 및 지식 기반을 사용하여 완전 자동화된 채팅 기반 어시스턴트 개발

작성자: Jundong Qiao(AWS), Kara Yang(AWS), Kiowa Jackson(AWS), Noah Hamilton(AWS), Praveen Kumar Jeyarajan(AWS), Shuai Cao(AWS)

요약

많은 조직이 다양한 데이터 소스를 오케스트레이션하여 포괄적인 답변을 제공할 수 있는 채팅 기반 어시스턴트를 만들 때 어려움을 겪습니다. 이 패턴은 간단한 배포를 통해 설명서와 데이터베이스의 쿼리에 모두 응답할 수 있는 채팅 기반 어시스턴트를 개발하기 위한 솔루션을 제공합니다.

Amazon Bedrock부터이 완전 관리형 생성형 인공 지능(AI) 서비스는 다양한 고급 파운데이션 모델(FMs 제공합니다. 이를 통해 프라이버시 및 보안에 중점을 두고 생성형 AI 애플리케이션을 효율적으로 생성할 수 있습니다. 설명서 검색의 맥락에서 Retrieval Augmented Generation(RAG)은 핵심 기능입니다. 지식 기반을 사용하여 외부 소스의 컨텍스트 관련 정보로 FM 프롬프트를 보강합니다. Amazon OpenSearch Serverless 인덱스는 Amazon Bedrock의 지식 기반 뒤에 있는 벡터 데이터베이스 역할을 합니다. 이러한 통합은 신중한 프롬프트 엔지니어링을 통해 개선되어 부정확성을 최소화하고 응답이 사실적 설명서에 고정되도록 합니다. 데이터베이스 쿼리의 경우 Amazon Bedrock의 FMs은 텍스트 쿼리를 구조화된 SQL 쿼리로 변환하여 특정 파라미터를 통합합니다. 이를 통해 AWS Glue 데이터베이스에서 관리하는 데이터베이스에서 데이터를 정확하게 검색할 수 있습니다. Amazon Athena는 이러한 쿼리에 사용됩니다.

보다 복잡한 쿼리를 처리하기 위해 포괄적인 답변을 얻으려면 설명서와 데이터베이스 모두에서 가져온 정보가 필요합니다. Agents for Amazon Bedrock은 복잡한 작업을 이해하고 오케스트레이션을 위해 더 간단한 작업으로 나눌 수 있는 자율 에이전트를 구축하는 데 도움이 되는 생성형 AI 기능입니다. Amazon Bedrock 자율 에이전트가 용이하게 하는 간소화된 작업에서 검색된 인사이트의 조합은 정보의 합성을 개선하여 더 철저하고 철저한 답변을 제공합니다. 이 패턴은 Amazon Bedrock과 자동화된 솔루션 내의 관련 생성형 AI 서비스 및 기능을 사용하여 채팅 기반 어시스턴트를 구축하는 방법을 보여줍니다.

사전 조건 및 제한 사항

사전 조건 

제한 사항

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

  • 이 솔루션은 Amazon Bedrock 및 Amazon OpenSearch Serverless가 지원되는 AWS 리전에만 배포할 수 있습니다. 자세한 내용은 Amazon BedrockAmazon OpenSearch Serverless 설명서를 참조하세요.

제품 버전

  • Llama-index 버전 0.10.6 이상

  • Sqlalchemy 버전 2.0.23 이상

  • Opensearch-py 버전 2.4.2 이상

  • Requests_aws4auth 버전 1.2.3 이상

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

아키텍처

대상 기술 스택

AWS Cloud Development Kit(AWS CDK)는 코드에서 클라우드 인프라를 정의하고 AWS CloudFormation을 통해 프로비저닝하기 위한 오픈 소스 소프트웨어 개발 프레임워크입니다. 이 패턴에 사용되는 AWS CDK 스택은 다음 AWS 리소스를 배포합니다. 

  • AWS Key Management Service (AWS KMS)

  • Amazon Simple Storage Service(S3)

  • AWS Glue 데이터베이스 구성 요소에 대한 AWS Glue 데이터 카탈로그

  • AWS Lambda

  • Identity and Access Management(IAM)

  • Amazon OpenSearch Serverless

  • Amazon Elastic Container Registry(Amazon ECR) 

  • Amazon Elastic Container Service(Amazon ECS)

  • AWS Fargate

  • Amazon Virtual Private Cloud(VPC)

  • Application Load Balancer

대상 아키텍처·

Amazon Bedrock 지식 기반 및 에이전트를 사용한 아키텍처 다이어그램

다이어그램은 여러 AWS 서비스를 사용하는 단일 AWS 리전 내의 포괄적인 AWS 클라우드 네이티브 설정을 보여줍니다. 채팅 기반 어시스턴트의 기본 인터페이스는 Amazon ECS 클러스터에서 호스팅되는 스트리밍 애플리케이션입니다. Application Load Balancer는 접근성을 관리합니다. 이 인터페이스를 통해 이루어진 쿼리는 Invocation Lambda 함수를 활성화한 다음 Amazon Bedrock의 에이전트와 인터페이스합니다. 이 에이전트는 Amazon Bedrock에 대한 지식 기반을 참조하거나 Agent executor Lambda 함수를 호출하여 사용자 문의에 응답합니다. 이 함수는 사전 정의된 API 스키마에 따라 에이전트와 연결된 일련의 작업을 트리거합니다. Amazon Bedrock의 지식 기반은 OpenSearch Serverless 인덱스를 벡터 데이터베이스 기반으로 사용합니다. 또한 Agent executor 함수는 Amazon Athena를 통해 AWS Glue 데이터베이스에 대해 실행되는 SQL 쿼리를 생성합니다.

도구

서비스

  • Amazon Athena는 표준 SQL을 사용하여 Amazon Simple Storage Service(S3)에 있는 데이터를 직접 간편하게 분석할 수 있는 대화형 쿼리 서비스입니다.

  • Amazon Bedrock은 통합 API를 통해 주요 AI 스타트업 및 Amazon의 고성능 파운데이션 모델(FMs)을 사용할 수 있도록 하는 완전관리형 서비스입니다.

  • AWS Cloud Development Kit(AWS CDK)는 AWS 클라우드 인프라를 코드로 정의하고 프로비저닝하는 데 도움이 되는 소프트웨어 개발 프레임워크입니다.

  • AWS 명령줄 인터페이스(AWS CLI)는 명령줄 셸의 명령을 통해 AWS 서비스와 상호 작용하는 데 도움이 되는 오픈 소스 도구입니다.

  • Amazon Elastic Container Service(Amazon ECS)는 클러스터에서 컨테이너를 실행, 중지 및 관리하는 데 도움이 되는 빠르고 확장 가능한 컨테이너 관리 서비스입니다.

  • Elastic Load Balancing(ELB)은 들어오는 애플리케이션 또는 네트워크 트래픽을 여러 대상에 분산합니다. 예를 들어 하나 이상의 가용 영역에 있는 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스, 컨테이너, IP 주소 전반에 걸쳐 트래픽을 분산할 수 있습니다.

  • AWS Glue는 완전 관리형 추출, 전환, 적재(ETL) 서비스입니다. 이를 통해 데이터 스토어와 데이터 스트림 간에 데이터를 안정적으로 분류, 정리, 보강하고 이동할 수 있습니다. 이 패턴은 AWS Glue 크롤러와 AWS Glue 데이터 카탈로그 테이블을 사용합니다.

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

  • Amazon OpenSearch Serverless는 Amazon OpenSearch Service에 대한 온디맨드 서버리스 구성입니다. 이 패턴에서 OpenSearch Serverless 인덱스는 Amazon Bedrock의 지식 기반에 대한 벡터 데이터베이스 역할을 합니다.

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

기타 도구

  • Streamlit은 데이터 애플리케이션을 생성하는 오픈 소스 Python 프레임워크입니다.

코드 리포지토리

이 패턴의 코드는 GitHub genai-bedrock-agent-chatbot 리포지토리에서 사용할 수 있습니다. 코드 리포지토리에는 다음 파일과 폴더가 포함되어 있습니다.

  • assets 폴더 - 아키텍처 다이어그램 및 퍼블릭 데이터 세트와 같은 정적 자산입니다.

  • code/lambdas/action-lambda 폴더 - Amazon Bedrock 에이전트에 대한 작업 역할을 하는 Lambda 함수의 Python 코드입니다.

  • code/lambdas/create-index-lambda 폴더 - OpenSearch Serverless 인덱스를 생성하는 Lambda 함수의 Python 코드입니다.

  • code/lambdas/invoke-lambda 폴더 - Amazon Bedrock 에이전트를 호출하는 Lambda 함수의 Python 코드로, Streamlit 애플리케이션에서 직접 호출됩니다.

  • code/lambdas/update-lambda 폴더 - AWS CDK를 통해 AWS 리소스가 배포된 후 리소스를 업데이트하거나 삭제하는 Lambda 함수의 Python 코드입니다.

  • code/layers/boto3_layer 폴더 - 모든 Lambda 함수에서 공유되는 Boto3 계층을 생성하는 AWS CDK 스택입니다.

  • code/layers/opensearch_layer 폴더 - 인덱스를 생성하기 위해 모든 종속성을 설치하는 OpenSearch Serverless 계층을 생성하는 AWS CDK 스택입니다.

  • code/streamlit-app 폴더 - Amazon ECS에서 컨테이너 이미지로 실행되는 Python 코드

  • code/code_stack.py - AWS CDK는 AWS 리소스를 생성하는 Python 파일을 구성합니다.

  • app.py - 대상 AWS 계정에 AWS 리소스를 배포하는 AWS CDK 스택 Python 파일입니다.

  • requirements.txt - AWS CDK에 설치해야 하는 모든 Python 종속성의 목록입니다.

  • cdk.json - 리소스를 생성하는 데 필요한 값을 제공하는 입력 파일입니다. 또한 context/config 필드에서 그에 따라 솔루션을 사용자 지정할 수 있습니다. 사용자 지정에 대한 자세한 내용은 추가 정보 섹션을 참조하세요.

모범 사례

에픽

작업설명필요한 기술

계정 및 리전의 변수를 내보냅니다.

환경 변수를 사용하여 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 엔지니어

로컬 워크스테이션에서 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 엔지니어
작업설명필요한 기술

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

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

git clone https://github.com/awslabs/genai-bedrock-agent-chatbot.git
DevOps 엔지니어, AWS DevOps

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

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

cd genai-bedrock-agent-chatbot python3 -m venv .venv source .venv/bin/activate

필요한 종속성을 설정하려면 다음 명령을 실행합니다.

pip3 install -r requirements.txt
DevOps 엔지니어, AWS DevOps

AWS CDK 환경을 설정합니다.

코드를 AWS CloudFormation 템플릿으로 변환하려면 명령을 실행합니다cdk synth.

AWS DevOps, DevOps 엔지니어

환경을 설정합니다

작업설명필요한 기술

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

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

git clone https://github.com/awslabs/genai-bedrock-agent-chatbot.git
DevOps 엔지니어, AWS DevOps

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

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

cd genai-bedrock-agent-chatbot python3 -m venv .venv source .venv/bin/activate

필요한 종속성을 설정하려면 다음 명령을 실행합니다.

pip3 install -r requirements.txt
DevOps 엔지니어, AWS DevOps

AWS CDK 환경을 설정합니다.

코드를 AWS CloudFormation 템플릿으로 변환하려면 명령을 실행합니다cdk synth.

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

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

AWS CDK를 사용하여 AWS 계정에 리소스를 배포하려면 다음을 수행합니다.

  1. 복제된 리포지토리의 루트의 cdk.json 파일에서 로깅 파라미터에 대한 입력을 제공합니다. 예제 값은 INFO, DEBUG, 및 WARN입니다ERROR.

    이러한 값은 Lambda 함수 및 Streamlit 애플리케이션에 대한 로그 수준 메시지를 정의합니다.

  2. 복제된 리포지토리의 루트에 있는 cdk.json 파일에는 배포에 사용되는 AWS CloudFormation 스택 이름이 포함됩니다. 기본 스택 이름은 입니다chatbot-stack. 기본 Amazon Bedrock 에이전트 이름은 이고 ChatbotBedrockAgent기본 Amazon Bedrock 에이전트 별칭은 입니다Chatbot_Agent.

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

    cdk deploy 명령은 layer-3 구문을 사용하여 문서 및 CSV 데이터 세트 파일을 S3 버킷에 복사하기 위한 여러 Lambda 함수를 생성합니다. 또한 Amazon Bedrock 에이전트, 지식 기반 및 Amazon Bedrock 에이전트에 대한 Action group Lambda 함수를 배포합니다.

  4. AWS Management Console에 로그인한 다음 https://console.aws.amazon.com/cloudformation/ CloudFormation 콘솔을 엽니다.

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

배포에 성공하면 CloudFormation 콘솔의 출력 탭에 제공된 URL을 사용하여 채팅 기반 어시스턴트 애플리케이션에 액세스할 수 있습니다.

DevOps 엔지니어, AWS DevOps

애플리케이션 구성 및 배포

작업설명필요한 기술

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

AWS CDK를 사용하여 AWS 계정에 리소스를 배포하려면 다음을 수행합니다.

  1. 복제된 리포지토리의 루트의 cdk.json 파일에서 로깅 파라미터에 대한 입력을 제공합니다. 예제 값은 INFO, DEBUG, 및 WARN입니다ERROR.

    이러한 값은 Lambda 함수 및 Streamlit 애플리케이션에 대한 로그 수준 메시지를 정의합니다.

  2. 복제된 리포지토리의 루트에 있는 cdk.json 파일에는 배포에 사용되는 AWS CloudFormation 스택 이름이 포함됩니다. 기본 스택 이름은 입니다chatbot-stack. 기본 Amazon Bedrock 에이전트 이름은 이고 ChatbotBedrockAgent기본 Amazon Bedrock 에이전트 별칭은 입니다Chatbot_Agent.

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

    cdk deploy 명령은 layer-3 구문을 사용하여 문서 및 CSV 데이터 세트 파일을 S3 버킷에 복사하기 위한 여러 Lambda 함수를 생성합니다. 또한 Amazon Bedrock 에이전트, 지식 기반 및 Amazon Bedrock 에이전트에 대한 Action group Lambda 함수를 배포합니다.

  4. AWS Management Console에 로그인한 다음 https://console.aws.amazon.com/cloudformation/ CloudFormation 콘솔을 엽니다.

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

배포에 성공하면 CloudFormation 콘솔의 출력 탭에 제공된 URL을 사용하여 채팅 기반 어시스턴트 애플리케이션에 액세스할 수 있습니다.

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

AWS 리소스를 제거합니다.

솔루션을 테스트한 후 리소스를 정리하려면 명령을 실행합니다cdk destroy.

AWS DevOps, DevOps 엔지니어

솔루션의 모든 AWS 리소스를 정리하십시오.

작업설명필요한 기술

AWS 리소스를 제거합니다.

솔루션을 테스트한 후 리소스를 정리하려면 명령을 실행합니다cdk destroy.

AWS DevOps, DevOps 엔지니어

관련 리소스

설명서

기타 AWS 리소스

기타 리소스

추가 정보

채팅 기반 어시스턴트를 자체 데이터로 사용자 지정

솔루션 배포를 위한 사용자 지정 데이터를 통합하려면 다음 구조화된 지침을 따르세요. 이러한 단계는 원활하고 효율적인 통합 프로세스를 보장하도록 설계되어 맞춤형 데이터를 사용하여 솔루션을 효과적으로 배포할 수 있습니다.

지식 기반 데이터 통합용

데이터 준비

  1. assets/knowledgebase_data_source/ 디렉터리를 찾습니다.

  2. 이 폴더 내에 데이터 세트를 배치합니다.

구성 조정

  1. cdk.json 파일을 엽니다.

  2. context/configure/paths/knowledgebase_file_name 필드로 이동한 다음 그에 따라 업데이트합니다.

  3. bedrock_instructions/knowledgebase_instruction 필드로 이동한 다음 새 데이터 세트의 뉘앙스와 컨텍스트를 정확하게 반영하도록 업데이트합니다.

구조 데이터 통합용

데이터 조직

  1. assets/data_query_data_source/ 디렉터리 내에서와 같은 하위 디렉터리를 생성합니다tabular_data.

  2. 새로 생성된이 하위 폴더에 구조화된 데이터 세트(CSV, JSON, ORC 및 Parquet 등 허용되는 형식)를 넣습니다.

  3. 기존 데이터베이스에 연결하는 경우의 함수를 업데이트create_sql_engine()code/lambda/action-lambda/build_query_engine.py하여 데이터베이스에 연결합니다.

구성 및 코드 업데이트

  1. cdk.json 파일에서 새 데이터 경로에 맞게 context/configure/paths/athena_table_data_prefix 필드를 업데이트합니다.

  2. 데이터 세트code/lambda/action-lambda/dynamic_examples.csv에 해당하는 새 text-to-SQL 예제를 통합하여 수정합니다.

  3. 구조화된 데이터 세트의 속성을 반영code/lambda/action-lambda/prompt_templates.py하도록 수정합니다.

  4. cdk.json 파일에서 context/configure/bedrock_instructions/action_group_description 필드를 업데이트하여 Action group Lambda 함수의 목적과 기능을 설명합니다.

  5. assets/agent_api_schema/artifacts_schema.json 파일에서 Action group Lambda 함수의 새로운 기능을 설명합니다.

일반 업데이트

cdk.json 파일의 context/configure/bedrock_instructions/agent_instruction 섹션에서 새로 통합된 데이터를 고려하여 Amazon Bedrock 에이전트의 의도된 기능 및 설계 목적에 대한 포괄적인 설명을 제공합니다.

프라이버시사이트 이용 약관쿠키 기본 설정
© 2025, Amazon Web Services, Inc. 또는 계열사. All rights reserved.