見出し画像

LangChain の PromptSeletor の使い方

「LangChain Blog」の記事「Prompt Selectors」が面白かったので、簡単にまとめました。

1. PromptSelector

よく耳にする不満の 1 つは、デフォルトのプロンプトテンプレートがすべてのモデルで同じように機能しないというものです。これは、先週「ChatGPT API」がリリースされたことで、より顕著になりました。

これに対応するため「PromptSelector」を導入しました。チェーンごとにデフォルトの「PromptTemplate」を定義するのではなく、「PromptSelector」を定義する方向に進みます。 ユーザーがプロンプトを指定しない場合、「PromptSelector」は、渡されたモデルに基づいて、使用する「PromptTemplate」を選択します。

2. PromptSelectorの使い方

「PromptSelector」は、デフォルトプロンプトを持ち、条件 ("isChatModel") が満たされた場合、別のプロンプトに切り替えます。

使い方の例は、次のとおりです。

2-1. Python

Code Definition
Full Example

PROMPT_SELECTOR = ConditionalPromptSelector(
    default_prompt=PROMPT, 
    conditionals=[(is_chat_model, CHAT_PROMPT)]
)

2-2. JavaScript / TypeScript

Code Definition
Full Example

export const QA_PROMPT_SELECTOR = new ConditionalPromptSelector(
    DEFAULT_QA_PROMPT,
    [[isChatModel, CHAT_PROMPT]]
);


当面のユース ケースは、チャットモデルと従来のモデル (ChatGPTとGPT-3) のプロンプトを切り替えることですが、異なるモデルプロバイダ (OpenAIとCohereなど) やモデルバージョン (GPT-3とGPT-4など) を切り替えることも可能になると考えています。 

関連



いいなと思ったら応援しよう!