メインコンテンツへスキップ
見出し画像

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など) を切り替えることも可能になると考えています。 

    関連



     
     

    npaka

     
     
    プログラマー。iPhone / Android / Unity / ROS / AI / AR / VR / RasPi / ロボット / ガジェット。年2冊ペースで技術書を執筆。アニソン / カラオケ / ギター / 猫 twitter : @npaka123

    あなたへのおすすめ