title: Compétence AML personnalisée dans des ensembles de compétences titleSuffix: Azure Cognitive Search description: Étendez les capacités des ensembles de compétences Recherche cognitive Azure à l’aide de modèles Azure Machine Learning. manager: nitinme author: mattmsft ms.author: magottei ms.service: cognitive-search ms.topic: conceptual ms.date: 06/12/2020 ms.openlocfilehash: 6cefe543ea8ba992b028448070bf041a77bfec64 ms.sourcegitcommit: f28ebb95ae9aaaff3f87d8388a09b41e0b3445b5 ms.translationtype: HT ms.contentlocale: fr-FR ms.lasthandoff: 03/29/2021 ms.locfileid: "97630273"
<a name="aml-skill-in-an-azure-cognitive-search-enrichment-pipeline"></a>Compétence AML dans un pipeline d’enrichissement Recherche cognitive Azure
[!IMPORTANT] Cette compétence est actuellement en préversion publique. Les fonctionnalités en préversion sont fournies sans contrat de niveau de service et ne sont pas recommandées pour les charges de travail de production. Pour plus d’informations, consultez Conditions d’Utilisation Supplémentaires relatives aux Évaluations Microsoft Azure. Le SDK .NET n’est actuellement pas pris en charge.
La compétence AML vous permet d’étendre l’enrichissement par IA à l’aide d’un modèle Azure Machine Learning (AML) personnalisé. Une fois qu’un modèle AML est formé et déployé, une compétence AML l’intègre dans l’enrichissement par IA.
À l’instar des compétences intégrées, une compétence AML a des entrées et des sorties. Les entrées sont envoyées à votre service AML déployé sous la forme d’un objet JSON, qui génère une charge utile JSON en réponse avec un code d’état de réussite. La réponse est censée avoir les sorties spécifiées par votre compétence AML. Toute autre réponse est considérée comme une erreur et aucun enrichissement n’est effectué.
[!NOTE] L’indexeur réessaie deux fois pour certains codes d’état HTTP standard retournés par le service AML. Ces codes d’état HTTP sont les suivants :
503 Service Unavailable429 Too Many Requests
<a name="prerequisites"></a>Prérequis
- Un espace de travail AML
- Une cible de calcul AML Azure Kubernetes Service dans cet espace de travail avec un modèle déployé
- La cible de calcul doit permettre l’utilisation du protocole SSL. Recherche cognitive Azure autorise uniquement l’accès aux points de terminaison https.
- Les certificats autosignés ne peuvent pas être utilisés.
<a name="odatatype"></a>@odata.type
Microsoft.Skills.Custom.AmlSkill
<a name="skill-parameters"></a>Paramètres de la compétence
Les paramètres respectent la casse. Les paramètres que vous choisissez d’utiliser dépendent de l’authentification dont votre service AML a besoin, le cas échéant.
| Nom du paramètre | Description |
|---|---|
uri | (Requis en l’absence d’authentification ou pour une authentification par clé) URI de scoring du service AML auquel la charge utile JSON sera envoyée. Seul le schéma d’URI https est autorisé. |
key | (Requis pour l’authentification par clé) Clé du service AML. |
resourceId | (Requis pour l’authentification par jeton). ID de ressource Azure Resource Manager du service AML. Il doit être au format subscriptions/{guid}/resourceGroups/{resource-group-name}/Microsoft.MachineLearningServices/workspaces/{workspace-name}/services/{service_name}. |
region | (Facultatif pour l’authentification par jeton). Région dans laquelle le service AML est déployé. |
timeout | (Facultatif) Si spécifié, indique le délai d’expiration pour le client http qui effectue l’appel d’API. Il doit être formaté en tant que valeur « dayTimeDuration » XSD (un sous-ensemble limité d'une valeur de durée ISO 8601 ). Par exemple, PT60S pour 60 secondes. S’il n’est pas défini, une valeur par défaut de 30 secondes est choisie. Le délai d’expiration peut être défini sur 230 secondes maximum et 1 seconde minimum. |
degreeOfParallelism | (Facultatif) Lorsqu’il est spécifié, indique le nombre d’appels que l’indexeur effectuera en parallèle au point de terminaison que vous avez fourni. Vous pouvez réduire cette valeur si votre point de terminaison échoue avec une charge de requête trop élevée, ou l’augmenter si votre point de terminaison est en mesure d’accepter plus de requêtes et si vous souhaitez augmenter les performances de l’indexeur. S’il n’est pas défini, une valeur par défaut de 5 secondes est utilisée. Le degreeOfParallelism peut avoir une valeur maximale de 10 et un minimum de 1. |
<a name="WhatSkillParametersToUse"></a>
<a name="what-skill-parameters-to-use"></a>Paramètres de compétence à utiliser
Les paramètres de compétence AML requis dépendent de l’authentification utilisée par votre service AML, le cas échéant. Les services AML fournissent trois options d’authentification :
- Authentification basée sur une clé. Une clé statique est fournie pour authentifier les demandes de scoring des compétences AML
- Utiliser les paramètres uri et key
- Authentification basée sur un jeton. Le service AML est déployé à l’aide de l’authentification basée sur un jeton. L’identité managée du service Recherche cognitive Azure reçoit le rôle Lecteur dans l’espace de travail du service AML. La compétence AML utilise ensuite l’identité managée du service Recherche cognitive Azure pour s’authentifier auprès du service AML, sans qu’aucune clé statique soit nécessaire.
- Utiliser le paramètre resourceId
- Si le service Recherche cognitive Azure se trouve dans une autre région que celle de l’espace de travail AML, utilisez le paramètre region pour définir la région dans laquelle le service AML a été déployé.
- Aucune authentification. Aucune authentification n’est requise pour utiliser le service AML
- Utiliser le paramètre uri
<a name="skill-inputs"></a>Entrées de la compétence
Il n’y a pas d’entrée « prédéfinie » pour cette compétence. Si vous choisissez comme entrées un ou plusieurs champs déjà disponibles au moment de l’exécution de cette compétence, la charge utile JSON envoyée au service AML aura des champs différents.
<a name="skill-outputs"></a>Sorties de la compétence
Il n’y a pas de sortie « prédéfinie » pour cette compétence. En fonction de la réponse envoyée par votre service AML, ajoutez des champs de sortie à récupérer dans la réponse JSON.
<a name="sample-definition"></a>Exemple de définition
{
"@odata.type": "#Microsoft.Skills.Custom.AmlSkill",
"description": "A sample model that detects the language of sentence",
"uri": "https://contoso.count-things.com/score",
"context": "/document",
"inputs": [
{
"name": "text",
"source": "/document/content"
}
],
"outputs": [
{
"name": "detected_language_code"
}
]
}
<a name="sample-input-json-structure"></a>Exemple de structure JSON d’entrée
Cette structure JSON représente la charge utile à envoyer à votre service AML. Les champs de haut niveau de la structure correspondront aux « noms » spécifiés dans la section inputs de la définition de compétence. La valeur de ces champs provient de la source de ces champs (qui peut être un champ dans le document ou éventuellement une autre compétence)
{
"text": "Este es un contrato en Inglés"
}
<a name="sample-output-json-structure"></a>Exemple de structure JSON de sortie
Le terme « output » correspond à la réponse renvoyée par votre service AML. Le service AML ne doit retourner qu’une charge utile JSON (vérifiée en examinant l’en-tête de réponse Content-Type) et doit être un objet dans lequel les champs sont des enrichissements correspondant aux « noms » dans la section output et dont la valeur est l’enrichissement.
{
"detected_language_code": "es"
}
<a name="inline-shaping-sample-definition"></a>Exemple de définition de mise en forme inlined
{
"@odata.type": "#Microsoft.Skills.Custom.AmlSkill",
"description": "A sample model that detects the language of sentence",
"uri": "https://contoso.count-things.com/score",
"context": "/document",
"inputs": [
{
"name": "shapedText",
"sourceContext": "/document",
"inputs": [
{
"name": "content",
"source": "/document/content"
}
]
}
],
"outputs": [
{
"name": "detected_language_code"
}
]
}
<a name="inline-shaping-input-json-structure"></a>Structure JSON d’entrée de mise en forme inlined
{
"shapedText": { "content": "Este es un contrato en Inglés" }
}
<a name="inline-shaping-sample-output-json-structure"></a>Structure JSON d’exemple de sortie de mise en forme inlined
{
"detected_language_code": "es"
}
<a name="error-cases"></a>Cas d’erreur
En plus de la non-disponibilité de votre service AML ou de l’envoi de codes d’état non réussis, les cas suivants sont considérés comme erronés :
- Si le service AML retourne un code d’état de réussite, mais que la réponse indique que ce n’est pas
application/json, la réponse est considérée non valide et aucun enrichissement n’est effectué. - Si le service AML retourne un JSON non valide
Quand le service AML n’est pas disponible ou retourne une erreur HTTP, une erreur conviviale avec tous les détails disponibles sur l’erreur HTTP est ajoutée à l’historique des exécutions de l’indexeur.