AI Agent/AI Agent의 이해

1. LangChain 기초

427paul 2026. 5. 24. 17:50

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