Construa uma solução de enriquecimento de webhook externa no Watson Discovery

Neste tutorial, é possível usar aplicativos de amostra para construir uma solução de enriquecimento de webhook externa usando o Watson Discovery.

IBM Cloud

Siga este tutorial apenas se você estiver usando uma implementação gerenciada

A imagem a seguir mostra o fluxo de configuração de enriquecimento externo

Mostra o fluxo de configuração do enriquecimento
de configuração do enriquecimento

A imagem a seguir mostra o fluxo do processo de enriquecimento externo

Mostra o fluxo do processo de enriquecimento
do processo de enriquecimento

Para obter mais informações sobre as APIs de enriquecimento externas, consulte a API de enriquecimento externo

Objetivos do aprendizado

Ao concluir o tutorial, você aprenderá como usar os aplicativos de amostra a seguir:

  • Regex: para extração de entidade, classificação de documento e classificação de sentença usando expressões regulares
  • Granite: Para extração de entidades de e-mail usando o modelo watsonx.ai Granite
  • Slate: para extração de entidade com o modelo de Slate watsonx.ai que é ajustado com dados rotulados exportados da área de trabalho do extrator de entidade do Watson Discovery.

Duração

Este tutorial leva aproximadamente 2 horas para ser concluído.

Pré-requisito

  1. Antes de começar, deve-se configurar uma conta paga com o IBM Cloud para obter uma instância do plano Watson Discovery Plus ou Enterprise.

    É possível concluir este tutorial sem custo usando um plano Plus, que oferece uma avaliação de 30 dias sem custo. No entanto, para criar uma instância de plano Plus do serviço, é necessário ter uma conta paga (onde você fornece detalhes do cartão de crédito). Para obter mais informações sobre como criar uma conta paga, consulte Fazendo upgrade da conta. Para criar uma instância de serviço do plano Plus Discovery, acesse a página Recurso Discovery no catálogo do IBM Cloud e crie uma instância de serviço do plano Plus.

    Se você decidir parar de usar o plano Plus e não quiser pagar por ele, exclua a instância de serviço do plano Plus antes do término do período de avaliação de 30 dias.

  2. Você deve ter acesso ao repositório do Discovery doc-tutorial-downloads para fazer download dos aplicativos e dados de amostra

Pré-requisitos adicionais para o aplicativo Granite

  1. Configure uma instância do Watson Machine Learning Para obter mais informações sobre os planos de precificação, consulte Watson Machine Learning.

  2. Crie uma chave API para o IBM Cloud. Para obter mais informações, consulte Entendendo chaves API.

Pré-requisitos adicionais para o aplicativo Slate

  1. Configure uma instância do Watson Machine Learning Para obter mais informações sobre os planos de precificação, consulte Watson Machine Learning.

  2. Configure uma instância do Cloud Pak for Data 4.7.x ou mais recente e instale o Watson Studio e o Watson Machine Learning.

  3. Crie uma chave API para o IBM Cloud. Para obter mais informações, consulte Entendendo chaves API.

  4. Crie uma chave de API para o IBM Cloud Pak for Data. Para obter mais informações, consulte Começando a usar o IBM Cloud Paks.

Regex-Extração de entidade, classificação de documento e classificação de sentença usando expressões regulares

Nesta amostra, estamos usando IBM Cloud Code Engine como o ambiente de infraestrutura para o aplicativo de enriquecimento de webhook. No entanto, é possível implementar o aplicativo em qualquer outro ambiente

  1. Implemente o aplicativo de enriquecimento de webhook no IBM Cloud Code Engine.

    1. Crie um projeto em IBM Cloud Code Engine. Para obter mais informações, consulte Criar um projeto

    2. Crie um segredo no projeto. Para obter mais informações, consulte Criando segredos..

      Esse segredo deve conter os seguintes pares de valores de chave:

      • WD_API_URL: O ponto de extremidade da API URL de sua instância Discovery.
      • WD_API_KEY: a chave de API da instância do Discovery.
      • WEBHOOK_SECRET: uma chave para passar com a solicitação que pode ser usada para autenticar com o aplicativo. Por exemplo, purple_unicorn.
    3. Implementar o aplicativo a partir do código-fonte do repositório de amostra. Para obter mais informações, consulte Implementando seu app a partir do código-fonte do repositório

      Em Criar aplicativo, clique em Especificar detalhes da construção e insira esses detalhes

      • Para origem, especifique:

        • URL do repositório de código: URL do repositório de código de exemplo Discovery página doc-tutorial-downloads
        • Acesso ao repositório de código: None
        • Nome da filial: master
        • Diretório de contexto: discovery-data/webhook-enrichment-sample/regex
      • strategy: Dockerfile

      • Saída: insira suas informações de registro de imagens de contêiner

      • Abra Variáveis de Ambiente (Opcional) e inclua as variáveis de ambiente a seguir:

        • Definir como: Reference to full secret
        • Segredo: o nome do segredo criado no projeto na etapa anterior

      É possível configurar o Número mínimo de instâncias para 1.

    4. Assegure-se de que o status do aplicativo mude para Pronto.

  2. Configure o enriquecimento do webhook Discovery. Para obter mais informações, consulte Configuração do enriquecimento do webhook.

  3. Alimentar documentos para Discovery e ver os resultados.

    1. Faça upload de nhtsa.csv de Discovery doc-tutorial-downloads para a coleta.
    2. Localize os resultados do enriquecimento de webhook visualizando os resultados da consulta após o processamento do documento ser concluído

Granite- Extração de entidades usando um modelo de base de watsonx.ai

Neste exemplo, extraímos entidades de um e-mail usando o modelo watsonx.ai Granite. Estamos usando IBM Cloud Code Engine como o ambiente de infraestrutura para a aplicação do enriquecimento de webhook. No entanto, é possível implementar o aplicativo em qualquer outro ambiente

  1. Implemente o aplicativo de enriquecimento de webhook no IBM Cloud Code Engine.

    1. Crie um projeto em IBM Cloud Code Engine. Para obter mais informações, consulte Criar um projeto

    2. Crie um segredo no projeto. Para obter mais informações, consulte Criando segredos..

      Esse segredo deve conter os seguintes pares de valores de chave:

      • WD_API_URL: O ponto de extremidade da API URL de sua instância Discovery.
      • WD_API_KEY: a chave de API da instância do Discovery.
      • WEBHOOK_SECRET: uma chave para passar com a solicitação que pode ser usada para autenticar com o aplicativo. Por exemplo, purple_unicorn.
      • IBM_CLOUD_API_KEY: a chave API do IBM Cloud. Ele é usado para acessar a API do Watson Machine Learning
      • WML_ENDPOINT_URL: O endpoint da API URL de seu Watson Machine Learning. Para obter mais informações, consulte a documentação do site Machine Learning.
      • WML_INSTANCE_CRN: o CRN da instância do Watson Machine Learning. É possível localizar sua instância e CRN usando o comando ibmcloud : ibmcloud resources.
    3. Implementar o aplicativo a partir do código-fonte do repositório de amostra. Para obter mais informações, consulte Implementando seu app a partir do código-fonte do repositório

      Em Criar aplicativo, clique em Especificar detalhes da construção e insira esses detalhes

      • Para origem, especifique:

        • URL do repositório de código: URL do repositório de código de exemplo Discovery página doc-tutorial-downloads
        • Acesso ao repositório de código: None
        • Nome da filial: master
        • Diretório de contexto: discovery-data/webhook-enrichment-sample/granite
      • strategy: Dockerfile

      • Saída: insira suas informações de registro de imagens de contêiner

      • Abra Variáveis de Ambiente (Opcional) e inclua as variáveis de ambiente a seguir:

        • Definir como: Reference to full secret
        • Segredo: o nome do segredo criado no projeto na etapa anterior

      É possível configurar o Número mínimo de instâncias para 1.

    4. Assegure-se de que o status do aplicativo mude para Pronto.

  2. Configure o enriquecimento do webhook Discovery. Para obter mais informações, consulte Configuração do enriquecimento do webhook.

  3. Alimentar documentos para Discovery e ver os resultados.

    1. Faça upload de email.txt de Discovery doc-tutorial-downloads para a coleção.
    2. Localize os resultados do enriquecimento de webhook visualizando os resultados da consulta após o processamento do documento ser concluído

Slate-Extração de entidade com o modelo de Slate Watsonx.ai que é ajustado com dados rotulados exportados da área de trabalho do extrator de entidade do Watson Discovery.

Os modelos de ardósia têm a melhor compensação de desempenho de custo para casos de uso não gerativos. Para o ajuste fino, ele requer dados rotulados específicos da tarefa É possível preparar dados rotulados no Watson Discovery, ajustar o modelo Slate no Watson Studioe implementar o modelo no Watson Machine Learning. Depois de implementar um modelo ajustado, é possível criar um enriquecimento de webhook que enriquece documentos usando esse modelo no Watson Discovery.

  1. Prepare dados rotulados no Watson Discovery.

    1. Crie uma área de trabalho do extrator de entidade e rotule os dados Para obter mais informações, consulte Definir entidades customizadas

    2. Faça download de dados rotulados da área de trabalho do extrator de entidade. Para obter mais informações, consulte Exportando dados rotulados para um extrator de entidade

      Neste tutorial, é possível usar os dados rotulados de amostra do Discovery doc-tutorial-downloads em etapas subsequentes

  2. Ajuste o modelo de ardósia no Watson Studio e implemente o modelo no Watson Machine Learning.

    1. Crie um projeto em Watson Studio. Para obter mais informações, consulte Criando um projeto

    2. Crie um espaço de implementação no Watson Machine Learning. Para obter mais informações, consulte Criando espaços de implementação

    3. Crie um modelo de ambiente para o projeto. Para obter mais informações, consulte Criando modelos de ambiente.. Você pode criar com as seguintes opções:

      • Tipo: Default
      • Configuração do Hardware
        • Reserva vCPU: 2
        • Reservar RAM (GB): 8
      • Versão de software: Runtime 23.1 em Python 3.10
    4. Crie o bloco de notas no projeto usando o modelo de ambiente como tempo de execução do arquivo de bloco de notas. Para obter mais informações sobre como criar um bloco de notas, consulte Criando blocos de notas. O arquivo de bloco de notas está em Discovery doc-tutorial-downloads.

    5. Faça upload de dados rotulados no bloco de notas Para obter mais informações, consulte Carregar dados de arquivos locais.

    6. Ajuste e implemente o modelo de Slate executando o bloco de notas passo a passo e substituindo determinadas variáveis

  3. Implemente o aplicativo de enriquecimento de webhook no IBM Cloud Code Engine.

    1. Crie um projeto em IBM Cloud Code Engine. Para obter mais informações, consulte Criar um projeto

    2. Crie um segredo no projeto. Para obter mais informações, consulte Criando segredos..

      Esse segredo deve conter os seguintes pares de valores de chave:

      • WD_API_URL: O ponto de extremidade da API URL de sua instância Discovery.
      • WD_API_KEY: a chave de API da instância do Discovery.
      • WEBHOOK_SECRET: uma chave para passar com a solicitação que pode ser usada para autenticar com o aplicativo. Por exemplo, purple_unicorn.
      • SCORING_API_HOSTNAME: o nome do host da API de sua implementação de escoragem do Watson Machine Learning que atende seu modelo de ardósia ajustado.
      • SCORING_DEPLOYMENT_ID: o ID de sua implementação de escoragem do Watson Machine Learning que atende seu modelo de ardósia ajustada.
      • SCORING_API_TOKEN: o token da API usado na autorização de acesso para usar sua implementação de pontuação do Watson Machine Learning que atende seu modelo de Slate ajustado. Você pode obter um token usando o seguinte comando:
      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
      )
      
  4. Implementar o aplicativo a partir do código-fonte do repositório de amostra. Para obter mais informações, consulte Implementando seu app a partir do código-fonte do repositório

    1. Em Criar aplicativo, clique em Especificar detalhes da construção e insira esses detalhes

      • Para origem, especifique:

        • URL do repositório de código: URL do repositório de código de exemplo Discovery página doc-tutorial-downloads
        • Acesso ao repositório de código: None
        • Nome da filial: master
        • Diretório de contexto: discovery-data/webhook-enrichment-sample/slate
      • strategy: Dockerfile

      • Saída: insira suas informações de registro de imagens de contêiner

      • Abra Variáveis de Ambiente (Opcional) e inclua as variáveis de ambiente a seguir:

        • Definir como: Reference to full secret
        • Segredo: o nome do segredo criado no projeto na etapa anterior

      É possível configurar o Número mínimo de instâncias para 1.

    2. Assegure-se de que o status do aplicativo mude para Pronto.

  5. Configure o enriquecimento do webhook Discovery. Para obter mais informações, consulte Configuração do enriquecimento do webhook.

  6. Alimentar documentos para Discovery e ver os resultados.

    1. Faça upload de uma página do Relatório anual de Discovery doc-tutorial-downloads para a coleta..
    2. Localize os resultados do enriquecimento de webhook visualizando os resultados da consulta após o processamento do documento ser concluído

Configurando o enriquecimento de webhook

  1. Crie um projeto.

  2. Crie um enriquecimento de webhook usando a 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'
    
  3. Crie uma coleção no projeto e aplique o enriquecimento de webhook para a coleção

    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'