メインコンテンツまでスキップ

あいまい検索用のベクトルテンプレートを用意する

概要

コンテンツをベクトルデータに変換することで、あいまい検索を実装できます。
検索キーワードとベクトルデータ化されたコンテンツとのベクトル間距離を利用することで、関連度の高い順にコンテンツをレスポンスします。

これにより、使用する単語の揺れがある場合の検索や、文章による検索が可能になります。

本ドキュメントではコンテンツに登録した社内文書を、あいまい検索します。

学べること

以下の手順でベクトルテンプレートの設定と確認をします。

コンテンツの準備をする

AIを有効にする

[AI/RAG] -> [ベクトルデータ]をクリックします。

Image from Gyazo

AIの項目を有効にして、[更新する]をクリックします。

Image from Gyazo

コンテンツ定義を追加する

ベクトル検索をする対象となるコンテンツ定義を登録します。
コンテンツ定義一覧の画面から[追加]をクリックします。
Image from Gyazo

以下の内容で設定をします。

全般

項目設定
名前社内文書

Image from Gyazo

項目設定

項目Slug項目名項目設定
ext_1なしWYSIWYGWYSIWYG

Image from Gyazo

検索設定

項目設定
ベクトルデータに変換する有効にする
埋め込みモデルtext-embedding-3-small(OpenAI)
キーワードテンプレート(AI/Vector)デフォルトのまま

Image from Gyazo

設定ができたら[追加する]をクリックしてコンテンツ定義を追加します。

ベクトルテンプレートを設定する

テンプレートの確認

デフォルトでは、以下がベクトルデータへの変換対象となるテンプレートが入力されています。

  • topics_id
  • slug
  • タイトル
  • 内容
  • カテゴリ
  • 全ての拡張項目のテキスト部分
備考

初期状態に戻したい場合は空で更新することで、自動的にデフォルトテンプレートが入力されます。

テンプレートの修正

任意の項目をテンプレートから除外したり、関連するメンバー情報をテンプレートに追加したりしたい場合は、テンプレートを修正します。

本チュートリアルではデフォルトのまま進めます。

リファレンス

利用できる変数は以下の通りです。

変数名説明
$detailsObjectコンテンツ詳細
$ext_configObjectコンテンツ拡張設定

Smartyの記述によって出力された文章がベクトルテンプレートとなります。

備考

修正の例は以下のドキュメントも参照してください。

動作の確認をする

コンテンツを追加して、Swagger UIから検索結果を確認します。

コンテンツを追加する

コンテンツ一覧の画面から[追加]をクリックします。
Image from Gyazo

ここでは例として以下の3コンテンツを追加しました。

リモートワークガイドライン
Image from Gyazo

福利厚生ガイドブック
Image from Gyazo

連絡先 Image from Gyazo

ベクトルテンプレートを確認する

追加されたコンテンツの編集画面で、[その他] ボタンをクリックして選択肢が表示します。 [ベクトルテンプレート]をクリックすると、出力されたテンプレートを確認することが出来ます。

Image from Gyazo

注意

反映完了まで[ベクトルテンプレート]の選択肢が表示されません。

テンプレート、サマリー、インデックスの確認ができます。

Image from Gyazo

ベクトル検索用エンドポイントを用意する

エンドポイントの設定方法を参考に、ベクトル検索用のエンドポイントを作成します。

今回はパス・モデルを以下のように設定します。

  • パス: vector_search
  • カテゴリー: コンテンツ
  • モデル:Topics, v1
  • オペレーション:list
  • topics_group_id:42 (コンテンツ定義を追加するで採番されたID)

Image from Gyazo

Swagger UIで確認する

Swagger UI画面から[ベクトル検索用エンドポイントを用意する]で追加したエンドポイントにリクエストします。
vector_searchの項目に在宅勤務と入力し、Executeをクリックします。

Image from Gyazo

コンテンツには在宅勤務の文字は登録されていませんが、関連度の高いリモートワークガイドラインのドキュメントがリストの最初にレスポンスされます。

Image from Gyazo

ヒント

vector_distanceの項目が検索文字列とのベクトル間距離を表し、小さい順にレスポンスされます。

関連ドキュメント


サポート

お探しのページは見つかりましたか?解決しない場合は、問い合わせフォームからお問い合わせいただくか、Slackコミュニティにご参加ください。