Skip to content

Latest commit

 

History

History
94 lines (54 loc) · 4.97 KB

deployment.md

File metadata and controls

94 lines (54 loc) · 4.97 KB

인프라 설치하기

Bedrock 사용 권한 설정하기

LLM으로 Anthropic의 Claude 3을 사용하기 위하여, Amazon Bedrock의 us-west-2, us-east-1, ca-central-1, eu-west-2, sa-east-1 리전을 사용합니다. 각 리전의 Amazon Bedrock Console의 [Model access]에 접속해서 [Edit]를 선택하여 "Anthropic Claude3 Sonnet"을 enable 합니다.

image

CDK를 이용한 인프라 설치하기

여기서는 AWS Cloud9에서 AWS CDK를 이용하여 인프라를 설치합니다.

  1. Cloud9 Console에 접속하여 [Create environment]-[Name]에서 “chatbot”으로 이름을 입력하고, EC2 instance는 “m5.large”를 선택합니다. 나머지는 기본값을 유지하고, 하단으로 스크롤하여 [Create]를 선택합니다.

image

  1. Environment에서 “chatbot”를 [Open]한 후에 아래와 같이 터미널을 실행합니다.

image

  1. EBS 크기 변경

아래와 같이 스크립트를 다운로드 합니다.

curl https://raw.githubusercontent.com/kyopark2014/technical-summary/main/resize.sh -o resize.sh

이후 아래 명령어로 용량을 80G로 변경합니다.

chmod a+rx resize.sh && ./resize.sh 80
  1. 소스를 다운로드합니다.
git clone https://github.com/kyopark2014/rag-with-reflection
  1. cdk 폴더로 이동하여 필요한 라이브러리를 설치합니다.
cd rag-with-reflection/cdk-rag-with-reflection/ && npm install
  1. 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]/us-west-2
  1. 아래 명령어로 인프라를 설치합니다.
cdk deploy --require-approval never --all

인프라가 설치가 되면 아래와 같은 Output을 확인할 수 있습니다.

noname

  1. Output의 HtmlUpdateCommend을 아래와 같이 복사하여 실행합니다.

noname

  1. API에 대한 Credential을 획득하고 입력합니다.
  • 일반 검색을 위하여 Tavily Search에 접속하여 가입 후 API Key를 발급합니다. 이것은 tvly-로 시작합니다.

Tavily의 경우 1000건/월을 허용하므로 여러 건의 credential을 사용하면 편리합니다. 따라서, 아래와 같이 array형태로 입력합니다.

["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","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"]

Secret manger에 접속하여, tavilyapikey-writing-agent, langsmithapikey-writing-agent에 접속하여, [Retrieve secret value]를 선택 후, api key를 입력합니다.

Output의 WebUrlforragwithreflection의 URL로 접속합니다. 만약 Credential을 입력 전에 URL을 접속을 했다면, Lambda를 재배포하거나 일정 시간후에 Lamba가 내려갈때까지 기다렸다가 재접속하여야 하므로, Credential들을 입력 후에 URL로 접속하는것이 좋습니다.

  1. RAG를 사용하기를 원하는 경우에 Amazon Bedrock Knowledge Base를 knowledge-base.md에 따라 설정합니다. 여기에서는 knowledge base의 이름으로 "aws-rag"을 사용하고 있습니다. knowledge_base_id를 구하기 위하여 knowledge base의 이름을 이용하고 있으므로, knowledge base의 이름을 변경할 경우에는 cdk-writing-agent-stack.ts에서 "knowledge_base_name"을 수정후에 재배포합니다.