1. 환경변수 설정
환경변수 관리 패키지 설치
pip install python-dotenv
OR
conda install python-dotenv
프로젝트 루트 디렉토리에 .env 파일을 생성
파일에 API 키 입력
OPENAI_API_KEY=API_XXXX_XXX_발급받은 키입력
2. API 키 읽어 오는지 확인
from dotenv import load_dotenv
import os
load_dotenv()
print(f"[API KEY]\n{os.environ['OPENAI_API_KEY']}")
3. LangChain 업데이트 및 관련 패키지 설치
pip install -U langchain langchain-community langchain-experimental langchain-core langchain-openai langsmith
4. OPEN AI 버전 확인
from dotenv import load_dotenv
import os
import openai
load_dotenv()
# open ai api key 확인
#print(f"[API KEY]\n{os.environ['OPENAI_API_KEY']}")
# open ai 버전 확인
print(f"[open ai version]\n{openai.__version__}")
5. ChatOpenAI 옵션값 설정
- OpenAI 사의 채팅전용 Large Languate Model(llm)
- 객체를 생성할 때 아래와 같이 옵션 값을 설정 할 수 있습니다.
1) temperature
사용할 샘플링 설정입니다. 0과 2 사이에서 선택합니다. 0으로 설정하면 동일한 질문을 할때 동일한 답변이 나올 확율이 높고 숫자가 올라 갈수로 랜덤하게 적용이 되어서 동일한 질문을 하여도 동일한 답이 아닌 다른 답이 나올 확율을 높입니다.
2) max_tokens
채팅에서 생성할 토큰의 최대 계수 입니다.
3) model_name
적용 가능한 모델 리스트
https://platform.openai.com/docs/models
from dotenv import load_dotenv
import os
import openai
from langchain_openai import ChatOpenAI
load_dotenv()
# open ai api key 확인
#print(f"[API KEY]\n{os.environ['OPENAI_API_KEY']}")
# open ai 버전 확인
print(f"[open ai version]\n{openai.__version__}")
# 객체 생성
llm = ChatOpenAI(
temperature=0.1, # 창의성 (0.0 ~ 2.0)
max_tokens=2048, # 최대 토큰수
model_name="gpt-3.5-turbo", # 모델명
)
# 질의내용
question = "대한민국의 수도는 어디인가요?"
# 질의
print(f"[답변]: {llm.invoke(question)}")
[답변] : content='대한민국의 수도는 서울입니다.' response_metadata={'token_usage': {'completion_tokens': 15, 'prompt_tokens': 24, 'total_tokens': 39}, 'model_name': 'gpt-3.5-turbo', 'system_fingerprint': None, 'finish_reason': 'stop', 'logprobs': None} id='run-c4b78ed7-cc22-48d7-a2f2-c2fb5a9314c2-0'
6. 프롬프트 템플릿의 사용 방법
PromptTemplate
사용자의 입력 변수를 사용하여 완전한 프롬프트 문자열을 만드는데 사용되는 템플릿입니다.
1. template : 템플릿 문자열입니다. 이 문자열 내에서 중괄호 {} 는 변수를 나타냅니다.
2. input_variables : 중괄호 안에 들어갈 변수의 이름을 리스트로 정의합니다.
input_variables
input_variables는 PromptTemplate에서 사용되는 변수의 이름을 정의하는 리스트입니다.
사용방법 : 리스트 형식으로 변수 이름을 정의합니다.
from dotenv import load_dotenv
import os
import openai
from langchain_openai import ChatOpenAI
from langchain.prompts import PromptTemplate
load_dotenv()
# open ai api key 확인
#print(f"[API KEY]\n{os.environ['OPENAI_API_KEY']}")
# open ai 버전 확인
#print(f"[open ai version]\n{openai.__version__}")
# 객체 생성
# llm = ChatOpenAI(
# temperature=0.1, # 창의성 (0.0 ~ 2.0)
# max_tokens=2048, # 최대 토큰수
# model_name="gpt-3.5-turbo", # 모델명
# )
# 질의내용
#question = "대한민국의 수도는 어디인가요?"
# 질의
#print(f"[답변]: {llm.invoke(question)}")
# promptTemplate
# 질문 템플릿 형식 정의
template = "{country}의 수도가 어디지 그 수도에서 {food} 가격이 어떻게 되지?"
# 템플릿 완성
prompt = PromptTemplate.from_template(template=template)
print(f"[prompt] : {prompt}");
[prompt] : input_variables=['country', 'food'] template='{country}의 수도가 어디지 그 수도에서 {food} 가격이 어떻게 되지?'
LLMChain 객체
- LLMChain은 특정 PromptTemplate와 연결된 체인 객체를 생성합니다.
prompt : 앞서 정의한 PromptTemplate 객체를 사용합니다.
llm : 언어 모델을 나타내며, 정의된 모델을 사용합니다.
노트스타일 인용구 안내
'IT > AI' 카테고리의 다른 글
OpenAI API 키 발급 (0) | 2024.05.25 |
---|---|
랭체인 LangChain 설치하기 (0) | 2024.05.25 |
LangChain 구성도 (LLM) prompts, Chains, Agents,Memory (0) | 2024.05.25 |
Ubunto 22.04[우분투 22.04] code-server 설치하기 (0) | 2024.05.20 |
jupyterlab(주피터노트북) 외부접속 설정 (0) | 2024.05.20 |
댓글