LangChain | 랭체인의 배달부 RunnablePassthrough | Runnable

박성문·2025년 1월 12일
0

LangChain | Runnable

목록 보기
2/5

RunnablePassthrough란

랭체인에서 데이터를 이동시키고 변형하는 핵심 도구이다.
쉽게 설명하자면 데이터 전달 우편배달부이다.
이는 입력을 변경하지 않거나, 추가 키를 더하여 전달할 수 있다.
이가 단독으로 호출되면, 단순히 입력을 받아 그대로 전달한다.

프롬프트 템플릿을 topic에 대해 2문장으로 설명해달라고 정의한다
chain을 구성할 때 topic을 RunnablePassthrough()로 지정한다

이제 chain.invoke("강아지")라고 입력하면
chain.invoke({"topic" : "강아지"})라고 하지 않아도
키 값에 "강아지"가 전달이 된다

차이점

공통 설정

topic에 대해 설명하게 프롬프트 템플릿을 생성한다.

구조

기존의 방식은 변수를 딕셔너리로 명시해야 했다.


RunnablePassthrough는 invoke함수 내에 값만 직접 전달하면 된다.

입력 방식


기존 방식은 딕셔너리로 모든 키-값을 명시해야 했지만
Passthrough 방식은 값만 전달하면 된다.

체인 구성


기존 방식은 단순 연결,
Passthrough 방식은 구조화 되어있다.
여기서는 기존의 방식이 더 간단하지만

실제 사용할 때에는 Passthrough 방식이 훨씬 간단해진다.
한 두번 쓰고 말 거면 기존 방식이 나을 수 있지만
반복적으로 사용할 것이면 Passthrough 방식이 편할 수 있다.

데이터 처리

반복되는 데이터를 가진 여러개의 체인을 구성할 때 차이가 난다.

topic만 바뀌는 두 개의 체인이 있을 때 기존 방식은 매번 값을 지정해주어야 하지만

Passthrough 방식은 반복되는 데이터는 놔두고 바뀌는 topic만 전달하면 된다.

profile
성문이

0개의 댓글