LangChain の PromptSeletor の使い方
「LangChain Blog」の記事「Prompt Selectors」が面白かったので、簡単にまとめました。
1. PromptSelector
よく耳にする不満の 1 つは、デフォルトのプロンプトテンプレートがすべてのモデルで同じように機能しないというものです。これは、先週「ChatGPT API」がリリースされたことで、より顕著になりました。
これに対応するため「PromptSelector」を導入しました。チェーンごとにデフォルトの「PromptTemplate」を定義するのではなく、「PromptSelector」を定義する方向に進みます。 ユーザーがプロンプトを指定しない場合、「PromptSelector」は、渡されたモデルに基づいて、使用する「PromptTemplate」を選択します。
2. PromptSelectorの使い方
「PromptSelector」は、デフォルトプロンプトを持ち、条件 ("isChatModel") が満たされた場合、別のプロンプトに切り替えます。
使い方の例は、次のとおりです。
2-1. Python
PROMPT_SELECTOR = ConditionalPromptSelector(
default_prompt=PROMPT,
conditionals=[(is_chat_model, CHAT_PROMPT)]
)2-2. JavaScript / TypeScript
export const QA_PROMPT_SELECTOR = new ConditionalPromptSelector(
DEFAULT_QA_PROMPT,
[[isChatModel, CHAT_PROMPT]]
);当面のユース ケースは、チャットモデルと従来のモデル (ChatGPTとGPT-3) のプロンプトを切り替えることですが、異なるモデルプロバイダ (OpenAIとCohereなど) やモデルバージョン (GPT-3とGPT-4など) を切り替えることも可能になると考えています。
