LCEL 인터페이스 정리: Runnable 구조와 주요 메서드

2025. 3. 28. 14:24· AI/LangChain
목차
  1. Runnable 인터페이스 개요
  2. 지원 메서드 목록
  3. 실행 흐름 예시
  4. RunnableMap
  5. RunnableLambda
  6. RunnableSequence
  7. 동기 vs 비동기 메서드 차이
  8. LCEL에서 활용 가능한 주요 Runnable 클래스
반응형

LCEL 인터페이스 정리: Runnable 구조와 주요 메서드

LangChain Expression Language(LCEL)는 체인 컴포넌트를 함수형으로 연결할 수 있도록 설계된 구조이며, 모든 컴포넌트는 Runnable 인터페이스를 구현해야 한다. LCEL의 핵심은 이 Runnable 프로토콜을 따르는 클래스들 간의 연결에 있으며, 해당 구조를 기반으로 체인을 구성하고 실행한다.

Runnable 인터페이스 개요

LCEL에서 사용되는 모든 구성 요소(PromptTemplate, LLM, OutputParser 등)는 내부적으로 Runnable 추상 클래스 또는 프로토콜을 구현하며, 아래 메서드를 기본적으로 지원한다.

지원 메서드 목록

  • invoke(input): 단일 입력 실행 (동기 방식)
  • batch(inputs): 여러 입력을 동시에 실행
  • stream(input): 토큰 단위로 실시간 응답
  • ainvoke(input): 비동기 단일 입력 실행
  • abatch(inputs): 비동기 다중 입력 실행
  • astream(input): 비동기 스트리밍

실행 흐름 예시

prompt: RunnablePromptTemplate
llm: RunnableLLM
parser: RunnableOutputParser

# 체인 연결
chain = prompt | llm | parser

# 실행
result = chain.invoke({"question": "LCEL의 인터페이스는?"})

RunnableMap

입력 데이터를 여러 개의 Runnable에 분기하여 전달할 수 있는 구조이다. 입력 key별로 Runnable을 지정할 수 있다.

from langchain.schema.runnable import RunnableMap

chain = RunnableMap({
  "question": PromptTemplate.from_template("Q: {question}\nA:"),
  "context": lambda _: "기본 맥락"
})

RunnableLambda

람다 함수 또는 커스텀 로직을 체인 내에 삽입할 때 사용하는 래퍼 클래스이다.

from langchain.schema.runnable import RunnableLambda

multiply = RunnableLambda(lambda x: x * 10)
result = multiply.invoke(3)  # 출력: 30

RunnableSequence

여러 Runnable 컴포넌트를 순차적으로 연결하는 체인을 생성할 때 사용하는 클래스이다. 파이프(|) 연산자 없이 명시적으로 체인을 구성할 수 있다.

from langchain.schema.runnable import RunnableSequence

sequence = RunnableSequence(first=prompt, middle=llm, last=parser)

동기 vs 비동기 메서드 차이

메서드 용도 설명
invoke단일 입력기본 실행 메서드 (동기)
batch다중 입력여러 개의 입력을 한 번에 실행
stream스트리밍출력을 스트림으로 수신 (토큰 단위)
ainvoke단일 입력비동기 실행
abatch다중 입력비동기 방식의 배치 실행
astream스트리밍비동기 스트리밍 출력

LCEL에서 활용 가능한 주요 Runnable 클래스

  • PromptTemplate: 입력값을 템플릿 문자열로 변환
  • ChatOpenAI: LLM 호출 (Chat 방식)
  • StrOutputParser: 문자열로 출력 파싱
  • RunnableLambda: 람다 함수 실행
  • RunnableMap: 입력값 분기 처리
  • RunnableSequence: 명시적 체인 구성
728x90
반응형

'AI > LangChain' 카테고리의 다른 글

LangChain 프롬프트 구성: Partial Variables 및 load_prompt 사용법  (0) 2025.03.28
LangChain LCEL 컴포넌트: RunnablePassthrough, RunnableParallel, RunnableLambda  (0) 2025.03.28
LCEL (LangChain Expression Language): 선언형 LangChain 구성 방식  (0) 2025.03.28
LangSmith: LangChain 기반 애플리케이션의 디버깅 및 추적 도구  (0) 2025.03.28
LangChain: LLM 기반 애플리케이션 프레임워크  (1) 2025.03.28
  1. Runnable 인터페이스 개요
  2. 지원 메서드 목록
  3. 실행 흐름 예시
  4. RunnableMap
  5. RunnableLambda
  6. RunnableSequence
  7. 동기 vs 비동기 메서드 차이
  8. LCEL에서 활용 가능한 주요 Runnable 클래스
'AI/LangChain' 카테고리의 다른 글
  • LangChain 프롬프트 구성: Partial Variables 및 load_prompt 사용법
  • LangChain LCEL 컴포넌트: RunnablePassthrough, RunnableParallel, RunnableLambda
  • LCEL (LangChain Expression Language): 선언형 LangChain 구성 방식
  • LangSmith: LangChain 기반 애플리케이션의 디버깅 및 추적 도구
불타는고굼이
불타는고굼이
잡동사니 끄적끄적
반응형
250x250
불타는고굼이
불타는 고구미 담벼락
불타는고굼이
전체
오늘
어제
  • 공부 및 정리 (235)
    • Language (10)
      • Java (2)
      • Javascript (6)
      • Python (1)
      • C,C++ (1)
    • Web (42)
      • Tomcat (2)
      • Spring (11)
      • Node (4)
      • react (5)
      • NestJS (2)
      • Elastic Search (1)
      • etc (14)
      • error (3)
    • AI (17)
      • AI 동향 (2)
      • LLM관련 (1)
      • RAG (5)
      • LangChain (8)
      • Llamaindex (1)
    • Tools (16)
      • eclipse (1)
      • STS (3)
      • Visual Studio Code (8)
      • git | github (3)
      • Notion (0)
      • etc (1)
    • DB (3)
      • MySQL (2)
      • MSSQL (1)
    • Android (24)
      • Kotlin (24)
      • etc (0)
    • Algorithm & 자료구조 (15)
      • 백준 (4)
      • 프로그래머스 (1)
      • 기초수학 (4)
      • 자료구조 (6)
    • Image Processing (16)
      • 세팅 (1)
      • 예제 (6)
      • Python2Cpp (8)
      • YOLO (1)
    • 취미 (80)
      • photo (5)
      • food (48)
      • travel (6)
      • walk&run (16)
      • ETC (5)
    • ETC (7)
      • 제로베이스 (3)
      • 멀티캠퍼스 (1)
      • 패스트캠퍼스 INNERCIRCLE (3)

블로그 메뉴

  • 홈
  • 태그

공지사항

인기 글

태그

  • #선유도맛집 #선유도역맛집 #선유도돈까스 #선유도회식 #내일식당 #내일다이닝 #대파안심돈까스 #돈까스맛집 #서울맛집추천 #영등포맛집 #혼밥추천 #회식장소추천 #맛집블로그 #블로그후기 #먹스타그램 #푸드로그 #맛집탐방
  • #나가노굿즈
  • #고미푸딩
  • #속초맛집 #속초문어국밥 #문어국밥 #문어비빔국수 #속초해장국 #강원도맛집 #속초여행맛집 #속초로컬맛집 #문어요리 #속초밥집
  • 백엔드
  • #프레퍼스 #다이어트식사 #헬스식단 #샐러드맛집 #다이어트맛집 #다이어트플레이트 #프레퍼스후기 #운동식단 #건강한한끼 #맛있는다이어트
  • #elasticsearch설치 #dockerelasticsearch #검색엔진 #로컬서버구축 #elasticstack #검색솔루션 #elasticsearch보안
  • #치이카와굿즈
  • #나가노마켓
  • #홍대나가노
  • #ai프로젝트 #dify #llm아키텍처 #ai서비스기획 #노코드ai #ai멘토링 #ai입문 #딥러닝 #머신러닝 #pm특강 #프로젝트관리 #초보ai개발자 #ai교육후기 #ai캠프후기 #ai기반서비스 #생성형ai #ai툴활용 #데이터기반서비스 #ai직무전환 #it비전공자 </p>
  • #나가노팝업
  • #보광정 #수육런 #남산러닝 #러닝이벤트 #단백질런 #러닝후기 #수육맛집 #러닝인증 #남산순환로 #러너들의맛집
  • #홍대맛집
  • #농담곰
  • Spring
  • 개발자 #백엔드공부 #백엔드스쿨
  • #하루런 #harurun #하남미사경정공원 #임시완 #러닝대회후기 #5km마라톤 #하루야채 #커플런 #마라톤참가후기 #건강마라톤
  • #일본캐릭터
  • java
  • #부트캠프후기 #개발자성장기 #코딩프로젝트 #프로그래밍교육 #1차프로젝트완료 #팀워크 #신입개발자일상 #개발자블로그
  • 제로베이스
  • #속초중앙시장 #속초시장맛집 #속초오징어순대 #속초튀김 #속초닭강정 #중앙닭강정 #속초떡볶이 #강원도시장 #속초간식투어 #속초여행코스
  • #레트로카페
  • #선유도역맛집 #돈웍 #서울고기맛집 #1인고기세트 #목살구이 #된장찌개맛집 #영등포구맛집 #혼밥맛집 #삼겹전문점 #덮밥맛집 #서울혼밥추천
  • #홍대팝업스토어
  • #경주여행 #황리단길카페 #경주카페추천 #향미사 #경주가볼만한곳 #첨성대 #대릉원 #경주핫플 #경주감성카페 #황리단길맛집 #경주말거리 #경주핫스팟
  • #홍대캐릭터샵
  • #경주맛집 #황리단길맛집 #향화정 #경주한옥맛집 #경주육회물회 #꼬막비빔밥 #해물파전맛집 #경주가볼만한곳 #경주맛집추천 #경주현지맛집 #경주여행코스 #경주로컬맛집 #한식전문점 #블로그후기 #먹스타그램 #맛집기록 #경주한옥식당 #황리단길한식
  • #팝플리

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.0
불타는고굼이
LCEL 인터페이스 정리: Runnable 구조와 주요 메서드
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.