LangChain이란?
- 대규모 언어 모델(LLMs)을 활용하여 체인을 구성
- 이 체인을 통해 복잡한 작업을 자동화하고 쉽게 수행할 수 있도록 돕는 라이브러리
프롬프트(Prompt)
프롬프트란
- 인간이 인공지능(LLM)에게 전달하는 지시문으로, 모델의 응답을 결정짓는 핵심 입력
프롬프트의 역할
- LLM에게 무엇을 할지 설명
- 질문, 명령, 조건 등을 포함
- LLM의 출력 품질을 좌우하는 요소
LangChain에서의 프롬프트
- ChatPromptTemplate : 여러 메시지를 구조화하여 대화 설계
- 프롬프트 → LLM → 응답의 중심 구성요소
프롬프트 엔지니어링
프롬프트 엔지니어링이란?
- GPT에게 정확하고 유용한 응답을 얻기 위해 질문(프롬프트)을 설계하는 기술
왜 중요할까?
- GPT는 모호한 질문엔 모호하게 답합
- 정확한 출력은 좋은 입력(Prompt)에서 시작
- 역할 부여 / 조건 명시 / 맥락 제공 등으로 출력 퀄리티 차이 발생
따라서
- 명확한 방향 제시 중요
- “보고서 써줘” vs “3단 구성의 요약 보고서를 작성해줘(500자 이내)”
프롬프트 설계 핵심 구성 요소
구성요소 설명 예시
| 역할(Role | “넌 전력 분석 전문가야” |
| 맥락(Context) 및 목적(Goal) | "2024년 전력 수요 데이터를 바탕으로 간결한 요약 보고서를 작성해줘” |
| 답변 형식(Format) | "항목별 bullet-point로 정리해줘” |
ChatPromptTemplate
ChatPromptTemplate이란?
- 시스템 메시지, 사용자 메시지, AI 메시지 등 역할(role) 구분
- 다중 메시지 기반의 프롬프트 흐름을 구성할 수 있도록 도와주는 템플릿
메시지 종류
- SystemMessage : AI에게 역할/성격 지정
- “너는 친절하고 유머있는 상담사야”
- HumanMessage : 사용자 질문 또는 요청
- “요즘 너무 지치고 의욕이 없어. 어떻게 하면 좋을까?”
- AIMessage : AI 응답
예시
s_msg= "너는 친절하고 유머 있는 상담사야."
h_msg= "요즘 너무 지치고 의욕이 없어. 어떻게 하면 좋을까?"
chat_prompt = ChatPromptTemplate.from_messages([
("system", s_msg),
("human", h_msg),
])
llm = ChatOpenAI(temperature=1.1, model_kwargs={"top_p": 0.95})
messages = chat_prompt.format_messages()# 실제 메시지 객체 리스트를 생성
response = llm(messages)
print(response.content)
출력 구조화
Output Parser
- LLM은 기본적으로 텍스트(string)으로 반환
- 이런 텍스트를 리스트([”A”,”B”,”C”]), 숫자 값, JSON 포맷 등 우리가 원하는 형태로 가공해주는 도구
Output Parser 종류
- CommaSeparatedListOutputParser : 쉼표 구분 문자열 → 리스트로 변환
- StructuredOutputParser : JSON 기반 구조화 파싱
- PydanticOutputParser : 텍스트 → Pydantic 모델로 파싱
PydanticOutputParser
- Pydantic : 데이터를 정의하고 검증할 수 있는 파이썬 라이브러리
- 데이터 구조(스키마) 정의
- 타입이 맞는지 자동으로 검증(validation)
- Python 객체처럼 쓰면서도, JSON→Python 변환에 아주 유리
- dictionary : [key : value] 형태로 정의하되, value의 데이터 타입에 제한 없음
- JSON : 같은 key라면 value의 데이터 타입이 동일
# 1. Pydantic 모델 정의
class BookInfo(BaseModel):
title: str
author: str
year: int
# 2. 파서 생성
parser = PydanticOutputParser(pydantic_object=BookInfo)
https://github.com/427paul/AI_Agent/blob/main/AI_Agent_Basic/02_LangChain%EA%B8%B0%EC%B4%881.ipynb
AI_Agent/AI_Agent_Basic/02_LangChain기초1.ipynb at main · 427paul/AI_Agent
Contribute to 427paul/AI_Agent development by creating an account on GitHub.
github.com
'AI Agent > AI Agent의 이해' 카테고리의 다른 글
| 6. LangGraph 기초1 기본 그래프2 (0) | 2026.05.30 |
|---|---|
| 5. LangGraph 기초1 기본 그래프 (0) | 2026.05.29 |
| 4. Memory (1) | 2026.05.28 |
| 3. RAG 개념 이해 (0) | 2026.05.27 |
| 2. 메모리, RAG 개념 이해 (0) | 2026.05.26 |