260811

u·2026년 8월 11일

TIL

목록 보기
1/29

LLM 애플리케이션 및 에이전트

LangChain 기본 구조(Model·Prompt·Output Parser)·LCEL 체인, Runnable·Memory 구성 및 기본 워크플로우 실습

  • LangChain을 쓰는 이유!
    사용 방법은 통일.
    모델만 다르게 불러오면 다른 코드를 바꾸지 않아도 됨.

  • HumanMessage -> 사용자가 하는 질문, 요청

  • SystemMessage -> 모델의 역할을 정함. 너는 @@이야.

  • ChatPromptTemplate.from_message -> 'system',( ), 'human', ( ) => 꼭 위에 ~Message 만들지 않아도 튜플로 적으면 됨.

  • 템플릿의 invoke는 완성된 프롬프트를 만드는것. 모델을 부르는 것은 X.

  • 프롬프트를 자료로 만들기 - YAML
    프롬프트 이름 :
    description: 명령
    system: 너는 @@이야
    human: 이름: 특징: 적기

  • StrOutputParser; parser -> 문자열로 만들어줌.

  • LCEL - 파이프 |로 부품 잇기
    : prompt | model | parser

  • invoke : 입력

  • batch : 입력 여러개를 한번에 처리하는 메서드

  • stream : 조각으로 나누기

  • 체인 잇기
    변수 {draft}
    앞 출력 -> 뒤 입력


  • Runnable ; 공통 규약

  • 다리로 체인 잇기 :
    to draft 로 체인을 이어줄 수 있음
    -> invoke 한번만 써도 됨 등등 .. 의 이점
    *문법: to_draft = RunnableLambda(lambda text: {'draft': text})

  • 함수를 넣고 싶을 때: RunnableLambda(함수명)

  • 두 체인을 동시에 묶을 때: RunnableParallel(키=체인(부품), 키=체인)

  • 원본을 남기고 싶을 때: original=RunnablePassthrough(),


장기기억&단기기억

  • 프롬프트 중간에 대화기록을 넣는 부품:
    MessagePlaceholder
    ; [('system', 역할), MessagesPlaceholder('history'), ('human', '{input}')]

0개의 댓글