3장. LangChain 기본 구조와 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에서 손님 글 하나로 요약, 키워드, 담당을 한 번에 정했습니다.