여기서는 Multi-Region LLM을 사용하기 위하여, 아래 링크에 접속하여, [Edit]를 선택한 후에 모든 모델을 사용할 수 있도록 설정합니다. 특히 Anthropic Claude와 "Titan Embeddings G1 - Text"은 LLM 및 Vector Embedding을 위해서 반드시 사용이 가능하여야 합니다.
- Model access - Oregon
- Model access - N.Virginia
- Model access - Canada
- Model access - London
- Model access - Sao Paulo
여기서는 Cloud9에서 AWS CDK를 이용하여 인프라를 설치합니다.
- Cloud9 Console에 접속하여 [Create environment]-[Name]에서 “chatbot”으로 이름을 입력하고, EC2 instance는 “m5.large”를 선택합니다. 나머지는 기본값을 유지하고, 하단으로 스크롤하여 [Create]를 선택합니다.
- Environment에서 “chatbot”를 [Open]한 후에 아래와 같이 터미널을 실행합니다.
- EBS 크기 변경
아래와 같이 스크립트를 다운로드 합니다.
curl https://raw.githubusercontent.com/kyopark2014/technical-summary/main/resize.sh -o resize.sh
이후 아래 명령어로 용량을 80G로 변경합니다.
chmod a+rx resize.sh && ./resize.sh 80
- 소스를 다운로드합니다.
git clone https://github.com/kyopark2014/korean-chatbot-using-amazon-bedrock
- cdk 폴더로 이동하여 필요한 라이브러리를 설치합니다.
cd korean-chatbot-using-amazon-bedrock/cdk-korean-chatbot/ && npm install
- CDK 사용을 위해 Boostraping을 수행합니다.
아래 명령어로 Account ID를 확인합니다.
aws sts get-caller-identity --query Account --output text
아래와 같이 bootstrap을 수행합니다. 여기서 "account-id"는 상기 명령어로 확인한 12자리의 Account ID입니다. bootstrap 1회만 수행하면 되므로, 기존에 cdk를 사용하고 있었다면 bootstrap은 건너뛰어도 됩니다.
cdk bootstrap aws://account-id/ap-northeast-1
- 인프라를 설치합니다.
cdk deploy --all
설치가 완료되면 아래와 같은 Output이 나옵니다.
- HTMl 파일을 S3에 복사합니다.
아래와 같이 Output의 HtmlUpdateCommend을 붙여넣기 합니다.
- Hybrid 검색을 위한 Nori Plug-in 설치
OpenSearch Console에서 "korean-chatbot-with-rag"로 들어가서 [Packages] - [Associate package]을 선택한 후에, 아래와 같이 "analysis-nori"을 설치합니다.
- Google API Key Update하기
api_key에서 [키 가져오기] - [Select or create project]를 선택하여 Google API Key를 가져옵니다. 만약 기존 키가 없다면 새로 생성합니다.
새 검색엔진 만들기에서 검색엔진을 설정합니다. 이때, 검색할 내용은 "전체 웹 검색"을 선택하여야 합니다.
Secret Console에 접속하여 [Retrieve secret value]를 선택하여, google_api_key와 google_cse_id를 업데이트합니다.
- WebUrl를 선택하여 브라우저로 접속합니다.