LLM(Large Language Model)은 질문에 대해 확률적으로 다음 토큰을 예측하는 모델입니다. 즉, 우리가 던지는 질문(프롬프트)이 문제 정의 그 자체가 됩니다.
같은 질문이라도:
결과 품질이 달라지는 이유가 바로 여기에 있습니다.
➡️ Prompt Engineering이란,
LLM이 문제를 정확히 이해하도록 질문을 설계하는 기술
LangChain에서는 프롬프트를 코드 레벨에서 구조화할 수 있습니다. 그 핵심이 PromptTemplate입니다.
from langchain_core.prompts import PromptTemplate
prompt = PromptTemplate.from_template(
"{product}에 대한 {length}자 이내의 광고 문구를 작성해주세요."
)
prompt.format(product="아이폰 16", length="50")
왜 중요한가?
PromptTemplate은 이후 RAG, Chain, Agent의 기본 단위가 됩니다.
ChatGPT 같은 대화형 LLM은 단순 문자열이 아니라 역할 기반 메시지를 입력으로 받습니다.
from langchain_core.prompts import ChatPromptTemplate
chat_prompt = ChatPromptTemplate.from_messages([
("system", "당신은 Python 전문가입니다."),
("human", "리스트 컴프리헨션이 뭐예요?")
])
➡️ 같은 질문이라도 System Message에 따라 답변 수준이 달라집니다.
실제 서비스에서는 이전 대화 맥락 유지가 필수입니다.
from langchain_core.prompts import MessagesPlaceholder
ChatPromptTemplate.from_messages([
("system", "도움이 되는 AI입니다."),
MessagesPlaceholder(variable_name="history"),
("human", "{question}")
])
이를 통해:
구현이 가능해집니다.
LLM에게 규칙을 말로 설명하는 것보다 예시를 보여주는 것이 효과적입니다.
("system", """
텍스트 감정을 분석하세요.
예시:
- 좋아요 → 긍정
- 별로예요 → 부정
""")
Few-shot Prompting은 분류, 포맷 고정, 일관된 출력에서 매우 강력합니다.
1일차에서는 모델 이전에 프롬프트가 설계의 핵심이라는 점을 강조했습니다.
다음 글에서는 오늘 만든 프롬프트를 실제 LLM과 연결하고, LangChain의 핵심 문법인 LCEL(LangChain Expression Language)을 통해 "LLM 파이프라인"을 어떻게 조립하는지 다뤄보겠습니다.
| RAG 파이프라인 완벽 이해하기 (0) | 2026.02.19 |
|---|---|
| 들어가며: 왜 RAG와 LangChain인가? (0) | 2025.11.12 |