クイック スタート: Azure portal でスキルセットを作成する

このクイック スタートでは、Azure AI Search のスキルセットが光学式文字認識 (OCR)、画像分析、言語検出、テキスト翻訳、エンティティ認識を追加して、検索インデックスにテキスト検索可能なコンテンツを生成する方法について説明します。

Azure portal で [データのインポート] ウィザードを実行して、インデックス作成中にテキスト形式のコンテンツを作成および変換するスキルを適用します。 入力は生データであり、通常は Azure Storage の BLOB です。 出力は、AI によって生成された画像テキスト、キャプション、エンティティを含む検索可能なインデックスです。 生成されたコンテンツは、Search エクスプローラーを使用してポータルでクエリを実行できます。

準備として、ウィザードを実行する前に、いくつかのリソースを作成してサンプル ファイルをアップロードします。

前提条件

作業を開始する前に、次の前提条件を満たしておく必要があります。

注意

このクイックスタートでは Azure AI サービス を AI に使用します。 ワークロードは非常に小さいので、最大 20 トランザクションの処理を無料で使用するために Azure AI サービスを内部で利用しています。 Azure AI マルチサービス リソースを作成しなくても、この演習を完了できます。

自分のデータを設定する

次の手順では、異種コンテンツ ファイルを格納するために Azure Storage で BLOB コンテナーを設定します。

  1. さまざまなタイプの小さいファイル セットで構成されているサンプル データをダウンロードします。 .zip ファイルを解凍します

  2. Azure アカウントで Azure Portal にサインインします。

  3. Azure Storage アカウントを作成するか、既存のアカウントを検索してください。

    • 帯域幅料金を回避するには、Azure AI Search と同じリージョンを選択します。

    • StorageV2 (汎用 V2) を選択します。

  4. Azure portal で、Azure Storage ページを開き、コンテナーを作成します。 既定のアクセス レベルを使用できます。

  5. [コンテナー] で、[アップロード] を選択してサンプル ファイルをアップロードします。 ネイティブ形式ではフルテキスト検索ができない画像やアプリケーション ファイルなどの、広範な種類のコンテンツがあります。

    Screenshot of source files in Azure Blob Storage.

これでデータのインポート ウィザードに進む準備が整いました。

データ インポート ウィザードを実行する

  1. Azure アカウントで Azure Portal にサインインします。

  2. 検索サービスを検索し、[概要] ページでコマンド バーの [データのインポート] を選択して、4 つの手順で検索可能なコンテンツを作成します。

    Screenshot of the Import data command.

手順 1:データ ソースを作成する

  1. [データへの接続] で、 [Azure Blob Storage] を選択します。

  2. ストレージ アカウントと作成したコンテナーへの既存の接続を選択します。 データ ソースの名前を指定し、残りの部分には既定値を使用します。

    Screenshot of the data source definition page.

    次のページに進みます。

"データ ソースからのインデックス スキーマの検出でエラーが発生しました" と表示された場合、ウィザードの電源を入れるインデクサーがデータ ソースに接続できません。 ほとんどの場合、データ ソースにはセキュリティ保護があります。 次の解決策を試してから、ウィザードを再実行してください。

セキュリティ機能 解決策
リソースに Azure ロールが必要であるか、そのアクセス キーが無効になっている 信頼されたサービスとして接続するか、マネージド ID を使用して接続します
リソースが IP ファイアウォールの内側にある 検索および Azure portal 用の受信規則を作成する
リソースにプライベート エンドポイント接続が必要である プライベート エンドポイント経由で接続する

手順 2: コグニティブ スキルを追加する

次に、OCR、画像分析、自然言語処理を呼び出すための AI エンリッチメントを構成します。

  1. このクイックスタートでは、無料の Azure AI サービス リソースを使用します。 サンプル データは 14 個のファイルで構成されているため、このクイックスタートでは、Azure AI サービスの無料枠である 20 トランザクションで十分間に合います。

    Screenshot of the Attach Azure AI services tab.

  2. [エンリッチメントの追加] を展開して、選択項目 6 か所について設定を行います。

    画像分析スキルをウィザード ページに追加するために OCR を有効にします。

    エンティティの認識 (人物、組織、場所) と画像分析スキルを選択します (タグ、キャプション)。

    Screenshot of the skillset definition page.

    次のページに進みます。

手順 3:インデックスの構成

インデックスには検索可能なコンテンツが含まれており、データの インポート ウィザードでは通常、データ ソースをサンプリングしてスキーマを作成できます。 この手順では、生成されたスキーマを確認し、必要であれば設定に変更を加えます。

このクイックスタートでは、ウィザードによって妥当な既定値が適切に設定されます。

  • 既定のフィールドは、既存の BLOB のメタデータ プロパティに加えて、エンリッチメント出力の新しいフィールド (例: people, , organizationslocations) に基づいています。 データ型は、メタデータとデータのサンプリングから推定されます。

  • 既定のドキュメント キーは metadata_storage_path です (このフィールドが選択されるのは一意の値が含まれるため)。

  • これらのフィールドの既定の属性は [取得可能][検索可能] です。 [検索可能] は、フィールドのフルテキスト検索を許可します。 [取得可能] は、フィールド値を結果で取得できることを意味します。 これらのフィールドはスキルセットを介して作成されていることから、取得可能かつ検索可能にするのがユーザーの意図であると見なされます。 フィルター式でフィールドを使用する場合は、[フィルター可能] を選択します。

    Screenshot of the index definition page.

フィールドを [取得可能] としてマークしたからといって、このフィールドが検索結果に必ず存在するという意味ではありません。 select クエリ パラメーターを使用して、含めるフィールドを指定することで、検索結果の構成を制御できます。

次のページに進みます。

手順 4: インデクサーを構成する

インデクサーは、インデックス作成プロセスを進めます。 これは、データ ソース名、ターゲット インデックス、および実行の頻度を指定します。 データ インポート ウィザードでは、いくつかのオブジェクトが作成され、繰り返しリセットおよび実行できるインデクサーが常に含まれます。

  1. [インデクサー] ページで、既定の名前をそのまま使用し、[1 回] を選択します

    Screenshot of the indexer definition page.

  2. [送信] を選択して、インデクサーを作成し、同時に実行します。

状態を監視する

左側のナビゲーション ウィンドウからインデクサーを選択して状態を監視し、インデクサーを選択します。 スキルベースのインデックス作成は、テキストベースのインデックス作成(特にOCRと画像分析)よりも時間がかかります。

Screenshot of the indexer status page.

実行状態の詳細を表示するには、[成功] (または [失敗]) を選択して実行の詳細を表示します。

このデモでは、いくつかの警告 "Could not execute skill because one or more skill input was invalid." があります。データ ソース内の PNG ファイルではエンティティ認識にテキスト入力が提供されていないことが示されています。 この警告は、アップストリームの OCR スキルが画像内のテキストを認識せず、ダウンストリーム エンティティ認識スキルにテキスト入力を提供できなかったために発生します。

スキルセットの実行では警告が一般的です。 スキルがデータを反復処理する方法に慣れるにつれて、パターンに気付き、無視しても安全な警告を学習するかもしれません。

Search エクスプローラーでクエリを実行する

インデックスが作成されたら、検索エクスプローラーを使用して結果を返します。

  1. 左側の [インデックス] を選択し、インデックスを選択します。 検索エクスプローラー は最初のタブにあります。

  2. インデックスのクエリを実行する検索文字列 (satya nadella など) を入力します。 検索バーは、キーワード (keyword)、引用符で囲まれた語句、および演算子 ("Satya Nadella" +"Bill Gates" +"Steve Ballmer") を受け入れます。

結果は詳細 JSON として返されます。これは、特に大きいドキュメントでは、読み取りにくい場合があります。 このツールで検索するためのいくつかのヒントを次に示します。

  • JSON ビューに切り替えて、結果を整形するパラメーターを指定します。

  • 結果のフィールドを制限するために追加 select します。

  • 一致の数を表示するために追加 count します。

  • JSON 内で特定のプロパティまたは用語を検索するには、Ctrl + F キーを押します。

    Screenshot of the Search explorer page.

ビューに貼り付けることができる JSON を次に示します。

{
"search": "\"Satya Nadella\" +\"Bill Gates\" +\"Steve Ballmer\"",
"count": true,
"select": "content, people"
}

ヒント

クエリ文字列は大文字と小文字が区別されます。"不明なフィールド" というメッセージが返された場合は、 [フィールド] または [インデックス定義 (JSON)] をチェックして名前と大文字と小文字の区別を確認してください。

重要なポイント

これで、最初のスキルセットを作成し、スキルベースのインデックス作成の基本的な手順を学習しました。

選択した主要な概念には、依存関係が含まれます。 スキルセットはインデクサーにバインドされ、インデクサーは Azure とソースに固有です。 このクイックスタートでは Azure Blob Storage を使用していますが、他の Azure データ ソースも使用可能です。 詳細については、「Azure AI Searchでのインデクサー」を参照してください。

もう 1 つの重要な概念は、スキルがさまざまな種類のコンテンツにわたって動作するため、異種コンテンツで使用すると、いくつかの入力がスキップされるということです。 また、ファイルまたはフィールドが大きいと、ご利用のサービス レベルのインデクサーの制限を超過してしまう可能性があります。 そうした状況で警告が発生するのは異常ではありません。

出力は検索インデックスにルーティングされ、インデックス作成中に作成された名前と値のペアと、インデックス内の個々のフィールドの間にマッピングが存在します。 内部的には、ウィザードはエンリッチメント ツリーを設定し、スキルセット定義し、操作と一般的なフローの順序を確立します。 これらの手順はウィザードでは非表示になっていますが、コードの記述を開始すると、これらの概念が重要になります。

最後に、インデックスに対してクエリを実行することで内容を確認できることを学習しました。 最後に、Azure AI Search で提供されるインデックスは検索可能なインデックスであり、 単純なクエリ構文を使用してクエリを実行することも、完全に拡張されたクエリ構文を使用してクエリを実行することもできます。 エンリッチされたフィールドを含むインデックスは、他のフィールドと同様です。 標準または のカスタム アナライザースコアリング プロファイル同意語ファセット ナビゲーション、geo 検索、またはその他の Azure AI Search フィーチャーを組み込む場合は、確実にこれを行うことができます。

リソースをクリーンアップする

独自のサブスクリプションを使用している場合は、プロジェクトの最後に、作成したリソースがまだ必要かどうかを確認してください。 リソースを実行したままにすると、お金がかかる場合があります。 リソースは個別に削除することも、リソース グループを削除してリソースのセット全体を削除することもできます。

ポータルの左側のナビゲーション ウィンドウにある [All resources](すべてのリソース) または [Resource groups](リソース グループ) リンクを使って、リソースを検索および管理できます。

無料サービスを使用する場合は、インデックス、インデクサー、およびデータ ソースが 3 つに制限されていることに注意してください。 ポータルで個別の項目を削除して、制限を超えないようにすることができます。

次のステップ

スキルセットは、ポータル、.NET SDK、または REST API を使用して作成できます。 さらに知識を深めたければ、Postman と他のサンプル データを使って REST API を試してみてください。