1. langchain-upstage, python-dotenv 설치
# Upstage 인 경우
% pip install langchain-upstage python-dotenv
# OpenAI 인 경우
% pip install langchain-openai python-dotenv
Collecting langchain-upstage
Downloading langchain_upstage-0.6.0-py3-none-any.whl (20 kB)
Requirement already satisfied: python-dotenv in /Users/exoluse/.pyenv/versions/3.10.16/envs/llm-app/lib/python3.10/site-packages (1.0.1)
Collecting pypdf<5.0.0,>=4.2.0
Downloading pypdf-4.3.1-py3-none-any.whl (295 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 295.8/295.8 kB 10.1 MB/s eta 0:00:00
Collecting tokenizers<0.20.0,>=0.19.1
Downloading tokenizers-0.19.1-cp310-cp310-macosx_11_0_arm64.whl (2.4 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.4/2.4 MB 25.3 MB/s eta 0:00:00a 0:00:01
Requirement already satisfied: requests<3.0.0,>=2.31.0 in /Users/exoluse/.pyenv/versions/3.10.16/envs/llm-app/lib/python3.10/site-packages (from langchain-upstage) (2.32.3)
Requirement already satisfied: langchain-openai<0.4,>=0.3 in /Users/exoluse/.pyenv/versions/3.10.16/envs/llm-app/lib/python3.10/site-packages (from langchain-upstage) (0.3.9)
Requirement already satisfied: langchain-core<0.4.0,>=0.3.29 in /Users/exoluse/.pyenv/versions/3.10.16/envs/llm-app/lib/python3.10/site-packages (from langchain-upstage) (0.3.47)
Requirement already satisfied: typing-extensions>=4.7 in /Users/exoluse/.pyenv/versions/3.10.16/envs/llm-app/lib/python3.10/site-packages (from langchain-core<0.4.0,>=0.3.29->langchain-upstage) (4.12.2)
Requirement already satisfied: jsonpatch<2.0,>=1.33 in /Users/exoluse/.pyenv/versions/3.10.16/envs/llm-app/lib/python3.10/site-packages (from langchain-core<0.4.0,>=0.3.29->langchain-upstage) (1.33)
Requirement already satisfied: pydantic<3.0.0,>=2.5.2 in /Users/exoluse/.pyenv/versions/3.10.16/envs/llm-app/lib/python3.10/site-packages (from langchain-core<0.4.0,>=0.3.29->langchain-upstage) (2.10.6)
Requirement already satisfied: tenacity!=8.4.0,<10.0.0,>=8.1.0 in /Users/exoluse/.pyenv/versions/3.10.16/envs/llm-app/lib/python3.10/site-packages (from langchain-core<0.4.0,>=0.3.29->langchain-upstage) (9.0.0)
Requirement already satisfied: packaging<25,>=23.2 in /Users/exoluse/.pyenv/versions/3.10.16/envs/llm-app/lib/python3.10/site-packages (from langchain-core<0.4.0,>=0.3.29->langchain-upstage) (24.2)
Requirement already satisfied: langsmith<0.4,>=0.1.125 in /Users/exoluse/.pyenv/versions/3.10.16/envs/llm-app/lib/python3.10/site-packages (from langchain-core<0.4.0,>=0.3.29->langchain-upstage) (0.3.18)
Requirement already satisfied: PyYAML>=5.3 in /Users/exoluse/.pyenv/versions/3.10.16/envs/llm-app/lib/python3.10/site-packages (from langchain-core<0.4.0,>=0.3.29->langchain-upstage) (6.0.2)
Requirement already satisfied: tiktoken<1,>=0.7 in /Users/exoluse/.pyenv/versions/3.10.16/envs/llm-app/lib/python3.10/site-packages (from langchain-openai<0.4,>=0.3->langchain-upstage) (0.9.0)
Requirement already satisfied: openai<2.0.0,>=1.66.3 in /Users/exoluse/.pyenv/versions/3.10.16/envs/llm-app/lib/python3.10/site-packages (from langchain-openai<0.4,>=0.3->langchain-upstage) (1.68.2)
Requirement already satisfied: charset-normalizer<4,>=2 in /Users/exoluse/.pyenv/versions/3.10.16/envs/llm-app/lib/python3.10/site-packages (from requests<3.0.0,>=2.31.0->langchain-upstage) (3.4.1)
Requirement already satisfied: certifi>=2017.4.17 in /Users/exoluse/.pyenv/versions/3.10.16/envs/llm-app/lib/python3.10/site-packages (from requests<3.0.0,>=2.31.0->langchain-upstage) (2025.1.31)
Requirement already satisfied: urllib3<3,>=1.21.1 in /Users/exoluse/.pyenv/versions/3.10.16/envs/llm-app/lib/python3.10/site-packages (from requests<3.0.0,>=2.31.0->langchain-upstage) (2.3.0)
Requirement already satisfied: idna<4,>=2.5 in /Users/exoluse/.pyenv/versions/3.10.16/envs/llm-app/lib/python3.10/site-packages (from requests<3.0.0,>=2.31.0->langchain-upstage) (3.10)
...
[notice] A new release of pip is available: 23.0.1 -> 25.0.1
[notice] To update, run: pip install --upgrade pip
Note: you may need to restart the kernel to use updated packages.
Output is truncated. View as a scrollable element or open in a text editor. Adjust cell output settings...
2. .env 파일 만들기.
vi .env
# Upstage 인 경우 UPSTAGE_API_KEY 가 기본 설정.
UPSTAGE_API_KEY=up_LXQMskwzMekt..........
# OpanAI 인 경우 OPENAI_API_KEY 가 기본 설정.
# OPENAI_API_KEY=sk-proj-qp7ZyK12kfZ9o........
3. 환경변수 로드
from dotenv import load_dotenv
load_dotenv()
4. 랭체인 선언
# OpenAI 인 경우
# from langchain_openai import ChatOpenAI
# llm_opanai = ChatOpenAI()
# Upstage 인 경우
from langchain_upstage import ChatUpstage
llm_upstage = ChatUpstage()
5. invoke 로 실행
llm_upstage.invoke("질문을 해봅시다...")