본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.
Part 2. 체인 파이프라인의 기본 요소
01. PromptTemplate, 부분변수(partial_variables)
방법 1. from_template() 메소드를 사용하여 PromptTemplate 객체 생성
- 치환될 변수를 {변수} 로 묶어서 템플릿 정의
# template 정의
template = "{country}의 수도는 어디인가요?"
# from_template 메소드를 이용하여 PromptTemplate 객체 생성
prompt = PromptTemplate.from_template(template)
# chain 생성
chain = prompt | llm
llm 과 묶어서 chain을 만들 때는 변수를 채워줄 필요 없음.
# country 변수에 입력된 값이 자동으로 치환되어 수행됨
chain.invoke("대한민국").content
invoke 할 때 변수를 넣어주면 됨
chain.invoke({"country" : "대한민국"}).content
정석 코드는 위처럼 country라는 키값에 변수를 채워줌.
방법 2. PromptTemplate 객체 생성과 동시에 prompt 생성
추가 유효성 검사를 위해 input_variables 를 명시적으로 지정
→ 이러한 변수는 인스턴스화 중에 템플릿 문자열에 있는 변수와 비교하여 불일치하는 경우 예외를 발생시킴
# template 정의
template = "{country1}과 {country2}의 수도는 각각 어디인가요?"
# PromptTemplate 객체를 활용하여 prompt_template 생성
prompt = PromptTemplate(
template=template,
input_variables=["country1"],
partial_variables={
"country2": "미국" # dictionary 형태로 partial_variables를 전달
},
)
prompt
변수가 {country1}, {country2} 2개이므로 두 변수를 반드 다 채워줘야하지만,
input_variables = ["country1"] 1개만 적혀있어. 나머지 하나를 정리 없이 채우지도 않는다면 오류 발생.
partial_variables 라는 매개변수로 country2를 채워주고 있어.
→ 원래 변수로 받아야하는 것은 country1, country2 모두 다 넣어줘야 하는 상황이지만 country1 하나만 변수로 두고 partial
variables로 country2에 값을 "미국"이라는 값을 넣어줌으로써 변수가 채워진 상태가 됨.
prompt.format(country1="대한민국")
country1 변수에 "대한민국"이라는 값을 채워주면 오류 발생 X
※ partial variables 를 쓰는 이유
입력받아야하는 변수가 두 개 이상인 경우, 중간 과정에서 변수가 확정되어서 채워주고자 할 때 사용.
prompt = PromptTemplate.from_template(template)
prompt
PromptTemplate(input_variables=['country1', 'country2'], input_types={}, partial_variables={}, template='{country1}과 {country2}의 수도는 각각 어디인가요?')
→ 기존 template에는 변수가 2개 들어가야하지만, partial로 country2를 캐나다로 채우면
prompt.partial(country2="캐나다")
PromptTemplate(input_variables=['country1'], input_types={}, partial_variables={'country2': '캐나다'}, template='{country1}과 {country2}의 수도는 각각 어디인가요?')
→ 중간에 변수가 하나 채워져서 남은 변수는 1개.
기존에 partial로 변수를 하나 채워줬다 하더라도
chain.invoke({"country1": "대한민국", "country2": "호주"}).content
invoke를 사용하여 변수 두 개를 다 선언해준다면, 새로운 값으로 덮어씌워지게 됨.
partial_variables : 부분 변수 채움
partial을 사용하는 일반적인 용도는 함수를 부분적으로 사용하는 것. 이는 항상 공통된 방식으로 가져오고 싶은 변수가 있는 경우 사용.
오늘도 열심히 들어봤어요. 아직은 코드가 많이 어렵지는 않아서 재미있어요!! 쑥쑥 성장해볼게요. 랭체인 전문가가 되는 그날까지...




커리어 성장을 위한 최고의 실무교육 아카데미 | 패스트캠퍼스
성인 교육 서비스 기업, 패스트캠퍼스는 개인과 조직의 실질적인 '업(業)'의 성장을 돕고자 모든 종류의 교육 콘텐츠 서비스를 제공하는 대한민국 No. 1 교육 서비스 회사입니다.
fastcampus.co.kr
'RAG' 카테고리의 다른 글
| 패스트캠퍼스 환급챌린지 11일차 : 테디노트의 RAG 비법노트 강의 후기 (0) | 2025.11.22 |
|---|---|
| 패스트캠퍼스 환급챌린지 10일차 : 테디노트의 RAG 비법노트 강의 후기 (1) | 2025.11.21 |
| 패스트캠퍼스 환급챌린지 8일차 : 테디노트의 RAG 비법노트 강의 후기 (0) | 2025.11.19 |
| 패스트캠퍼스 환급챌린지 7일차 : 테디노트의 RAG 비법노트 강의 후기 (0) | 2025.11.18 |
| 패스트캠퍼스 환급챌린지 6일차 : 테디노트의 RAG 비법노트 강의 후기 (0) | 2025.11.17 |