Skip to content

Latest commit

 

History

History
140 lines (81 loc) · 6.72 KB

deployment.md

File metadata and controls

140 lines (81 loc) · 6.72 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

설치하기

Cloud9이 Deprecated될 예정이므로 EC2를 사용하여 설치하는것을 추천 드립니다. 기존 계정의 경우에 Cloud9을 계속 사용할 수 있습니다.

EC2를 사용하는 경우

여기서는 편의상 us-west-2 (Oregon) 리전을 사용합니다.

EC2 생성

EC2 - LaunchInstances에 접속하여 Name으로 "chatbot"이라고 입력합니다.

noname

OS로 기본값인 "Amazon Linux"를 유지하고, Amazon Machine Image (AMI)도 기본값을 그대로 사용합니다.

Instance Type은 "m5.large"를 선택하고, Key pair는 "Proceeding without a key pair"를 선택합니다.

[Configure storage]는 편의상 80G로 변경하고 [Launch instance]를 선택하여 EC2를 설치합니다.

noname

이후 아래와 같이 instance를 선택하여 EC2 instance 화면으로 이동하거나, console에서 EC-Instances로 접속합니다.

noname

아래와 같이 instance에서 [Connect]를 선택하여 [Session Manager]로 접속합니다.

관련 패키지 설치

편의상 C-Shell로 변경후 필요한 패키지로 git, node.js, npm, docker를 설치하고 환경을 설절정합니다.

csh
cd && sudo yum install git nodejs npm docker -y
sudo usermod -a -G docker $USER
newgrp docker
sudo service docker start
sudo npm install -g aws-cdk --prefix /usr/local

소스 다운로드 및 설치

  1. 소스를 다운로드합니다.
git clone https://github.com/kyopark2014/writing-agent
  1. cdk 폴더로 이동하여 필요한 라이브러리를 설치합니다.
cd writing-agent/cdk-writing-agent/ && 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의 WebUrlforstreamchatbot의 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"을 수정후에 재배포합니다.