Runnable
チェーンの要素は抽象基底クラスRunnableを継承している.
目次
チェーンの連結
連結部で入出力の型が揃っていれば,次のようにチェーン同士を直列繋ぎにできる.
chain_a = a1 | a2 | a3 |
関数をRunnableにする
独自関数some_func
があるとして,RunnableLambda
を用いた
from langchain_core.runnables import RunnableLambda |
または,自動変換により単に
chain = a | b | c | some_func |
としてチェーンに組み込める.
次のようにデコレータで書いておくことも可能である.
from langchain_core.runnables import chain |
チェーンの並列繋ぎ
RunnableParallel
でチェーンを並列繋ぎにできる.
from langchain_core.runnables import RunnableParallel |
RunnablePassthrough
RunnablePassthrough
のインポートは次のように行います.
from langchain_core.runnables import RunnablePassthrough |
並列で繋ぐものの1つをRunnablePassthrough
にしておくと,入力値を次工程に引き継げます.
例えば,ある質問を入力したとき,RunnablePassthrough
と検索を並列にすると,次工程へ元の質問文と検索結果をペアで渡すことができます.
渡すものと出力を両方保持して最終出力としたい場合は,RunnablePassthrough.assign
メソッドが使えます.
chain = 入力 | RunnablePassthrough.assign(answer = 出力用チェーン) |
とすると,実行結果は出力用チェーンからの出力結果と入力をあわせた辞書を出力します.