このトピックでは、テーブルベースの対話型検索を実装する方法について説明します。
機能
対話型検索のコンテンツが多様化するにつれて、対話型検索に使用されるドキュメントは、通常のテキストや画像に限定されなくなりました。構造化データに基づく正確な対話型検索へのリクエストは増え続けています。ユーザーからの質問に正確な回答を提供し、複雑な構造化データシナリオにおける対話型検索のパフォーマンスを向上させるために、OpenSearch LLM 版対話型検索はテーブルベースの対話型検索機能を提供します。この機能を使用すると、簡単なテーブルスキーマを設定するだけで、テーブル内の構造化データを正確にクエリできます。この機能により、MaxCompute などのデータソースから構造化データを便利かつ簡単に同期できるため、開発コストを削減できます。
コンソールで手動でセカンダリテーブルを作成する
セカンダリテーブルを作成する
[データ構成] > [構成の変更] を選択し、デフォルトのデータ処理構成を維持して [次へ] をクリックします。[データ構造] ページで、[テーブルの追加] をクリックし、[手動で作成] を選択します。

特定のフィールドに基づいてテキストベースの対話型検索を実装する場合、テキストQ&Aをオンにし、テキストベースの対話型検索を実装するフィールドにタグを追加できます。
説明テーブル名には、文字、数字、アンダースコア(_)を含めることができます。名前は1~20文字の長さでなければなりません。
フィールド名:フィールド名は文字で始まり、文字、数字、アンダースコア(_)を含めることができます。フィールド名は最大30文字の長さにすることができます。
フィールドの説明:フィールドの説明は、対話型検索の効果と密接に関連しています。各フィールドの説明を指定することをお勧めします。指定しないと、対話型検索の効果に影響する可能性があります。対話型検索の効果に基づいて、いつでも説明を変更できます。各フィールドの説明は、最大30文字の長さにすることができます。
プライマリキーの値は、各エントリで一意である必要があります。プライマリキー ID は、INT 型と TEXT 型のデータのみをサポートします。
タイプ:データがアップロードされるテーブルのフィールドタイプに基づいてフィールドタイプを指定します。フィールドタイプが一致しない場合、テーブルデータはアップロードに失敗します。コンテンツタグが付いたフィールドは、TEXT型である必要があります。
フィールドタグ:テキストQ&Aをオンにしない場合、このパラメータを指定する必要はありません。テキストQ&Aをオンにする場合は、フィールドタグ列のドロップダウンリストからコンテンツまたは主キーを選択する必要があります。コンテンツタグが付いたフィールドは、メインテーブルに同期されます。カスタムセカンダリテーブルの1つのフィールドにのみコンテンツタグを追加できます。
テキストQ&A:テキストQ&Aをオンにすると、対話型検索テスト中にカスタムセカンダリテーブルでテーブルベースの対話型検索が実行されます。回答が見つからない場合は、コンテンツタグが追加されたフィールドでテーブルベースの対話型検索が実行されます。これにより、応答率が向上します。
[完了] をクリックし、バージョンがビルドされるのを待ってコンソールからのデータプッシュを有効にするか、[データソースの追加] をクリックしてデータを同期するためのデータソースを構成します。
OpenSearch コンソールを使用したデータのアップロード
ファイルのインポートをクリックします。ファイルをインポートしてデータをインポートする前に、サンプルデータを参照してください。

API操作を呼び出してセカンダリテーブルをアップロードし、対話型検索のためにテーブルのデータをインポートすることもできます。詳細については、PushKnowledgeDocumentsを参照してください。
(オプション) データを同期するデータソースを追加する
MaxComputeデータソースがある場合は、データをセカンダリテーブルに同期するためにデータソースを追加できます。
データソースの追加パネルで、MaxComputeをクリックします。次に、データベースに接続をクリックします。データベースに接続ダイアログボックスで、プロンプトに従ってプロジェクト名、AccessKey ID、およびAccessKey Secretパラメータを構成し、接続をクリックします。

説明プロジェクト名:MaxComputeプロジェクトの名前。
AccessKey ID:MaxComputeプロジェクトが属するアカウントのAccessKey ID。
AccessKey Secret:MaxComputeプロジェクトが属するアカウントのAccessKeyシークレット。
既存の AccessKey を使用するか、新しい AccessKey を作成できます。詳細については、「AccessKey の作成」をご参照ください。AccessKey Secret の漏洩リスクを軽減するため、AccessKey Secret は作成時に一度しか表示されず、後で取得することはできません。安全に保管する必要があります。
対話型検索に使用するテーブルを選択し、OKをクリックします。

MaxComputeデータテーブルのフィールドをOpenSearchのセカンダリテーブルのフィールドにマッピングします。フィールドがマッピングされたら、OKをクリックします。

パーティションデータのプル条件を指定し、完了をクリックします。データソースからデータが同期されるまで待ちます。パーティションデータのプル条件を指定しない場合、すべてのパーティションからデータがプルされます。

データソースを使用したセカンダリテーブルの作成
テーブル内の構造化データに基づいて対話型検索を実行する場合は、データソースを構成し、セカンダリテーブルを作成できます。
[データ構成] > [構成の変更] を選択し、デフォルトのデータ処理構成を維持して [次へ] をクリックします。[データ構造] ページで、[テーブルの追加] をクリックし、[データソースから] を選択します。
データソースの選択パネルで、MaxComputeをクリックします。次に、データベースに接続をクリックします。データベースに接続ダイアログボックスで、プロンプトに従ってプロジェクト名、AccessKey ID、およびAccessKey Secretパラメータを構成し、接続をクリックします。

対話型検索に使用するテーブルを選択し、OKをクリックします。

特定のフィールドに基づいてテキストベースの対話型検索を実装する場合、テキストQ&Aをオンにし、テキストベースの対話型検索を実装するフィールドにタグを追加できます。
説明テーブル名には、文字、数字、アンダースコア(_)を含めることができます。名前は1~20文字の長さでなければなりません。
フィールド名:フィールド名は文字で始まり、文字、数字、アンダースコア(_)を含めることができます。フィールド名は最大30文字の長さにすることができます。
フィールドの説明:フィールドの説明は、対話型検索の効果と密接に関連しています。各フィールドの説明を指定することをお勧めします。指定しないと、対話型検索の効果に影響する可能性があります。対話型検索の効果に基づいて、いつでも説明を変更できます。各フィールドの説明は、最大30文字の長さにすることができます。
各主キー値が一意であることを確認してください。主キーIDは、INTまたはTEXT型にすることができます。
タイプ:データがアップロードされるテーブルのフィールドタイプに基づいてフィールドタイプを指定します。フィールドタイプが一致しない場合、テーブルデータはアップロードに失敗します。コンテンツタグが付いたフィールドは、TEXT型である必要があります。
フィールドタグ:テキストQ&Aをオンにしない場合、このパラメータを指定する必要はありません。テキストQ&Aをオンにする場合は、フィールドタグ列のドロップダウンリストからコンテンツまたは主キーを選択する必要があります。コンテンツタグが付いたフィールドは、メインテーブルに同期されます。カスタムセカンダリテーブルの1つのフィールドにのみコンテンツタグを追加できます。その他のタグ設定の詳細については、データのインポートを参照してください。
テキストQ&A:テキストQ&Aをオンにすると、対話型検索テスト中にカスタムセカンダリテーブルでテーブルベースの対話型検索が実行されます。回答が見つからない場合は、コンテンツタグが追加されたフィールドでテーブルベースの対話型検索が実行されます。これにより、応答率が向上します。
パーティションデータのプル条件を指定し、完了をクリックします。MaxComputeデータソースが追加され、セカンダリテーブルが作成されるまで待ちます。パーティションデータのプル条件を指定しない場合、すべてのパーティションからデータがプルされます。
テストを実行する
データがアップロードされた後、Q&Aテストページで対話型検索テストを実行できます。データ構成ページのデータクエリセクションで、対話型検索に使用されるドキュメントの総数を表示できます。

API操作を呼び出してデータをクエリすることもできます。詳細については、Q&Aドキュメントクエリを参照してください。
制限事項
1つのインスタンスには、最大5つのセカンダリテーブルを含めることができます。
セカンダリテーブルの最大30個のフィールドにデータを書き込み、クエリできます。