랭체인 완벽 입문-1/7
Windows PC에 파이썬 설치, VSCode 설치
코랩 사용
1
챗GPT ?
OPEN AI가 2022년 11월에 공개한 챗GPT.
AI와 대화 하는 웹 서비스.
2
OPENAI API ?
좀더 세밀하게 OPEN AI서비스를 사용할수 있도록 API를 제공한다.
OPENAI의 API는 사용량에 따라 요금이 부과 되는 종량제이다.
사용량은 API호출 횟수가 아니다.
요금은 사용한 토큰 수를 기준으로 한다.
3
# poe.com에서 챗GPT 말고 다른 언어 모델 사용해보기~
# 나는 구글 계정으로 가입
1
언어 모델만으로 불가능한 작업이 있다.
학습한 지식 범위를 넘어선 정보
너무 복잡한 작업 내용
이러한 한계를 극복하는것이 RAG이다.
언어 모델이 알지 못하는 정보를 대답하게 하는 RAG(Retrival-Augumented Generation, 검색 증강 생성)
검색을 통해 더 보강하는 생성형 AI 이다.
2
랭체인은 애플리케이션 개발을 지원하는 오픈소스 라이블러리 이다.
랭체인은 언어모델이 아니다.
개발을 돕는 라이브러리라서 외부 언어 모델과 함께 사용해야 한다.
랭체인은 OPEN AI와 같은 언어 모델을 결합해, 간단한 텍스트 생성 뿐만 아니라 자연어를 이해하고, 특정 문제에 합을 생성하거나하는 애플리케이션을 개발하는 등 기존의 프로그래밍에서 어려웠던 작업을 효율적으로 수행 할수 있게 해준다.
3
1
Model I/O
언어 모델을 쉽게 다를수 있게 한다.
프롬프트 준비, 언어 모델 호출, 결과 수신
2
Retrieval (검색)
알수 없는 데이터를 다룬다.
PDF 활용 등
RAG를 통해 이 문제를 해결 한다.
Memory
과거의 대화를 기억
챗GPT처럼 여러 개의 스레드를 각각 대화 기록에 따라 답변을 할수 있다.
4
Chains
여러 프로세스를 통합한다.
여러 모듈과 다른 기능을 조합해 하나의 애플리케이션을 만들수 있다.
5
Agents
자율적으로 외부와 상호작용해 서비스를 만드는 모듈이다.
검색결과를 txt 파일에 저장하는 작업을 하기 위해서는 웹 페이지나 파일등 외부 데이터에 언어 모델이 상호작용해야 한다.
6
Callbacks
다양한 이벤트 발생을 처리한다.
단독으로 사용 불가.
다른 모듈과 결합하여 사용
주로 로그 출력이나 외부 라이브러리와 연동하여 사용한다.
코랩에 파이썬 개발 환경이 세팅되어 있다.
구글 제미나이가 버전 업그레이드에 따른 라이브러리나 오류 문제와 해결법을 알려준다.
https://colab.research.google.com/
# 파이썬 실행 환경 준비
Windows 시작 메뉴 > Microsoft Store > 파이썬 3.11 설치 - Python Software Foundation > 설치
# 기타
Python 3.11 - Windows에서 무료 다운로드 및 설치 | Microsoft Store
2
Windows 버전
Python Releases for Windows | Python.org
Add python.exe to PATH 체크후 설치
3
cmd
PS
python3
3.11로 설치하도록 한다!!
# 설치가 제대로 안된경우
python3 --version
Python
// 정상 설치된 경우
python3 --version
Python 3.11
4
#langchain 설치
python3 -m pip install langchain
1
# Visual studio code 설치
https://code.visualstudio.com/download
pc에 작업 디렉토리 생성
1chatgpt
2
# VSCODE 확장 프로그램 설치
pylance
3
Auto Import Completions 체크
클레스 이름 자동으로 후보 리스트 나옴
4
# OPENAI API 키 받아 두기
https://platform.openai.com/api-keys
5
# Windows 에 파워쉘 설치
Windows에 PowerShell 설치 - PowerShell | Microsoft Learn
winget search Microsoft.PowerShell
6
# OPEN_API_KEY 변수로 저장하기
# 설정후 pc 한번 리부팅해야 함
도스창
powershell
[System.Environment]::SetEnvironmentVariable('OPEN_API_KEY','sk-proj-lnrO','User')
echo $env:OPEN_API_KEY
# 설정후 pc 한번 리부팅해야 함
확인
echo $env:OPEN_API_KEY
7
# 랭체인과 필요한 라이블러리 설치
powershell
wget https://raw.githubusercontent.com/wikibook/langchain/master/requirements.txt -Outfile requirements.txt
python3 -m pip install -r .\requirements.txt
8
# openai 설치
python3 -m pip install openai==0.28
9
소스 다운로드
https://github.com/wikibook/langchain
Code > Download ZIP
10
소스 열기
왼쪽 위 탐색기 > 파일 > 폴더 열기 > 01_SETTING
11
# Vscode 터미널 열기
# VSCODE > 오른쪽위 터미널(T) > 새 터미널
powershell
pwd
1
코랩 사용
https://colab.research.google.com/
2
# 샘플 코드
https://github.com/wikibook/langchain/tree/master/01_setting
3
# 샘플 코드 실행하기
pip install openai==0.28
# colab 실행
# 코드에 API키 추가 필요.
openai.api_key = "sk-phYAxCTN9F8WYKVU2jOIV2s-b14YPAhYTrpkVB0-nJrncpCfKDxouo0A"
import json
import openai #← OpenAI에서 제공하는 Python 패키지 가져오기
response = openai.ChatCompletion.create( #←OpenAI API를 호출하여 언어 모델을 호출합니다.
model="gpt-3.5-turbo", #← 호출할 언어 모델의 이름
messages=[
{
"role": "user",
"content": "iPhone8 출시일을 알려주세요" #←입력할 문장(프롬프트)
},
]
)
print(json.dumps(response, indent=2, ensure_ascii=False))
4
# vscode > 터미널 실행
python3 .\sample.py
결과
5
# ChatCompletion 호출!!!
VSCore > sample.py 에서 content 내용 변경
7
OPENAI의 다른 모델인 Completion 호출!!!
랭체인을 사용하지 않고 사용.
import json
import openai
response = openai.Completion.create( #←ChatCompletion 대신 Completion을 사용
engine="gpt-3.5-turbo-instruct", #←model 대신 engine을 지정하고 gpt-3.5-turbo-instruct를 지정
prompt="오늘 날씨가 매우 좋고 기분이", #←prompt를 지정
stop=".", #←문자가 나타나면 문장 종료
max_tokens=100, #← 최대 토큰 수
n=2, #← 생성할 문장 수
temperature=0.5 #←다양성을 나타내는 매개변수
)
print(json.dumps(response, indent=2, ensure_ascii=False))
답변
import json
import openai
response = openai.Completion.create( #←ChatCompletion 대신 Completion을 사용
engine="gpt-3.5-turbo-instruct", #←model 대신 engine을 지정하고 gpt-3.5-turbo-instruct를 지정
prompt="오늘 날씨가 매우 좋고 기분이", #←prompt를 지정
stop=".", #←문자가 나타나면 문장 종료
max_tokens=100, #← 최대 토큰 수
n=2, #← 생성할 문장 수
temperature=0.5 #←다양성을 나타내는 매개변수
)
print(json.dumps(response, indent=2, ensure_ascii=False))
8
# 코랩 사용시 오류에 대해 알려줌
버전이 변경되며 함수가 변경됨
구글 제미나이 AI가 오류 설명해줌!!
10
# 책 내용 = 구 함수
# 함수 변경 됨 , 구글 제미나이 AI가 오류 설명해줌!!
import json
import openai #← OpenAI에서 제공하는 Python 패키지 가져오기
# OpenAI API Key 설정
# openai.api_key = "YOUR_API_KEY" # 주석 해제 후 API Key 입력
12
# VSCODE
# API는 매개변수를 지정해 답변을 변경할수 있다.
response = client.chat.completions.create( # Use client.chat.completions.create for chat completions
model="gpt-3.5-turbo", # Use 'model' instead of 'engine'
messages=[
{"role": "user", "content": "냉면 원재료 알려줘"},
],
max_tokens=100, # Maximum number of tokens
n=2, # Number of completions to generate
temperature=0.5, # Controls randomness
stop="." # Stop sequence
)
print(response.choices[0].message.content)
답변
냉면의 주요 원재료는 다음과 같습니다:
1
# 오류시 예전 함수 사용 - 샘플코드 참고
response = openai.ChatCompletion.create( #←OpenAI API를 호출하여 언어 모델을 호출합니다.
# 최근 버전에서는 openai.ChatCompletion.create 이 client.chat.completions.create 으로 변경됨.
1
OPENAI API 버전에 따라 함수가 변경된다.
코랩에서 돌려보면 제미나이 AI가 조치법을 알려준다.
예)
# 오류시 예전 함수 사용 - 샘플코드 참고
예전 버전 openai.ChatCompletion
최근버전 client.chat.completions
response = openai.ChatCompletion.create( #←OpenAI API를 호출하여 언어 모델을 호출합니다.
# 최근 버전에서는 openai.ChatCompletion.create 이 client.chat.completions.create 으로 변경됨.
https://brunch.co.kr/@topasvga/3902