🐨
Azure AI Searchの検索結果にベクトルデータが出ないようにする方法
課題
AI Searchで登録しているインデックスにベクトルデータがあると、↓のように検索結果に含まれるからめちゃくちゃ邪魔です。
Azure Portal上でインデックスを作る場合は、フィールドタブに遷移して対象のスキーマの「取得可能」のチェックを外すだけで解決します。
しかし運用するにあたってインデックスの登録はコードで自動化させたいです。
実装
結論、対象のSearchFieldクラスのhidden
パラメータをTrueにする。
create_index.py
SearchField(
name="フィールド名",
# ↓追加する
hidden=True,
type=SearchFieldDataType.Collection(SearchFieldDataType.Single),
vector_search_dimensions=1536,
vector_search_profile_name="vector_search_profile",
),
めちゃくちゃシンプルなんですが、MSの記事ではretrivable
パラメータをTrueにしてたり、他の人の記事でもretrievableパラメータを指定してたので最初うまくいきませんでした。
PythonのAI Searchのパッケージの中身を確認したらクラスの中に以下の記載がありました。
:keyword hidden: A value indicating whether the field can be returned in a search result.
You can enable this option if you want to use a field (for example, margin) as a filter,
sorting, or scoring mechanism but do not want the field to be visible to the end user. This
property must be False for key fields. This property can be changed on existing fields.
Enabling this property does not cause any increase in index storage requirements. Default is
False.
Copilotも間違えてたので、使用するパッケージのソースコードはしっかり確認しましょう...
Discussion