LLM으로 Anthropic의 Claude3을 사용하기 위하여, Amazon Bedrock의 us-west-2 리전을 사용합니다. Model access에 접속해서 [Edit]를 선택하여 "Titan Text Embeddings V2"와 "Anthropic Claude3 Sonnet"을 Vector Embedding과 LLM을 위해 enable 합니다.
Cloud9이 Deprecated될 예정이므로 EC2를 사용하여 설치하는것을 추천 드립니다. 기존 계정의 경우에 Cloud9을 계속 사용할 수 있습니다.
여기서는 편의상 us-west-2 (Oregon) 리전을 사용합니다.
EC2 - LaunchInstances에 접속하여 Name으로 "chatbot"이라고 입력합니다.
OS로 기본값인 "Amazon Linux"를 유지하고, Amazon Machine Image (AMI)도 기본값을 그대로 사용합니다.
Instance Type은 "m5.large"를 선택하고, Key pair는 "Proceeding without a key pair"를 선택합니다.
[Configure storage]는 편의상 80G로 변경하고 [Launch instance]를 선택하여 EC2를 설치합니다.
이후 아래와 같이 instance를 선택하여 EC2 instance 화면으로 이동하거나, console에서 EC-Instances로 접속합니다.
아래와 같이 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
- 소스를 다운로드합니다.
git clone https://github.com/kyopark2014/langgraph-agent
- cdk 폴더로 이동하여 필요한 라이브러리를 설치합니다.
cd langgraph-agent/cdk-langgraph-agent/ && 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]/us-west-2
- 아래 명령어로 인프라를 설치합니다.
cdk deploy --require-approval never --all
인프라가 설치가 되면 아래와 같은 Output을 확인할 수 있습니다.
- Output의 HtmlUpdateCommend을 아래와 같이 복사하여 실행합니다.
- Hybrid 검색을 위한 Nori Plug-in 설치
OpenSearch Console에서 "langgraph-agent"로 들어가서 [Packages] - [Associate package]을 선택한 후에, 아래와 같이 "analysis-nori"을 설치합니다.
- API에 대한 Credential을 획득하고 입력합니다.
- 일반 검색을 위하여 Tavily Search에 접속하여 가입 후 API Key를 발급합니다. 이것은 tvly-로 시작합니다.
Tavily의 경우 1000건/월을 허용하므로 여러 건의 credential을 사용하면 편리합니다. 따라서, 아래와 같이 array형태로 입력합니다.
["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","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"]
- 날씨 검색을 위하여 openweathermap에 접속하여 API Key를 발급합니다.
- langsmith.md를 참조하여 LangSmith에 가입후 API Key를 발급 받습니다.
Secret manger에 접속하여, openweathermap-langgraph-agent, tavilyapikey-langgraph-agent, langsmithapikey-langgraph-agent에 접속하여, [Retrieve secret value]를 선택 후, api key를 입력합니다.
- Output의 WebUrlforstreamchatbot의 URL로 접속합니다. 만약 Credential을 입력 전에 URL을 접속을 했다면, Lambda를 재배포하거나 일정 시간후에 Lamba가 내려갈때까지 기다렸다가 재접속하여야 하므로, Credential들을 입력 후에 URL로 접속하는것이 좋습니다.