LangChain | MessagePlaceholder | 프롬프트 템플릿

박성문·2025년 1월 18일

MessagePlaceholder란

LangChain에서 동적인 메시지 처리를 위한 중요한 기능이다. 
"나중에 채워 넣을 대화 내용을 위해 미리 만들어두는 빈 자리"이다.
앨범에서 "나중에 넣을 사진"을 위해 미리 공간을 남겨두는 것
문서 작성할 때 "여기에 나중에 __ 내용이 들어갈 예정"이라고 표시해두는 것

왜 필요한가?

AI 챗봇이 대화할 때 "이전에 했던 이야기들"을 기억하고 참고해야 할 때가 있다.
이럴 때 MessagePlaceholder를 통해 "여기에 이전 대화 내용이 들어갈 거야"라고 미리 자리를 만들어 둔다.

예시

필수 문법 구조

전체 구조

주요 규칙

MessagesPlaceholder의 variable_name과 format_messages의 파라미터명이 일치해야 한다.
대화 이력은 반드시 (역할, 메시지) 튜플의 리스트 형태로 구성
ChatPromptTemplate 생성 시 메시지들은 리스트로 묶어서 전달
format_messages() 호출 시 모든 변수에 값을 전달해야 한다.

대화 내용 요약 기능

주요 포인트

시스템 메시지에서 AI에게 요약 임무 부여
MessagesPlaceholder로 요약할 대화 내용 삽입
word_count 변수로 원하는 요약 길이 지정
StrOutputParser()를 통해 결과를 문자열로 반환

실행 과정

대화 내용을 conversation으로 전달
word_count로 요약 길이 지정
AI가 대화를 분석하고 지정된 단어 수로 요약
최종 요약본 반환 ("새로운 입사자 테디 만남.")

  • daglo 앱과 같은 기능이다.
    음성 녹음 → 텍스트 변환 (Speech-to-text)
profile
성문이

0개의 댓글