Skip to content

Commit cfd4117

Browse files
authored
Merge pull request #1813 from HeidiSteen/heidist-uuf
[azure search] UUF fix, model catalog
2 parents 8203fbb + b5d6ce8 commit cfd4117

12 files changed

+113
-80
lines changed

articles/search/cognitive-search-aml-skill.md

Lines changed: 35 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -18,27 +18,34 @@ ms.date: 08/05/2024
1818
> [!IMPORTANT]
1919
> Support for indexer connections to the Azure AI Foundry model catalog is in public preview under [supplemental terms of use](https://azure.microsoft.com/support/legal/preview-supplemental-terms/). Preview REST APIs support this skill.
2020
21-
The **AML** skill allows you to extend AI enrichment with a custom [Azure Machine Learning (AML)](../machine-learning/overview-what-is-azure-machine-learning.md) model. Once an AML model is [trained and deployed](../machine-learning/concept-azure-machine-learning-architecture.md#workspace), an **AML** skill integrates it into AI enrichment.
21+
The **AML** skill allows you to extend AI enrichment with a custom [Azure Machine Learning (AML)](../machine-learning/overview-what-is-azure-machine-learning.md) model or deployed base embedding model on Azure AI Foundry. Once an AML model is [trained and deployed](../machine-learning/concept-azure-machine-learning-architecture.md#workspace), an **AML** skill integrates it into a skillset.
2222

23-
Like other built-in skills, an **AML** skill has inputs and outputs. The inputs are sent to your deployed AML online endpoint as a JSON object, which outputs a JSON payload as a response along with a success status code. Your data is processed in the [Geo](https://azure.microsoft.com/explore/global-infrastructure/data-residency/) where your model is deployed. The response is expected to have the outputs specified by your **AML** skill. Any other response is considered an error and no enrichments are performed.
23+
## AML skill usage
2424

25-
The **AML** skill can be called with the 2024-07-01 stable API version or the 2024-05-01-preview API version for connections to the model catalog in Azure AI Foundry portal.
26-
27-
Starting in 2024-05-01-preview REST API and in the Azure portal (which also targets the 2024-05-01-preview), Azure AI Search introduced the [Azure AI Foundry model catalog vectorizer](vector-search-vectorizer-azure-machine-learning-ai-studio-catalog.md) for query time connections to the model catalog in Azure AI Foundry portal. If you want to use that vectorizer for queries, the **AML** skill is the *indexing counterpart* for generating embeddings using a model in the Azure AI Foundry model catalog.
28-
29-
During indexing, the **AML** skill can connect to the model catalog to generate vectors for the index. At query time, queries can use a vectorizer to connect to the same model to vectorize text strings for a vector query. In this workflow, the **AML** skill and the model catalog vectorizer should be used together so that you're using the same embedding model for both indexing and queries. See [How to implement integrated vectorization using models from Azure AI Foundry](vector-search-integrated-vectorization-ai-studio.md) for details on this workflow.
25+
Like other built-in skills, a custom **AML** skill has inputs and outputs. The inputs are sent to a deployed AML online endpoint as a JSON object. The output of the endpoint must be a JSON payload in the response, along with a success status code. Your data is processed in the [Geo](https://azure.microsoft.com/explore/global-infrastructure/data-residency/) where your model is deployed. The response is expected to provide the outputs specified by your **AML** skill definition. Any other response is considered an error and no enrichments are performed.
3026

3127
> [!NOTE]
3228
> The indexer will retry twice for certain standard HTTP status codes returned from the AML online endpoint. These HTTP status codes are:
3329
> * `503 Service Unavailable`
3430
> * `429 Too Many Requests`
3531
32+
The **AML** skill can be called with the 2024-07-01 stable API version or equivalent Azure SDK, or the 2024-05-01-preview API version for connections to the model catalog in Azure AI Foundry portal.
33+
34+
## AML skill for models in Azure AI Foundry
35+
36+
Starting in 2024-05-01-preview REST API and in the Azure portal (which also targets the 2024-05-01-preview), Azure AI Search provides the [Azure AI Foundry model catalog vectorizer](vector-search-vectorizer-azure-machine-learning-ai-studio-catalog.md) for query time connections to the model catalog in Azure AI Foundry portal. If you want to use that vectorizer for queries, an **AML** skill is the *indexing counterpart* for generating embeddings using a model in the Azure AI Foundry model catalog.
37+
38+
During indexing, the **AML** skill can connect to the model catalog to generate vectors for the index. At query time, queries can use a vectorizer to connect to the same model to vectorize text strings for a vector query. In this workflow, the **AML** skill and the model catalog vectorizer should be used together so that you're using the same embedding model for both indexing and queries. See [Use embedding models from Azure AI Foundry model catalog](vector-search-integrated-vectorization-ai-studio.md) for details and for a list of the [supported embedding models](vector-search-integrated-vectorization-ai-studio.md#supported-embedding-models).
39+
40+
We recommend using the [**Import and vectorize data**](search-get-started-portal-import-vectors.md) wizard to generate a skillset that includes an AML skill for deployed embedding models on Azure AI Foundry. AML skill definition for inputs, outputs, and mappings are generated by the wizard, which gives you an easy way to test a model before writing any code.
41+
3642
## Prerequisites
3743

38-
* An [AML workspace](../machine-learning/concept-workspace.md)
39-
* An [Online endpoints (real-time)](../machine-learning/concept-endpoints-online.md) in this workspace.
44+
* An [AML workspace](../machine-learning/concept-workspace.md) for a custom model that you create, or a project in Azure AI Foundry if an embedding model is deployed from the catalog.
45+
* An [Online endpoints (real-time)](../machine-learning/concept-endpoints-online.md) in this workspace for a custom model, or the model endpoint for embedding models deployed from the catalog.
46+
47+
## @odata.type
4048

41-
## @odata.type
4249
Microsoft.Skills.Custom.AmlSkill
4350

4451
## Skill parameters
@@ -47,40 +54,38 @@ Parameters are case-sensitive. Which parameters you choose to use depends on wha
4754

4855
| Parameter name | Description |
4956
|--------------------|-------------|
50-
| `uri` | (Required for [key authentication](#WhatSkillParametersToUse)) The [scoring URI of the AML online endpoint](../machine-learning/how-to-authenticate-online-endpoint.md) to which the _JSON_ payload is sent. Only the **https** URI scheme is allowed. |
51-
| `key` | (Required for [key authentication](#WhatSkillParametersToUse)) The [key for the AML online endpoint](../machine-learning/how-to-authenticate-online-endpoint.md). |
52-
| `resourceId` | (Required for [token authentication](#WhatSkillParametersToUse)). The Azure Resource Manager resource ID of the AML online endpoint. It should be in the format subscriptions/{guid}/resourceGroups/{resource-group-name}/Microsoft.MachineLearningServices/workspaces/{workspace-name}/onlineendpoints/{endpoint_name}. |
57+
| `uri` | (Required for [key authentication](#WhatSkillParametersToUse)) The [scoring URI of the AML online endpoint](../machine-learning/how-to-authenticate-online-endpoint.md) to which the _JSON_ payload is sent. Only the **https** URI scheme is allowed. For embedding models in the Azure AI Foundry model catalog, this is the target URI.|
58+
| `key` | (Required for [key authentication](#WhatSkillParametersToUse)) The [key for the AML online endpoint](../machine-learning/how-to-authenticate-online-endpoint.md) or the |
59+
| `resourceId` | (Required for [token authentication](#WhatSkillParametersToUse)). The Azure Resource Manager resource ID of the AML online endpoint. It should be in the format `subscriptions/{guid}/resourceGroups/{resource-group-name}/Microsoft.MachineLearningServices/workspaces/{workspace-name}/onlineendpoints/{endpoint_name}`. |
5360
| `region` | (Optional for [token authentication](#WhatSkillParametersToUse)). The [region](https://azure.microsoft.com/global-infrastructure/regions/) the AML online endpoint is deployed in. |
5461
| `timeout` | (Optional) When specified, indicates the timeout for the http client making the API call. It must be formatted as an XSD "dayTimeDuration" value (a restricted subset of an [ISO 8601 duration](https://www.w3.org/TR/xmlschema11-2/#dayTimeDuration) value). For example, `PT60S` for 60 seconds. If not set, a default value of 30 seconds is chosen. The timeout can be set to a maximum of 230 seconds and a minimum of 1 second. |
5562
| `degreeOfParallelism` | (Optional) When specified, indicates the number of calls the indexer makes in parallel to the endpoint you have provided. You can decrease this value if your endpoint is failing under too high of a request load. You can raise it if your endpoint is able to accept more requests and you would like an increase in the performance of the indexer. If not set, a default value of 5 is used. The degreeOfParallelism can be set to a maximum of 10 and a minimum of 1.
5663

5764
<a name="WhatSkillParametersToUse"></a>
5865

59-
## What skill parameters to use
66+
## Authentication
67+
68+
AML online endpoints provide two authentication options:
6069

61-
Which AML skill parameters are required depends on what authentication your AML online endpoint uses, if any. AML online endpoints provide two authentication options:
70+
* [Key-based authentication](../machine-learning/how-to-authenticate-online-endpoint.md). A static key is provided to authenticate scoring requests from AML skills. Set the `uri` and `key` parameters for this connection.
6271

63-
* [Key-Based Authentication](../machine-learning/how-to-authenticate-online-endpoint.md). A static key is provided to authenticate scoring requests from AML skills
64-
* Use the _uri_ and _key_ parameters
65-
* [Token-Based Authentication](../machine-learning/how-to-authenticate-online-endpoint.md). The AML online endpoint is [deployed using token based authentication](../machine-learning/how-to-authenticate-online-endpoint.md). The Azure AI Search service's [managed identity](/azure/active-directory/managed-identities-azure-resources/overview) must be enabled. The AML skill then uses the service's managed identity to authenticate against the AML online endpoint, with no static keys required. The identity must be assigned owner or contributor role.
66-
* Use the _resourceId_ parameter.
67-
* If the search service is in a different region from the AML workspace, use the _region_ parameter to set the region the AML online endpoint was deployed in
72+
* [Token-Based Authentication](../machine-learning/how-to-authenticate-online-endpoint.md), where the AML online endpoint is [deployed using token based authentication](../machine-learning/how-to-authenticate-online-endpoint.md). The Azure AI Search service's [managed identity](/azure/active-directory/managed-identities-azure-resources/overview) must be enabled and have a role assignment on workspace. The AML skill then uses the service's managed identity to authenticate against the AML online endpoint, with no static keys required. The search service identity must be an **Owner** or **Contributor**. Set the `resourceId` parameter, and if the search service is in a different region from the AML workspace, set the `region` parameter.
6873

6974
## Skill inputs
7075

71-
There are no "predefined" inputs for this skill. You can choose one or more fields that would be already available at the time of this skill's execution as inputs and the _JSON_ payload sent to the AML online endpoint will have different fields.
76+
Skill inputs are a node of the [enriched document](cognitive-search-working-with-skillsets.md#enrichment-tree) that's created during *document cracking*. For example, it might be the root document, a normalized image, or the content of a blob. There are no predefined inputs for this skill. For inputs, you should specify one or more nodes that are populated at the time of the AML skill's execution.
7277

7378
## Skill outputs
7479

75-
There are no "predefined" outputs for this skill. Depending on the response your AML online endpoint returns, add output fields so that they can be picked up from the _JSON_ response.
80+
Skill outputs are new nodes of an enriched document created by the skill. There are no predefined outputs for this skill. For outputs, you should provide nodes that can be populated from the JSON response of your AML skill.
7681

7782
## Sample definition
7883

7984
```json
8085
{
8186
"@odata.type": "#Microsoft.Skills.Custom.AmlSkill",
82-
"description": "A sample model that detects the language of sentence",
83-
"uri": "https://contoso.count-things.com/score",
87+
"description": "A custom model that detects the language in a document.",
88+
"uri": "https://language-model.models.contoso.com/score",
8489
"context": "/document",
8590
"inputs": [
8691
{
@@ -122,7 +127,7 @@ The output corresponds to the response returned from your AML online endpoint. T
122127
{
123128
"@odata.type": "#Microsoft.Skills.Custom.AmlSkill",
124129
"description": "A sample model that detects the language of sentence",
125-
"uri": "https://contoso.count-things.com/score",
130+
"uri": "https://language-model.models.contoso.com/score",
126131
"context": "/document",
127132
"inputs": [
128133
{
@@ -161,12 +166,14 @@ The output corresponds to the response returned from your AML online endpoint. T
161166
```
162167

163168
## Error cases
169+
164170
In addition to your AML being unavailable or sending out nonsuccessful status codes, the following are considered erroneous cases:
165171

166-
* If the AML online endpoint returns a success status code but the response indicates that it isn't `application/json`, then the response is considered invalid and no enrichments are performed.
167-
* If the AML online endpoint returns invalid json
172+
* The AML online endpoint returns a success status code, but the response indicates that it isn't `application/json`, then the response is considered invalid and no enrichments are performed.
173+
174+
* The AML online endpoint returns invalid JSON.
168175

169-
For cases when the AML online endpoint is unavailable or returns an HTTP error, a friendly error with any available details about the HTTP error will be added to the indexer execution history.
176+
For cases when the AML online endpoint is unavailable or returns an HTTP error, a friendly error with any available details about the HTTP error is added to the indexer execution history.
170177

171178
## See also
172179

64.1 KB
Loading
70.8 KB
Loading
73.4 KB
Loading
48.2 KB
Loading
56.2 KB
Loading
247 KB
Loading

articles/search/search-create-app-portal.md

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,21 @@
11
---
2-
title: "Quickstart: Create a demo app in Azure portal"
2+
title: "Quickstart: Create a demo search app in Azure portal"
33
titleSuffix: Azure AI Search
44
description: Run the Create demo app wizard to generate HTML pages and script for an operational web app. The page includes a search bar, results area, sidebar, and typeahead support.
55
manager: nitinme
66
author: HeidiSteen
77
ms.author: heidist
88
ms.service: azure-ai-search
99
ms.topic: quickstart
10-
ms.date: 01/17/2024
10+
ms.date: 12/04/2024
1111
ms.custom:
1212
- mode-ui
1313
- ignite-2023
1414
---
1515

16-
# Quickstart: Create a demo app in the Azure portal
16+
# Quickstart: Create a demo search app in the Azure portal
1717

18-
In this Azure AI Search quickstart, you'll use the Azure portal's **Create demo app** wizard to generate a downloadable, "localhost"-style web app that runs in a browser. Depending on its configuration, the generated app is operational on first use, with a live read-only connection to an index on your search service. A default app can include a search bar, results area, sidebar filters, and typeahead support.
18+
In this quickstart for Azure AI Search, learn how to use the Azure portal's **Create demo app** wizard to generate a downloadable, "localhost"-style web app that runs in a browser. Depending on how you configure it, the generated app is operational on first use, with a live read-only connection to an index on your search service. A default app can include a search bar, results area, sidebar filters, and typeahead support.
1919

2020
A demo app can help you visualize how an index will function in a client app, but it isn't intended for production scenarios. Production apps should include security, error handling, and hosting logic that the demo app doesn't provide.
2121

@@ -39,16 +39,18 @@ When the index is ready to use, move on to the next step.
3939

4040
## Start the wizard
4141

42-
1. Sign in to the [Azure portal](https://portal.azure.com/) with your Azure account.
42+
1. Sign in to the [Azure portal](https://portal.azure.com/) with your Azure account and [find your search service](https://portal.azure.com/#blade/HubsExtension/BrowseResourceBlade/resourceType/Microsoft.Search%2FsearchServices).
4343

44-
1. [Find your search service](https://portal.azure.com/#blade/HubsExtension/BrowseResourceBlade/resourceType/Microsoft.Search%2FsearchServices) and on the Overview page, from the links on the middle of the page, select **Indexes**.
44+
1. Under **Search Management** > **Indexes**
4545

4646
1. Choose *realestate-us-sample-index* from the list of existing indexes.
4747

4848
1. On the index page, at the top, select **Create demo app** to start the wizard.
4949

5050
1. On the first wizard page, select **Enable Cross Origin Resource Sharing (CORS)** to add CORS support to your index definition. This step is optional, but your local web app won't connect to the remote index without it.
5151

52+
:::image type="content" source="media/search-create-app-portal/start-app-enable-cors.png" alt-text="Screenshot of the enable CORS option for the real estate sample index.":::
53+
5254
## Configure search results
5355

5456
The wizard provides a basic layout for rendered search results that includes space for a thumbnail image, a title, and description. Backing each of these elements is a field in your index that provides the data.
@@ -57,7 +59,7 @@ The wizard provides a basic layout for rendered search results that includes spa
5759

5860
1. In Title, choose a field that conveys the uniqueness of each document. In this sample, the listing ID is a reasonable selection.
5961

60-
1. In Description, choose a field that provides details that might help someone decide whether to click through to that particular document.
62+
1. In Description, choose a field that provides details that might help someone decide whether to drill down to that particular document.
6163

6264
:::image type="content" source="media/search-create-app-portal/configure-results.png" alt-text="configure results for sample data" border="false":::
6365

@@ -88,6 +90,8 @@ The following screenshot shows options in the wizard, juxtaposed with a rendered
8890

8991
Suggestions refer to automated query prompts that are attached to the search box. Azure AI Search supports two: *autocompletion* of a partially entered search term, and *suggestions* for a dropdown list of potential matching documents based.
9092

93+
Select fields for which suggested queries are provided. You should choose shorter string fields. Avoid verbose fields such as descriptions.
94+
9195
The wizard supports suggestions, and the fields that can provide suggested results are derived from a [`Suggesters`](index-add-suggesters.md) construct in the index:
9296

9397
```JSON

0 commit comments

Comments
 (0)