createStuffDocumentsChain
以下のコードは、LangChainライブラリを使用して、文書のリストをモデルに渡すチェーンを作成するための関数です。関数の引数と動作について詳しく説明します。
`typescript
import { LanguageModelLike } from "@langchain/core/language_models/base";
import { BaseOutputParser } from "@langchain/core/output_parsers";
import { BasePromptTemplate } from "@langchain/core/prompts";
import { RunnableSequence } from "@langchain/core/runnables";
/**
* 文書のリストをモデルに渡すチェーンを作成します。
*
* @param llm レスポンスを生成するために使用する言語モデル。
* @param prompt プロンプトテンプレート。入力変数 "context" を含む必要があり、これがフォーマットされた文書を渡すために使用されます。
* @param outputParser 出力パーサー。デフォルトは StringOutputParser です。
* @param documentPrompt 各文書を文字列にフォーマットするために使用するプロンプト。入力変数として "page_content" やすべての文書に含まれるメタデータキーを使用できます。"page_content" は自動的に Document.page_content を取得し、他のすべての入力変数は Document.metadata 辞書から自動的に取得されます。デフォルトは Document.page_content のみを含むプロンプトです。
* @param documentSeparator フォーマットされた文書文字列の間に使用する文字列セパレーター。
* @returns LCEL Runnable チェーンを返します。
* 入力として Document のリストが "context" キーの下に渡される辞書を期待します。
* 戻り値の型は使用される output_parser に依存します。
*/
export declare function createStuffDocumentsChain<RunOutput = string>({ llm, prompt, outputParser, documentPrompt, documentSeparator, }: {
llm: LanguageModelLike;
prompt: BasePromptTemplate;
outputParser?: BaseOutputParser<RunOutput>;
documentPrompt?: BasePromptTemplate;
documentSeparator?: string;
}): Promise<RunnableSequence<Record<string, unknown>, Exclude<RunOutput, Error>>>;
`
### 詳細解説
1. **インポートステートメント**:
- 必要なモジュールとクラスをインポートしています。
- LanguageModelLike, BaseOutputParser, BasePromptTemplate, RunnableSequence など。
2. **関数の定義**:
- createStuffDocumentsChain 関数は、文書のリストを処理するためのチェーンを作成します。
3. **関数の引数**:
- llm:言語モデルを指定します。これはレスポンスを生成するために使用されます。
- prompt:プロンプトテンプレート。入力変数 "context" を含む必要があります。
- outputParser(オプション):出力パーサーを指定します。デフォルトは StringOutputParser です。
- documentPrompt(オプション):各文書を文字列にフォーマットするためのプロンプトを指定します。デフォルトは Document.page_content のみを含むプロンプトです。
- documentSeparator(オプション):フォーマットされた文書の間に使用する文字列セパレーターを指定します。
4. **戻り値**:
- RunnableSequence チェーンを返します。このチェーンは、"context" キーの下に文書のリストを渡す辞書を入力として期待します。
- 戻り値の型は output_parser に依存しますが、デフォルトでは文字列を返すことを期待します。
### 使い方の例
この関数は、指定されたプロンプトと文書のフォーマット方法を使用して、文書のリストを言語モデルに渡し、その結果を処理するチェーンを作成するために使用されます。このチェーンは、文書のリストを入力として受け取り、言語モデルの出力を生成します。