랭체인을 활용한 LLM기반의 AI서비스 개발하기-2/2
Windows PC에 실습 환경을 구축해보자.
랭체인 사용하는 환경을 구축해보자
랭체인 주요모듈 5가지 알아보자
실습 해보자
실습 환경
Windows PC에 아나콘다 환경
ChatGPT API 사용 - 가입 필요 , 월 10달러 = 1만 4천원 정도 결재 필요.
랭체인
1
Email 하나 준비
2
아나콘다 다운로드 - Email 필요
https://www.anaconda.com/download
3
Add PATH 체크하여 설치
4
Anaconda Prompt
실행
(base) C:\Users\seo> conda env list
# conda environments:
#
base * C:\Users\seo\anaconda3
conda create -n llm python=3.8
y
Proceed ([y]/n)? y
# 가상환경 활성화
conda env list
conda activate llm
conda env list
(base) C:\Users\seo> conda env list
# conda environments:
#
base * C:\Users\seo\anaconda3
llm C:\Users\seo\anaconda3\envs\llm
(base) C:\Users\seo> conda activate llm
(llm) C:\Users\seo> conda env list
# conda environments:
#
base C:\Users\seo\anaconda3
llm * C:\Users\seo\anaconda3\envs\llm
#삭제시
conda env remove -n llm
// LLM 삭제
1
pip install ipykernel
# 가상환경에 커널 연결하기
python -m ipykernel install --user --name 11m --display-name "llm"
# 주피터 노트북에 연결
jupyter notebook
FILE > NEW > notebook > llm
2
# 라이블러리 설치 = 아나콘다에서 !를 붙여 설치한다.
# 10초후 설치 시작함
!pip install langchain==0.0.350
# langchain version check
#
import langchain; print('the version of install langcahin is',langchain.__version__)
the version of install langcahin is 0.0.350
3
# 오픈 AI , 허킹페이스 , 스트림릿을 설치한다.
!pip install openai==1.4.0
!pip install huggingface-hub==0.19.4
!pip install streamlit==1.29.0
무료 제공 API는 제약으로 사용이 힘들다.
유로료 가입하여 테스트 하자.
openapi API key 발급받기
1
OPENAI 가입하기
https://platform.openai.com/docs/overview
나는 구글 계정으로 가입
2
Dashboard 에서 API Key 발급
brtest1-chat
3
결재
10달러 결재 = 1달 1만 4천원정도 결재
https://platform.openai.com/account/billing/overview
1
허깅 페이스 ?
다양한 모델과 학습 스크립트를 구현해 놓은 모듈.
https://huggingface.co/settings/tokens
나는 google 계정으로 가입
허깅 페이스 API KEY 발급 받기
brtest1-hugg
2
API 키 설정하기
import os
os.environ["OPENAI_API_KEY"]="sk-proj-gmPrO"
import os
os.environ["HUGGINGFACEHUB_API_KEY"]="hf_InnyCz"
1
2
3
코랩 실행
코드 실행은 SHIFT + ENTER 키
https://colab.research.google.com/?hl=ko
4
5
# 문서 가져 오기
# pdf파일은 코랩에 올려 놓는다
코랩 왼쪽 메뉴
# 문서 가져 오기
from langchain.document_loaders import PyPDFLoader
loader = PyPDFLoader("t.pdf")
document = loader.load()
document[5].page_content[:5000]
6
임베딩 처리
7
문장이 숫자의 나열인 벡터로 변경된다.
1
2
실행
1
2
아나콘다 환경
Anaconda Prompt
jupyter notebook
File - New notebook
3
!pip install langchain
!pip install openai
!pip install pypdf
!pip install tiktoken
!pip install faiss-cpu
!pip install sentence-transformers
실행은 SHIFT + ENTER 키
(5분 걸림)
4
샘플 pdf 다운로드
https://github.com/gilbutITbook/080413/blob/main/Data/The_Adventures_of_Tom_Sawyer.pdf
5
from langchain.document_loaders import PyPDFLoader
loader = PyPDFLoader("c:/3/The_Adventures_of_Tom_Sawyer.pdf")
document = loader.load()
document[5].page_content[:5000]
6
pip show langchain
메모리 = 데이터를 저장하는 공간
데이터 = 대화 과정에서 발생하는 데이터
메모리 실습
1
windows 10 pc에서
Anaconda Prompt
jupyter notebook
2
3
!pip install langchain
!pip install streamlit
!pip install openai
4
C:\Users\seo\anaconda3\envs\llm\Scripts
5
실습
1
순서
상세
2
# 코랩
https://colab.research.google.com/?hl=ko
3
# 여러 라이브러리 설치
!pip install unstructured
실행
SHIFT + ENTER
4
#AI 파일을 코랩이 올리자
from langchain.document_loaders import TextLoader
documents = TextLoader("AI.txt").load()
5
# 문서를 청크로 분할
def split_docs(documents,chunk_size=1000,chunk_overlap=20):
text_splitter = RecursiveCharacterTextSplitter(chunk_size=chunk_size, chunk_overlap=chunk_overlap)
docs = text_splitter.split_documents(documents)
return docs
# docs 변수에 분할 문서를 저장
docs = split_docs(documents)
6
#OpenAI의 임베딩 모델 사용
from langchain_openai import OpenAIEmbeddings
api_key="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"
embeddings = OpenAIEmbeddings(model="text-embedding-ada-002", api_key=api_key)
# Chromdb에 벡터 저장, 저장 장소는 c:/data
7
model_name = "gpt-3.5-turbo" #GPT-3.5-turbo 모델 사용
llm = ChatOpenAI(model_name=model_name, api_key=api_key)
# Q&A 체인을 사용하여 쿼리에 대한 답변 얻기
from langchain.chains.question_answering import load_qa_chain
chain = load_qa_chain(llm, chain_type="stuff",verbose=True)
# 쿼리를 작성하고 유사성 검색을 수행하여 답변을 생성,따라서 txt에 있는 내용을 질의해야 합니다
query = "AI란?"
8
결과
https://brunch.co.kr/@topasvga/3865