LangChain 챗봇3장 · LangChain 기본 구조와 LCEL20 / 21← 이전목차다음 →MetaContents

3장. LangChain 기본 구조와 LCEL

정리

LCEL 체인의 세 부품, 세 손잡이와 체인 넓히기, 실습에서 확인한 숫자를 한 장에 모은 인포그래픽
  • LCEL 은 부품을 | 로 이어 체인을 만드는 방식입니다. prompt | model | parser 는 RunnableSequence 하나가 되고, 앞 부품의 결과가 뒤 부품의 입력이 됩니다.
  • 모든 부품은 invoke(하나), batch(여럿), stream(조각) 세 손잡이를 가집니다. 실습 2에서 batch 는 질문 3개의 답 3개를 넣은 차례 그대로 돌려줬고, 실습 5의 stream 은 44자 요약을 조각 44개로 내놓았습니다.
  • PromptTemplate 과 ChatPromptTemplate 은 {변수} 빈칸이 있는 틀입니다. partial 로 늘 같은 FAQ 를 먼저 채우면 질문만 넣으면 됩니다. 실습 1에서 FAQ 를 담은 시스템 메시지는 362 토큰으로, 보내는 토큰의 0.966 을 차지했습니다.
  • 체인을 지나는 값은 dict → ChatPromptValue → AIMessage → 글자열로 꼴이 바뀝니다. 실습 2의 엿보기 부품으로 체인 안에서도 같은 꼴이 흐르는 것을 확인했습니다.
  • ChatOpenAI 의 model, temperature, max_tokens, timeout 으로 모델 부품의 약속을 정합니다. 설치된 판에서 max_tokens 는 max_completion_tokens, timeout 은 request_timeout 과 같은 칸입니다.
  • 역할·형식·제약 지시와 퓨샷 예시는 답의 꼴을 잡습니다. 실습 4에서 보내는 토큰은 13, 91, 173 으로 늘었고, 예상 출력에서 답은 260자에서 80자 안팎으로 짧고 한결같아졌습니다.
  • RunnableParallel, RunnablePassthrough, RunnableLambda 로 체인을 갈래로 나누고, 원래 입력을 남기고, 내 함수를 끼웁니다. 실습 5에서 손님 글 하나로 요약, 키워드, 담당을 한 번에 정했습니다.
← 이전 절3장 · 프로젝트 1 — 여행지 소개 체인다음 절 →3장 · 확인문제와 해답