0Pricing
AI Agents · レッスン

LCEL(LangChain Expression Language)

パイプ演算子「|」でrunnableを組み合わせ、RunnablePassthroughを使い、チェーンをストリーミングします。

「LCEL(LangChain Expression Language)」はCoddyKit上の無料AI Agentsレッスンです。 これはレッスン3/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはAI Agents学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 AI Agentsコースには全4レッスンが含まれています。

このレッスンの一部はまだ翻訳されておらず、英語で表示されています。

LCELとは何ですか

LangChain Expression Languageは、チェーンを構成する最新の方法です。パイプ演算子|を使ってRunnableをつなぎます。

従来の「Chain」クラス(LLMChain、SequentialChain)に置き換わるもので、これらは現在レガシーとなっています。

A Basic LCEL Chain

from langchain.prompts import ChatPromptTemplate
from langchain_openai import ChatOpenAI
from langchain.schema.output_parser import StrOutputParser

prompt = ChatPromptTemplate.from_template('Translate {text} to French.')
model = ChatOpenAI(model='gpt-4o-mini')
parser = StrOutputParser()

chain = prompt | model | parser
print(chain.invoke({'text': 'Hello, world!'}))

RunnablePassthrough

入力を変更せずに通過させます。LLM呼び出しと一緒にデータを保持するのに便利です:

from langchain_core.runnables import RunnablePassthrough

chain = (
    {'context': retriever, 'question': RunnablePassthrough()}
    | prompt
    | model
    | parser
)
chain.invoke('What is RAG?')

RunnableParallel

複数のRunnableを並列実行し、その出力をdictにまとめます:

from langchain_core.runnables import RunnableParallel

chain = RunnableParallel(
    summary=summary_prompt | model | parser,
    keywords=keywords_prompt | model | parser
) | merge_prompt | model | parser

result = chain.invoke({'text': '...'})

RunnableLambda

任意のPython関数をRunnableでラップします:

from langchain_core.runnables import RunnableLambda

def uppercase(text: str) -> str:
    return text.upper()

chain = prompt | model | parser | RunnableLambda(uppercase)

Streaming Through LCEL

for chunk in chain.stream({'text': 'Hello'}):
    print(chunk, end='', flush=True)

バッチと非同期処理

すべてのRunnableはbatch、ainvoke、astreamをサポートします:

results = chain.batch([
    {'text': 'a'}, {'text': 'b'}, {'text': 'c'}
])
# All three run in parallel.

スキーマ

型ヒントを追加すると、LCELが入力と出力を検証します:

from pydantic import BaseModel

class Input(BaseModel):
    text: str

class Output(BaseModel):
    translation: str

chain = chain.with_types(input_type=Input, output_type=Output)

with_configとフォールバック

モデルを固定し、リトライ回数を設定し、フォールバックモデルを追加します:

fast = ChatOpenAI(model='gpt-4o-mini')
big = ChatOpenAI(model='gpt-4o')

chain = prompt | fast.with_fallbacks([big]) | parser

with_retry

class Chain:
    def invoke(self, x):
        return f'processed: {x}'
    def with_retry(self, stop_after_attempt=3, wait_exponential_jitter=True):
        print(f'Chain will retry up to {stop_after_attempt} times with jittered backoff')
        return self

chain = Chain()
chain = chain.with_retry(stop_after_attempt=3, wait_exponential_jitter=True)
print(chain.invoke('input data'))

RAGチェーンの構築

すべてをまとめて組み立てます:

rag_chain = (
    {'context': retriever | format_docs, 'question': RunnablePassthrough()}
    | rag_prompt
    | model
    | StrOutputParser()
)

def format_docs(docs):
    return '\n\n'.join(d.page_content for d in docs)

rag_chain.invoke('What is in the handbook?')

LCELのデバッグ

中間ステップを確認します:

chain.get_graph().print_ascii()

# Or run step-by-step:
for step in chain.stream_log({'text': '...'}):
    print(step)

パイプ演算子

LCELにおけるRunnablePassthroughの役割は何ですか?

まとめ

LCELは現代的なLangChainの基盤です。パイプ、Parallel、Lambda、Passthroughを学べば、どのようなチェーンでも構築できます。

よくある質問

「LCEL(LangChain Expression Language)」レッスンは無料ですか?

はい。「LCEL(LangChain Expression Language)」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、AI Agentsコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 AI Agentsコースには全4レッスンが含まれています。

「LCEL(LangChain Expression Language)」で何を学びますか?

パイプ演算子「|」でrunnableを組み合わせ、RunnablePassthroughを使い、チェーンをストリーミングします。 ブラウザで直接実行するハンズオンコードでAI Agentsを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

AI Agentsを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのAI Agentsは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/4です。

「LCEL(LangChain Expression Language)」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このAI Agentsレッスンでコードを書いて実行できますか?

はい。すべてのAI Agentsレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. LangChainのアーキテクチャ:モデル、プロンプト、チェーン
  2. ローダー、スプリッター、ベクトルストア
  3. LCEL(LangChain Expression Language)
  4. RAGチェーンをエンドツーエンドで構築する
← AI Agentsに戻る