
5.5.2
チェーンとは
LangChainにおけるチェーンとは、LangChainのコンポーネント同士が繋がったものです。
あるコンポーネントの出力が別のコンポーネントの入力になるような場合にチェーンを構築で
きます。また、チェーン自体もコンポーネントです。したがって、チェーン同士を繋いで、よ
り長いチェーンを構成することができます。
チェーンを構成する要素は
Runnable
インタフェースを実装している必要があります。
Runnable
インタフェースでは、主に次の3 種類のメソッドを定義しています。
invoke / ainvoke
stream / astream
batch / abatch
invoke
は、入力から出力を得る基本的なメソッドです。一方、
stream
と
batch
は、それぞれ
入出力をストリームとして扱いたい場合、複数の入出力をまとめて処理したい場合に使用する
ためのメソッドです。LangChainが提供している大部分のコンポーネントは、
Runnable
イン
タフェースを実装しています。このため、大部分のコンポーネントをチェーンの要素にするこ
とができます。
Runnable
インタフェースでは、メソッドの入出力の型は決まっていません。コンポーネン
トごとに入出力の型が決まっています。あるコンポーネントA の出力の型と別のコンポーネ
ントB の入力の型が一致している場合に、コンポーネントA の後にBをチェーンで繋げるこ
とができます。入出力の型が異なるコンポーネント同士を繋げる場合は、一方の出力の型を他 ...