Générez une solution d'enrichissement de webhook externe dans Watson Discovery
Dans ce tutoriel, vous pouvez utiliser des exemples d'application pour générer une solution d'enrichissement de webhook externe à l'aide de Watson Discovery.
IBM Cloud
Suivez ce tutoriel uniquement si vous utilisez un déploiement géré.
L'image suivante montre le flux de configuration de l'enrichissement externe.
{: caption="de configuration de l'enrichissement externeFlux " caption-side="bottom"} configuration de l'enrichissement externe
L'image suivante montre le flux du processus d'enrichissement externe.
Pour plus d'informations sur les API d'enrichissement externe, voir API d'enrichissement externe.
Objectifs d'apprentissage
Lorsque vous aurez terminé le tutoriel, vous apprendrez à utiliser les exemples d'application suivants:
Regex: pour l'extraction d'entité, la classification de document et la classification de phrase à l'aide d'expressions régulièresGranite: Pour l'extraction d'entités à partir d'un courriel en utilisant le modèle watsonx.ai GraniteSlate: pour l'extraction d'entité avec le modèle Slate watsonx.ai qui est affiné avec des données libellées exportées à partir de l'espace de travail de l'extracteur d'entité de Watson Discovery.
Durée
Ce tutoriel dure environ 2 heures.
Prérequis
-
Avant de commencer, vous devez configurer un compte payant avec IBM Cloud pour obtenir une instance du plan Watson Discovery Plus ou Enterprise.
Vous pouvez suivre ce tutoriel gratuitement en utilisant un plan Plus, qui offre un essai gratuit de 30 jours. Cependant, pour créer une instance du plan Plus du service, vous devez avoir un compte payant (où vous fournissez les détails de votre carte de crédit). Pour plus d'informations sur la création d'un compte payant, voir Mise à niveau de votre compte. Pour créer une instance de service de plan Plus Discovery, accédez à la page Discovery ressource dans le catalogue IBM Cloud et créez une instance de service de plan Plus.
Si vous décidez de ne plus utiliser le plan Plus et de ne plus payer, supprimez l'instance de service du plan Plus avant la fin de la période d'essai de 30 jours.
-
Vous devez avoir accès au référentiel Discovery doc-tutorial-downloads pour télécharger les exemples d'applications et de données.
Conditions préalables supplémentaires pour l'application Granite
-
Configurez une instance de Watson Machine Learning. Pour plus d'informations sur les plans de tarification, voir Watson Machine Learning.
-
Créez une clé d'API pour IBM Cloud. Pour plus d'informations, voir Description des clés d'API.
Prérequis supplémentaires pour l'application Slate
-
Configurez une instance de Watson Machine Learning. Pour plus d'informations sur les plans de tarification, voir Watson Machine Learning.
-
Configurez une instance de Cloud Pak for Data 4.7.x ou version ultérieure et installez Watson Studio et Watson Machine Learning.
-
Créez une clé d'API pour IBM Cloud. Pour plus d'informations, voir Description des clés d'API.
-
Créez une clé API pour IBM Cloud Pak for Data. Pour plus d'informations, voir Getting Started with IBM Cloud Paks.
Regex-Entity Extraction, classification de document et classification de phrase à l'aide d'expressions régulières
Dans cet exemple, nous utilisons IBM Cloud Code Engine comme environnement d'infrastructure pour l'application de l'enrichissement de webhook. Toutefois, vous pouvez déployer l'application dans n'importe quel autre environnement.
-
Déployez l'application d'enrichissement de webhook dans IBM Cloud Code Engine.
-
Créez un projet dans IBM Cloud Code Engine. Pour plus d'informations, voir Création d'un projet.
-
Créer un secret dans le projet. Pour plus d'informations, voir Création de secrets.
Ce secret doit contenir les paires clé-valeur suivantes:
WD_API_URL: Le point de terminaison de l'API URL de votre instance Discovery.WD_API_KEY: clé d'API de votre instance Discovery.WEBHOOK_SECRET: clé à transmettre avec la demande qui peut être utilisée pour l'authentification auprès de l'application. Par exemple,purple_unicorn.
-
Déployez l'application à partir de l'exemple de code source de référentiel. Pour plus d'informations, voir Déploiement de votre application à partir du code source du référentiel.
Dans Créer une application, cliquez sur Spécifier les détails de la génération et entrez ces détails.
-
Pour la source, spécifiez:
- Code repo URL: URL de l'échantillon de code Discovery doc-tutorial-downloads page
- Accès à la base de données du code :
None - Nom de la succursale
master - Répertoire de contexte:
discovery-data/webhook-enrichment-sample/regex
-
strategy:
Dockerfile -
Sortie: Entrez vos informations de registre d'images de conteneur
-
Ouvrez Variables d'environnement (facultatif) et ajoutez les variables d'environnement suivantes:
- Définir en tant que:
Reference to full secret - Secret: nom du secret que vous avez créé dans le projet à l'étape précédente
- Définir en tant que:
Vous pouvez définir le nombre minimal d'instances sur 1.
-
-
Vérifiez que le statut de l'application passe à Prêt.
-
-
Configurez l'enrichissement de webhook Discovery. Pour plus d'informations, voir Configuration de l'enrichissement du webhook.
-
Ingérez des documents dans Discovery et affichez les résultats.
- Téléchargez nhtsa.csv depuis Discovery doc-tutorial-downloads dans la collection.
- Recherchez les résultats de l'enrichissement de webhook en prévisualisant vos résultats de requête une fois le traitement du document terminé.
Granite- Extraction d'entités en utilisant un modèle de base de watsonx.ai
Dans cet exemple, nous extrayons des entités d'un courriel en utilisant le modèle watsonx.ai Granite. Nous utilisons IBM Cloud Code Engine comme environnement d'infrastructure pour l'application de l'enrichissement des webhooks. Toutefois, vous pouvez déployer l'application dans n'importe quel autre environnement.
-
Déployez l'application d'enrichissement de webhook dans IBM Cloud Code Engine.
-
Créez un projet dans IBM Cloud Code Engine. Pour plus d'informations, voir Création d'un projet.
-
Créer un secret dans le projet. Pour plus d'informations, voir Création de secrets.
Ce secret doit contenir les paires clé-valeur suivantes:
WD_API_URL: Le point de terminaison de l'API URL de votre instance Discovery.WD_API_KEY: clé d'API de votre instance Discovery.WEBHOOK_SECRET: clé à transmettre avec la demande qui peut être utilisée pour l'authentification auprès de l'application. Par exemple,purple_unicorn.IBM_CLOUD_API_KEY: clé d'API d' IBM Cloud. Il est utilisé pour accéder à l'API Watson Machine Learning.WML_ENDPOINT_URL: Le point de terminaison de l'API URL de votre Watson Machine Learning. Pour plus d'informations, voir la documentation de Machine Learning.WML_INSTANCE_CRN: CRN de votre instance Watson Machine Learning. Vous pouvez trouver votre instance et votre CRN à l'aide de la commandeibmcloud:ibmcloud resources.
-
Déployez l'application à partir de l'exemple de code source de référentiel. Pour plus d'informations, voir Déploiement de votre application à partir du code source du référentiel.
Dans Créer une application, cliquez sur Spécifier les détails de la génération et entrez ces détails.
-
Pour la source, spécifiez:
- Code repo URL: URL de l'échantillon de code Discovery doc-tutorial-downloads page
- Accès à la base de données du code :
None - Nom de la succursale
master - Répertoire de contexte:
discovery-data/webhook-enrichment-sample/granite
-
strategy:
Dockerfile -
Sortie: Entrez vos informations de registre d'images de conteneur
-
Ouvrez Variables d'environnement (facultatif) et ajoutez les variables d'environnement suivantes:
- Définir en tant que:
Reference to full secret - Secret: nom du secret que vous avez créé dans le projet à l'étape précédente
- Définir en tant que:
Vous pouvez définir le nombre minimal d'instances sur 1.
-
-
Vérifiez que le statut de l'application passe à Prêt.
-
-
Configurez l'enrichissement de webhook Discovery. Pour plus d'informations, voir Configuration de l'enrichissement du webhook.
-
Ingérez des documents dans Discovery et affichez les résultats.
- Téléchargez email.txt depuis Discovery doc-tutorial-downloads vers la collection.
- Recherchez les résultats de l'enrichissement de webhook en prévisualisant vos résultats de requête une fois le traitement du document terminé.
Slate-Extraction d'entité avec le modèle Watsonx.ai Slate qui est affiné avec des données libellées exportées à partir de l'espace de travail de l'extracteur d'entité de Watson Discovery.
Les modèles d'ardoise ont le meilleur compromis de performance de coût pour les cas d'utilisation non génératifs. Pour un réglage fin, il requiert des données de libellé spécifiques à la tâche. Vous pouvez préparer des données libellées dans Watson Discovery, affiner le modèle Slate dans Watson Studioet déployer le modèle dans Watson Machine Learning. Une fois que vous avez déployé un modèle optimisé, vous pouvez créer un enrichissement de webhook qui enrichit les documents à l'aide de ce modèle dans Watson Discovery.
-
Préparez les données libellées dans Watson Discovery.
-
Créez un espace de travail d'extracteur d'entité et des données de libellé. Pour plus d'informations, voir Définition d'entités personnalisées.
-
Téléchargez les données libellées à partir de l'espace de travail de l'extracteur d'entité. Pour plus d'informations, voir Exportation de données libellées pour un extracteur d'entité.
Dans ce tutoriel, vous pouvez utiliser les exemples de données labled de Discovery doc-tutorial-downloads dans les étapes suivantes.
-
-
Affinez le modèle d'ardoise dans Watson Studio et déployez le modèle dans Watson Machine Learning.
-
Créez un projet sur Watson Studio. Pour plus d'informations, voir Création d'un projet.
-
Créez un espace de déploiement dans Watson Machine Learning. Pour plus d'informations, voir Création d'espaces de déploiement
-
Créez un modèle d'environnement dans le projet. Pour plus d'informations, voir Création de modèles d'environnement. Vous pouvez créer avec les options suivantes :
- Type:
Default - Configuration matérielle
- Réserve vCPU: 2
- Réserver de la mémoire RAM (Go): 8
- Version logicielle: Runtime 23.1 sur Python 3.10
- Type:
-
Créez un bloc-notes dans le projet en utilisant le modèle d'environnement comme environnement d'exécution à partir du fichier de bloc-notes. Pour plus d'informations sur la création d'un bloc-notes, voir Création de blocs-notes. Le fichier de bloc-notes se trouve dans Discovery doc-tutorial-downloads.
-
Téléchargez les données libellées dans le bloc-notes. Pour plus d'informations, voir Chargement de données à partir de fichiers locaux.
-
Affinez et déployez le modèle Slate en exécutant le bloc-notes étape par étape et en remplaçant certaines variables.
-
-
Déployez l'application d'enrichissement de webhook dans IBM Cloud Code Engine.
-
Créez un projet dans IBM Cloud Code Engine. Pour plus d'informations, voir Création d'un projet.
-
Créer un secret dans le projet. Pour plus d'informations, voir Création de secrets.
Ce secret doit contenir les paires clé-valeur suivantes:
WD_API_URL: Le point de terminaison de l'API URL de votre instance Discovery.WD_API_KEY: clé d'API de votre instance Discovery.WEBHOOK_SECRET: clé à transmettre avec la demande qui peut être utilisée pour l'authentification auprès de l'application. Par exemple,purple_unicorn.SCORING_API_HOSTNAME: nom d'hôte d'API de votre déploiement d'évaluation Watson Machine Learning qui sert votre modèle d'ardoise optimisé.SCORING_DEPLOYMENT_ID: ID de votre déploiement de scoring Watson Machine Learning qui sert votre modèle d'ardoise affinée.SCORING_API_TOKEN: jeton d'API utilisé dans l'autorisation bearer pour utiliser votre déploiement de scoring Watson Machine Learning qui sert votre modèle Slate affiné. Vous pouvez obtenir un jeton en utilisant la commande suivante :
curl -X POST {auth} \ SCORING_API_TOKEN=$( curl -k -X POST 'https://{hostname of your cp4d instance}/icp4d-api/v1/authorize' \ --header "Content-Type: application/json" -d "{\"username\":\"admin\",\"api_key\":\"{api key of your cp4d instance}\"}" \ | jq .token )
-
-
Déployez l'application à partir de l'exemple de code source de référentiel. Pour plus d'informations, voir Déploiement de votre application à partir du code source du référentiel.
-
Dans Créer une application, cliquez sur Spécifier les détails de la génération et entrez ces détails.
-
Pour la source, spécifiez:
- Code repo URL: URL de l'échantillon de code Discovery doc-tutorial-downloads page
- Accès à la base de données du code :
None - Nom de la succursale
master - Répertoire de contexte:
discovery-data/webhook-enrichment-sample/slate
-
strategy:
Dockerfile -
Sortie: Entrez vos informations de registre d'images de conteneur
-
Ouvrez Variables d'environnement (facultatif) et ajoutez les variables d'environnement suivantes:
- Définir en tant que:
Reference to full secret - Secret: nom du secret que vous avez créé dans le projet à l'étape précédente
- Définir en tant que:
Vous pouvez définir le nombre minimal d'instances sur 1.
-
-
Vérifiez que le statut de l'application passe à Prêt.
-
-
Configurez l'enrichissement de webhook Discovery. Pour plus d'informations, voir Configuration de l'enrichissement du webhook.
-
Ingérez des documents dans Discovery et affichez les résultats.
- Téléchargez une page du rapport annuel à partir de Discovery doc-tutorial-downloads dans la collection.
- Recherchez les résultats de l'enrichissement de webhook en prévisualisant vos résultats de requête une fois le traitement du document terminé.
Configuration de l'enrichissement de webhook
-
Permet de créer un projet.
-
Créez un enrichissement de webhook à l'aide de l'API Discovery.
curl -X POST {auth} \ --header 'Content-Type: multipart/form-data' \ --form 'enrichment={"name":"my-first-webhook-enrichment", \ "type":"webhook", \ "options":{"url":"{your_code_engine_app_domain}/webhook", \ "secret":"{your_webhook_secret}", \ "location_encoding":"utf-32"}}' \ '{url}/v2/projects/{project_id}/enrichments?version=2023-03-31' -
Créez une collection dans le projet et appliquez l'enrichissement webhook à la collection.
curl -X POST {auth} \ --header 'Content-Type: application/json' \ --data '{"name":"my-collection", \ "enrichments":[{"enrichment_id":"{enrichment_id}", \ "fields":["text"]}]}' \ '{url}/v2/projects/{project_id}/collections?version=2023-03-31'