챗GPT와 랭체인을 활용한 LLM기반 AI 앱 개발 -4/5
1
슬랙으로 질문하고 답변 받자.
2
개발환경을 구성해 보자.
1) Cloud9 사용(개발서버)
2) 서버리스 사용
AWS 람다 사용 = 사용한 만큼만 과금.
Momento를 대화 히스토리 캐쉬 서비스 사용 = 사용한 만큼만 과금.
3
구성?
사용자 ----- 문의-----------LangChain (AWS lambda) ----------------- ChatGPT (API)
:______Momento(캐쉬)
AWS Cloud9 생성
https://console.aws.amazon.com/console/home
slack-app
1
퍼블릭하게 하나 만들자.
2
NEW
slack1
https://github.com/topasvga1/slack1
3
cloud9과 깃허브 연동?
Cloud9에서 깃허브에 SSH로 접속 하는 방법?
taeho.seo@메일
ssh-keygen -t ed25519 -C "taeho.seo@gmail.com"
cat ~/.ssh/id_ed25519.pub
공개키 xxxxxxxxxxxxxxxxxxxxxxx
# 공개키가 패스워드이므로 복사.
4
깃허브에 공개키 등록 ???
오른쪽위 프로필 > 세팅
SSH and GPG keys > New SSH key
cloud9-slack
공개키 등록
5
# cloud9 터미널에서
ssh -T git@github.com
Hi topasvga1! You've successfully authenticated, but GitHub does not provide shell access.
6
git config --global user.email taeho.seo@gmail.com
git config --global user.email topasvga1
# git clone으로 파일 가져오기
git clone git@github.com:topasvga1/slack1
1
파이썬 환경으로 세팅하기
curl https://pyenv.run | bash
2
pyenv 설치
https://github.com/pyenv/pyenv#installation
3
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init -)"' >> ~/.bashrc
exec "$SHELL"
sudo yum remove -y openssl-devel
sudo yum install -y openssl-devel bzip2-devel xz-devel
sudo yum install libffi-devel
sudo yum install ncurses-devel
sudo yum install readline-devel
pyenv install 3.10
(10분 걸림)
4
# python 3.10 사용하기 위한 절차
ec2-user:~/environment $ cd slack1
ec2-user:~/environment/slack1(main) $ pyenv local 3.10
ec2-user:~/environment/slack1 (main) $ more .python-version
3.10
# local 명령어는 현재 디렉토리와 디렉토리 아래는 해당 파이썬 버전을 사용하게 된다.
5
# 파이썬 개발에서 여러 프로젝트에서 설치하는 패키지 충동하지 않도록 하기위해 가상환경을 사용한다.
가상 환경 사용법
ec2-user:~/environment/slack1 (main) $ python -m venv .venv
ec2-user:~/environment/slack1 (main) $ . .venv/bin/activate
비활성화
deactivate
6
# Momento 캐쉬 환경 설정 , 구글 계정으로 가입
Download JSON
7
환경 설정 파일 만들기
.env 파일 만들기
SLACK_SIGNING_SECRET=
SLACK_BOT_TOKEN=
SLACK_APP_TOKEN=
OPENAI_API_KEY=
OPENAI_API_MODEL=gpt-3.5-turbo
OPENAI_API_TEMPERATURE=0.5
MOMENTO_AUTH_TOKEN=
MOMENTO_CACHE=
MOMENTO_TTL=1
1
슬랙 앱 만들기
Create New App
From scratch
chat2
SLACK_SIGNING_SECRET 복사
2
# cloud9 에서
.env
SLACK_SIGNING_SECRET= xxxxxxxxxxxxxxxxxxxxx 입력
3
OAuth& Permissions > Scopes > Bot Token Scopes > Add on OAuth Scope
chat:write 를 추가
4
OAuth Tokens 클릭
5
6
7
8
소켓 모드 활성화
Cloud9에서 Slack Bolt를 이용해 로컬 서버 구동
슬랙에서 발생한 이벤트를 수신하여 소켓 모드를 활성화 한다.
Socket Mode = on
1
env 입력
SLACK_SIGNING_SECRET=
SLACK_BOT_TOKEN=
SLACK_APP_TOKEN=
OPENAI_API_KEY=
OPENAI_API_MODEL=gpt-3.5-turbo
OPENAI_API_TEMPERATURE=0.5
MOMENTO_AUTH_TOKEN=
MOMENTO_CACHE=
MOMENTO_TTL=1
2
app.py 생성
https://github.com/ychoi-kr/langchain-book/tree/main/chapter7
3
pip install slack-bolt==1.18.1 python-dotenv==1.0.1
4
pyenv install 3.10
(20분)
[notice] To update, run: pip install --upgrade pip
5
ec2-user:~/environment (main) $ python app.py
Traceback (most recent call last):
File "/home/ec2-user/environment/app.py", line 10, in <module>
from langchain_community.chat_message_histories import MomentoChatMessageHistory
ModuleNotFoundError: No module named 'langchain_community'
1
Slack 에서
chat2 선택
다음
https://brunch.co.kr/@topasvga/3898