LangChain Expression Language(略してLCEL)は、複数の処理ステップを簡単に連結して1つの方法に組み合わせることができる宣言型のAIワークフローオーケストレーション手法です。そのため、LCELで定義されるワークフローはLangChainで「Chain」として参照されます。最も単純な「プロンプト + LLM」チェーンから、数百のステップで構成されるような最も複雑なチェーンまでがあります。

LangChain Expression Languageの特徴は次のとおりです:

  • ストリーミング処理サポート:LCELを使用してチェーンを構築する際、LLMモデルから返されるコンテンツを素早く取得するために、LCELはストリーミング処理もサポートしており、ChatGPTのようにコンテンツを文字単位で取得する効果を実現しています。

  • 非同期サポート:LCELを使用して構築された任意のチェーンは、同期的および非同期的なAPIの両方で使用することができます。非同期APIを使用する目的は、パフォーマンスを向上させ、より高い同時リクエストをサポートすることです。

  • 並列実行のサポート:LCELチェーンに並列で実行できるステップがある場合(たとえば、複数のソースから文書を取得する場合など)、最小の待ち時間を実現するために、同期的および非同期的なインターフェースの両方で自動的に実行されます。

  • リトライとロールバック:LCELチェーンの任意の部分にリトライおよびロールバックを設定することができます。

  • 中間結果へのアクセスのサポート:複雑なワークフローチェーンでは、デバッグ中に異なるタスクステップ間の中間結果を参照できることが望ましいことがよくあります。

  • 入出力モード:チェーン構造に基づいて推論された入力および出力モードは、それぞれのLCELチェーンのためにPydanticおよびJSONSchemaスキーマを提供し、入力および出力の検証に使用できるようになっています。これはLangServeの一部です。

  • LangSmithモニタリングサービスとの統合のサポート:チェーンがますます複雑になるにつれて、各ステップで何が起こっているかを正確に把握することがますます重要になります。LCELを使用すると、すべてのステップがLangSmithに自動的にログされ、最大限の観測性とデバッグが実現されます。

  • LangServeデプロイのサポート:LCELを使用して作成された任意のチェーンは、簡単にLangServeを使用してデプロイすることができます。