次の方法で共有


アプリ コンテンツ検索の概要

Windows AI API で有効になっているアプリ コンテンツ検索機能を使用すると、アプリ開発者は AppContentIndexer API を使用してインテリジェントな検索機能を Windows アプリに統合できます。 アプリ内コンテンツのインデックスを作成し、セマンティック クエリを使用して検索できるようにすることで、ユーザーは正確なキーワードだけでなくセマンティックの意味に基づいて結果を取得できます。 このセマンティック インデックスを使用すると、ドメイン固有の知識を持つ独自の AI アシスタントを強化し、よりパーソナライズされたコンテキスト固有のエクスペリエンスを作成できます。

この API を使用して、次の操作を行います。

  • セマンティック検索と字句検索の両方を使用するアプリ内検索エクスペリエンスを構築します。 ユーザーは、正確なキーワードの一致に加えて、意味によって検索できるため、関連情報を簡単に見つけることができます。

  • ローカルのナレッジ取得を有効にして、Retrieval-Augmented 生成 (RAG) をサポートします。 大規模言語モデル (LLM) と組み合わせて使用すると、アプリのナレッジ ベースから最も関連性の高いコンテンツを取得し、より正確でコンテキストに対応した応答を生成できます。

ApplicationContentIndexer API は現在、Windows App SDK リリース 2.0 Experimental 2 でのみ使用できます。

AI Dev Gallery アプリには、AppContentIndexer API の対話型サンプルが用意されており、アプリ コンテンツ検索機能を試用できます。 Microsoft Store または GitHub のソース コードからインストールする方法など、AI 開発ギャラリーの詳細について説明します。

AppContentIndexer API とは

AppContentIndexer API を使用すると、アプリはキーワードベース (字句) 検索と意味ベース (セマンティック) 検索の両方を使用してテキストと画像のコンテンツを検索可能にすることができます。開発者は、基になる複雑さを理解する必要はありません。

バックグラウンドでは、ベクター、ベクター データベース、従来のテキスト インデックス作成などの高度な手法が使用されますが、これらの詳細は完全に抽象化されています。 開発者は、シンプルで高度な API と対話します。 コンテンツのインデックスが作成されると、システムはコンテンツ識別子と共に埋め込みベクトル (セマンティックの意味をキャプチャ) を格納します。 検索要求は、キーワードの一致またはセマンティックの類似性に基づいて識別子を返します。 たとえば、"子猫" を検索すると、猫や子猫の画像に関する関連するテキストが返される場合があります。 セマンティック検索は説明的な語句に最も適しているため、"windowsills に座っている猫" のようなクエリは、関連性の高い結果を生成する可能性が高くなります。

インデックスはディスクに保持されるため、アプリの起動時にインデックスを再作成する必要はありません。

内部的には、ApplicationContentIndexer では、埋め込みを利用した従来のテキスト インデックス作成と最新のベクターベースの検索の組み合わせを使用します。 これらの詳細は抽象化されています。開発者は、埋め込みモデル、ベクター ストレージ、または取得インフラストラクチャを直接管理する必要はありません。

プレーン文字列を使用してインデックスのクエリを実行できます。 クエリは次を返す場合があります。

  • 字句一致 – テキストの完全一致 (画像内で見つかったテキストを含む)。
  • セマンティック一致 – 単語が同一でない場合でも、意味が似ているコンテンツ。

たとえば、"子猫" のクエリは、次への参照を返す場合があります。

  • "子猫" という単語が明示的に言及されていない場合でも、猫に関するテキスト エントリ。
  • 子猫を視覚的に含む画像。
  • "cat" または意味的関連性が十分な単語を含む画像内のテキスト コンテンツ。

サポートされているコンテンツの種類

ApplicationContentIndexer では、次の種類のコンテンツの追加がサポートされています。

  • テキスト – プレーンテキストまたは構造化テキストコンテンツ。
  • 画像 – テキストまたは認識可能なビジュアル要素を含むスクリーンショット、写真、画像ファイルを含みます。

アプリ定義コンテンツ識別子

AppContentIndexer では、アプリで定義されたコンテンツ識別子を使用して項目のインデックスを作成できるようにすることで、アプリで管理されるコンテンツがサポートされます。 クエリは、これらの識別子を返します。この識別子は、アプリが独自のデータ ストアから実際のコンテンツを取得するために使用します。

テキスト クエリは AppManagedTextQueryMatch オブジェクトを返し、画像クエリは AppManagedImageQueryMatch オブジェクトを返します。どちらもコンテンツ自体ではなく ContentId のみを含みます。

この機能をアプリに統合し、ApplicationContentIndexer API を使用する方法のガイダンスについては、「クイック スタート: アプリ コンテンツ検索」を参照してください。

プライバシーとセキュリティ

セマンティック インデックスと字句インデックスは、アプリの代わりに生成され、アプリのローカル アプリ データ フォルダーに格納されます。 プライベート プレビュー リリースの一環として、この機能は機密性の高いアプリケーション コンテンツのインデックス作成を目的としています。 ベスト セキュリティ プラクティスの場合は、この機能を使用して、個人、機密情報、または機密情報を含む可能性のあるユーザー データのインデックスを作成しないでください。

責任ある AI に関する考慮事項

このプレビューのセマンティック インデックス作成と検索機能では、どのような形式のコンテンツ モデレーションも適用されず、基になるモデルによってもたらされるセマンティック バイアスを検出または軽減しようともしません。 開発者は、AI を利用した機能を実装する際の潜在的なリスクを評価および管理する責任があります。

アプリで AI エクスペリエンスを構築する際のベスト プラクティスについては、 Windows での責任ある生成型 AI 開発のガイドライン を確認することをお勧めします。