最適化されたプロンプトを使用すると、大規模言語モデル (LLM) は期待に沿った結果を生成できます。OpenSearch LLM-Based Conversational Search Edition は、カスタムプロンプトテンプレートをサポートしています。ビジネスシナリオに基づいて専用のプロンプトテンプレートを作成できます。このトピックでは、カスタムプロンプトテンプレートを作成および管理する方法について説明します。
プロンプトテンプレートの作成
システムはデフォルトのプロンプトテンプレートを提供します。デフォルトのプロンプトテンプレートを使用する場合、LLM はコンテキスト情報のみを使用して質問に回答します。コンテキストで結果が見つからない場合、LLM は公開コンテンツを使用して質問に回答しません。プロンプトテンプレートを作成するには、次の手順を実行します。OpenSearch LLM-Based Conversational Search Edition インスタンスの詳細ページで、構成センター > プロンプト管理 を選択します。[プロンプト管理] ページで、[テンプレートの作成] をクリックします。プロンプトテンプレートの作成 パネルで、画面の指示に従って プロンプトテンプレート名、テンプレートの概要、および メッセージ パラメーターを構成し、OK をクリックします。
パラメーター
プロンプトテンプレート名: 必須。プロンプトテンプレートの名前。名前は一意で、1 ~ 30 文字の長さでなければなりません。文字で始まり、文字、数字、アンダースコア (_) を含めることができます。
テンプレートの概要: オプション。プロンプトテンプレートの説明。テンプレートの説明は 1 ~ 30 文字の長さで、アンダースコア (_) とハイフン (-) を含めることができます。文字または数字で始める必要があります。
メッセージ: 役割とコンテンツのペア形式のメッセージのリスト。プラス記号 (+) をクリックして、役割とコンテンツのペアを追加できます。role フィールドの有効な値には、system、user、および assistant が含まれます。content フィールドは必須です。このフィールドの値には、<# または [# を含めることはできません。値は最大 1,024 文字までです。
system: システムメッセージ。これは最優先事項であり、プリセットされた機能、仕様、または役割に基づいて LLM に応答するように指示するために使用されます。システムメッセージはオプションです。システムメッセージを指定する場合は、メッセージリストの先頭に配置する必要があります。
user および assistant: ユーザーメッセージとモデルメッセージ。これらは交互に表示され、実際の会話をシミュレートします。メッセージリストはユーザーメッセージで終わる必要があります。
カスタム変数: プロンプトで
${parameters.変数名}形式でカスタム変数を指定できます。変数名は 1 ~ 64 文字の長さで、文字、数字、アンダースコア (_) を含めることができます。カスタム変数を指定する場合、次の形式で変数のデフォルト値を指定できます。
${(parameters.name)!}: この変数にはデフォルト値がありません。
${(parameters.name)!"LLM"}: デフォルト値は LLM です。
説明変数を使用して、LLM に送信される最終的なプロンプトに値を渡すことができます。変数を指定する場合は、操作を呼び出すことによって変数値を渡す必要があります。指定された構文に基づいて変数を構成します。変数には、次の組み込み変数のいずれかと同じ名前を付けることはできません。
{question}: 入力した元の質問。
{docs}: ドキュメントをマージして生成されたコンテンツ。
メッセージ構成の例
プロンプトテンプレートを作成したら、[プロンプト管理] ページでプロンプトテンプレートを見つけ、[アクション] 列の Q&Aテスト をクリックして [Q&Aテスト] ページに移動します。デフォルトでは、ナレッジベースには OpenSearch LLM-Based Conversational Search Edition に関連するナレッジが含まれています。
デフォルトのプロンプトテンプレート
役割
コンテンツ
Q&Aテスト
説明
system
あなたは親切なアシスタントです。
質問: 1+1=
回答: 既知の情報に基づいてこの質問に答えることはできません。コンテキスト情報には、数学演算関連のコンテンツが含まれていません。したがって、利用可能な情報に基づいて 1+1= の質問に対する回答を提供することはできません。
質問: OpenSearch LLM-Based Conversational Search Edition について簡単に説明してください。
回答: OpenSearch LLM-Based Conversational Search Edition は、Alibaba Cloud が提供するインテリジェントな OpenSearch サービスです。組み込みの LLM に基づいて、OpenSearch LLM-Based Conversational Search Edition は企業向けの専用の会話型検索サービスを提供します。会話型検索システムを迅速に構築し、参照画像や参照リンクなどのさまざまな形式で会話型検索結果を自動的に生成するのに役立ちます。会話型検索サービスはインテリジェントで高品質です。
ナレッジベースに含まれていないナレッジ: コンテキストで結果が見つからない場合、LLM は公開コンテンツを使用して質問に回答しません。LLM は既知の情報に基づいて質問に回答し、回答の信頼性と信憑性を確保します。
ナレッジベースに含まれているナレッジ: LLM は既知の情報に基づいて正確で信頼できる回答を提供します。
user
コンテキストには複数の独立したドキュメントが含まれており、それぞれが <article> タグと </article> タグの間に配置されています。コンテキスト:
"${docs}"
上記のコンテキストに基づいて、質問に詳細かつ整理された方法で答えてください。コンテキストに基づいて質問に適切に回答されていることを確認してください。コンテキストによって提供される情報が質問に答えるのに不十分な場合は、次のメッセージを返します。既知の情報に基づいてこの質問に答えることはできません。コンテキストに含まれていないコンテンツを使用して回答を生成しないでください。回答の各ステートメントがコンテキストの対応するコンテンツによってサポートされていることを確認してください。英語で質問に答えてください。
質問: "${question}"
コンテキストで結果が見つからない場合に LLM が公開コンテンツに基づいて質問に回答できるようにするカスタムプロンプトテンプレート
役割
コンテンツ
Q&Aテスト
説明
system
あなたは親切なアシスタントです。
質問: 1+1=
回答: 1+1=2。
質問: OpenSearch LLM-Based Conversational Search Edition について簡単に説明してください。
回答: OpenSearch LLM-Based Conversational Search Edition は、Alibaba Cloud が提供するインテリジェントな OpenSearch サービスです。組み込みの LLM に基づいて、OpenSearch LLM-Based Conversational Search Edition は企業向けの専用の会話型検索サービスを提供します。会話型検索システムを迅速に構築し、参照画像や参照リンクなどのさまざまな形式で会話型検索結果を自動的に生成するのに役立ちます。会話型検索サービスはインテリジェントで高品質です。
ナレッジベースに含まれていないナレッジ: コンテキストで結果が見つからない場合、LLM は公開コンテンツを使用して質問に回答します。
ナレッジベースに含まれているナレッジ: LLM は既知の情報に基づいて正確で信頼できる回答を提供します。
user
コンテキストには複数の独立したドキュメントが含まれており、それぞれが <article> タグと </article> タグの間に配置されています。コンテキスト:
"${docs}"
数学的計算に関するナレッジを含む、大量のナレッジを持っています。次の質問に正確に答えてください。
質問: "${question}"
${(parameters.変数名)!"変数値"}形式のカスタム変数が含まれているカスタムプロンプトテンプレート役割
コンテンツ
Q&Aテスト
説明
system
あなたは親切なアシスタントです。
モデル: opensearch-qwen
Q&Aテストページの[プロンプトパラメーター]タブで、カスタム変数を表示できます。

質問: 1+1=
回答: 既知の情報に基づいてこの質問に答えることはできません。コンテキスト情報には、数学的計算に関連するコンテンツが含まれていません。OpenSearch LLM-Based Conversational Search Edition およびその他の Alibaba Cloud サービスの紹介のみを提供し、一部のサービスと製品について説明しています。数学演算に関連する情報は提供されていません。
コンソールで変数値を変更できます。

質問: 1+1=
回答: 申し訳ありませんが、既知の情報に基づいて数学的計算に関する質問に答えることはできません。これは、コンテキストに数学演算に関連する情報が含まれていないためです。数学の質問を解決する必要がある場合は、関連する数学情報を提供するか、専用の数学計算ツールを使用することをお勧めします。
カスタム変数 no_answer が使用されています。情報が質問に答えるのに不十分な場合、LLM は no_answer 変数のデフォルト値である既知の情報に基づいてこの質問に答えることはできませんを返します。変数値を変更できます。この例では、値は申し訳ありませんがに変更されています。
user
コンテキストには複数の独立したドキュメントが含まれており、それぞれが <article> タグと </article> タグの間に配置されています。コンテキスト:
"${docs}"
上記のコンテキストに基づいて、質問に詳細かつ整理された方法で答えてください。コンテキストに基づいて質問に適切に回答されていることを確認してください。コンテキストによって提供される情報が質問に答えるのに不十分な場合は、次のメッセージを返します。${(parameters.no_answer)!"既知の情報に基づいてこの質問に答えることはできません"}。コンテキストに含まれていないコンテンツを使用して回答を生成しないでください。回答の各ステートメントがコンテキストの対応するコンテンツによってサポートされていることを確認してください。英語で質問に答えてください。
質問: "${question}"
プロンプトテンプレートの管理
すべてのプロンプトテンプレートは、プロンプト管理ページで管理できます。プロンプトテンプレートの表示、変更、削除ができます。プロンプトテンプレートのアクション列にあるQ&Aテストをクリックすると、Q&Aテストページが表示されます。プロンプトテンプレートを使用してQ&Aテストを実行できます。
デフォルトのプロンプトテンプレートは変更できません。
テンプレート名を除き、プロンプトテンプレートの構成を変更できます。