3장. LangChain 기본 구조와 LCEL
먼저 큰 그림부터
컨베이어 벨트가 있는 주방을 떠올려 보세요. 손님의 주문이 들어오면 첫 자리의 직원이 빈칸이 있는 주문서 양식에 메뉴와 맵기를 채웁니다. 벨트가 주문서를 요리사에게 나르고, 요리사가 요리를 하면 벨트가 다시 그릇을 다음 자리로 나릅니다. 마지막 자리의 직원은 요리만 접시에 깔끔하게 담아 내놓습니다. 사람마다 맡은 일이 하나뿐이고, 벨트가 그 사이를 이어 줍니다. 이 장에서 만드는 LangChain 체인이 이 주방과 똑같이 움직입니다.
이 장에서는 세 가지를 챙겨 갑니다. 첫째, 프롬프트 템플릿(주문서 양식), 모델(요리사), 출력 파서(담는 사람)라는 세 부품을 | 기호(벨트)로 이어 체인을 만드는 LCEL 의 짜임. 둘째, 모든 부품이 invoke, batch, stream 이라는 같은 손잡이를 가져서 부품을 바꿔 끼워도 쓰는 법이 그대로라는 것. 셋째, 같은 모델이라도 프롬프트에 역할·형식·제약을 적고 예시를 보여 주면 답의 꼴이 달라진다는 것입니다. 2장에서는 ChatOpenAI 에 질문 하나를 보내 봤습니다. 이 장에서는 그 모델을 부품 하나로 놓고, 앞뒤에 프롬프트와 파서를 붙여 구름다리여행의 Q&A 챗봇을 만듭니다.