본문 바로가기
IT/AI

OpenAI API 접속 설정

by cbwstar 2024. 5. 25.
728x90
반응형
 
 
목차

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 : 언어 모델을 나타내며, 정의된 모델을 사용합니다.

 

 

노트스타일 인용구 안내

 

728x90
반응형

댓글



"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

loading