랭체인 프로그래밍: 개념과 응용 – 004

템플릿은 일정한 형식을 유지하며 반복적인 작업을 쉽게 처리할 수 있게 해줍니다. 예를 들어, 문서 작성 템플릿을 사용하면 매번 새로운 문서를 작성할 때마다 기본적인 레이아웃과 스타일이 동일하게 유지되며, 그 안에 내용만 바꾸면 됩니다.

프롬프트를 작성하다보면 많은 부분이 같고 일부분은 다른 것들이 등장합니다. 이럴 때, 고정된 부분은 그대로 유지하고 변경 부분만 상황에 맞게 교체하는 방식으로 템플릿을 활용할 수 있습니다.

프롬프트는 지시 문자열이니, 생성 지시에서 고정 부분과 변경 부분을 구분해서 변경 부분을 대체할 수 있으면 됩니다. 이러 필요가 있을 때 사용할 수 있는 문자열 다루는 기술이 ‘문자열 포맷팅과 변수 대체’입니다.

 

LangChain에서는 프롬프트 템플릿을 문자열 포맷팅과 변수 대체를 구현한 PromptTemplate로 지원합니다.

어떤 포맷팅을 사용해야 할까요? 고정된 부분과 변경될 부분을 구분해야 합니다. 고정 부분은 고정된 문자열로 작성하면 되고, 변경 부분은 변수로 지정합니다.

  • 변수를 다른 문자열과 구분하기 위해서 구분자를 사용합니다.
    • {} 중괄호를 사용해 변수 위치 표시
      • 예: "안녕하세요, {name}님"
  • 변경 부분이 결정된다는 것은 변수 값이 설정된다는 것입니다. 변수 값이 설정되면 변수 부분을 변수 값으로 대체해 전체 문장을 완성합니다.
    • .format() 메서드나 f-스트링이나 딕셔너리 매핑을 사용합니다.
      • template = “안녕하세요, {name}님. {age}세이시군요.”
      • result1 = template.format(name=”김철수”, age=30)
      • result2 = template.format(name=”이영희”, age=25)


    •  

LangChain의 PromptTemplate은 단순한 문자열 포맷팅을 넘어, LLM과의 상호작용을 더욱 정교하고 체계적으로 만들어주는 고급 도구입니다.

 

f-스트링(f-string)은 Python 3.6부터 도입된 문자열 포맷팅 방식으로, 문법이 간단하고 가독성이 뛰어난 것이 특징입니다. f-스트링은 문자열 앞에 f 또는 F를 붙이고 중괄호 {}안에 변수나 표현식을 직접 작성하여, 해당 값으로 문자열을 동적으로 생성하는 기능을 제공합니다.

기본 사용법:

  1. 변수 사용:

  1. 표현식 사용:

  1. 포맷 지정: f-스트링을 사용할 때, 데이터의 형식을 지정할 수 있습니다. 예를 들어, 소수점 이하 자리수를 조정할 수 있습니다.

장점:

  • 가독성: 변수를 문자열에 바로 삽입할 수 있어 코드가 더 직관적이고 읽기 쉬워집니다.
  • 성능: f-스트링은 다른 문자열 포맷팅 방법에 비해 성능이 우수합니다.
  • 유연성: 다양한 표현식을 직접 사용할 수 있어 코드 작성이 간결해집니다.

 

 

PromptTemplate

  • PromptTemplate.from_template
    • 프롬프트 템플릿 문자열로 부터 PromptTemplate을 생성한다.
    • invoke
      • 변수 값들로 프롬프트 템플릿의 가변 부분을 채워 프롬프트를 완성합니다.
        • 이 템플릿은 {role}{question} 자리 표시자를 포함하여, 런타임 시 실제 값을 동적으로 삽입할 수 있도록 합니다.

      •  

 

About the Author
(주)뉴테크프라임 대표 김현남입니다. 저에 대해 좀 더 알기를 원하시는 분은 아래 링크를 참조하세요. http://www.umlcert.com/kimhn/

Leave a Reply

*