ChatGPT API 활용
https://colab.research.google.com/drive/1Ain-2t_OI_llY0lSn0NEPJ1E7kNVdx5J?usp=sharing
최상위 폴더의 .env 파일 생성 후,
OPENAI_API_KEY=your_openai_api_key 작성
일반적인 ChatGPT API 사용
# pip install langchain-openai python-dotenv
from dotenv import load_dotenv
from langchain_openai import ChatOpenAI
# 환경 변수 로드
load_dotenv()
# OpenAI 모델 초기화
llm = ChatOpenAI(model="gpt-3.5-turbo", temperature = 1)
result = llm.invoke('왜 파이썬이 가장 인기있는 프로그래밍 언어야?')
print(result.content)
Copy
ChatGPT처럼 실시간 응답 출력이 가능하도록 해보기
from langchain.callbacks.streaming_stdout import StreamingStdOutCallbackHandler
chatgpt = ChatOpenAI(model_name="gpt-3.5-turbo", streaming=True, callbacks=[StreamingStdOutCallbackHandler()], temperature = 1)
answer = chatgpt.predict("왜 파이썬이 가장 인기있는 프로그래밍 언어야?")
역할부여
from langchain_openai import ChatOpenAI
from langchain_core.messages import AIMessage, HumanMessage, SystemMessage
chatgpt = ChatOpenAI(model="gpt-3.5-turbo", temperature=1)
messages = [
SystemMessage(
content="너는 20년차 시니어 개발자야. 사용자의 질문에 매우 건방지게 대답해줘."
),
HumanMessage(
content="파이썬의 장점에 대해서 설명해줘."
),
]
response_langchain = chatgpt.invoke(messages)
print(response_langchain.content)
LLM 응답 캐싱하여 같은 질문에 더 빠르게 응답받기
from langchain_openai import OpenAI
from langchain.cache import InMemoryCache
from langchain.globals import set_llm_cache
# OpenAI 모델 초기화
llm = OpenAI(model="gpt-3.5-turbo-instruct", n=2, best_of=2)
%%time
# In-Memory 캐시 설정
set_llm_cache(InMemoryCache())
# 모델 예측
response = llm.invoke("Tell me a joke")
%%time
# The second time it is, so it goes faster
response = llm.invoke("Tell me a joke")
Copy
1. n=2
- 모델이 한 번의 요청에 대해 몇 개의 응답을 생성할지 지정하는 옵션
- n=2로 설정하면, 같은 질문에 대해 두 개의 서로 다른 응답을 생성
- 여러 개의 답변 중에서 적절한 것을 선택하거나 비교할 때 유용
2. best_of=2
- 모델이 내부적으로 여러 개의 답변을 생성한 후 가장 좋은 답변을 선택하는 옵션
- best_of=2이면, 모델이 2개의 답변 후보를 만들어 보고 그중 확률적으로 가장 좋은 것을 선택해서 반환
- 하지만 n 값과 함께 사용할 때 주의할 점
'LLM > LLM 공부' 카테고리의 다른 글
Retrieval-Text Embeddings (0) | 2025.03.07 |
---|---|
Retrieval - Text Splitters (0) | 2025.03.07 |
Retrieval - Document Loaders (0) | 2025.03.07 |
PromptTemplate에 대해 (0) | 2025.03.07 |
LangChain의 개념 (0) | 2025.03.07 |