在 Watson Discovery 中建置外部 Webhook 強化解決方案
在本指導教學中,您可以使用範例應用程式,透過使用 Watson Discovery來建置外部 Webhook 強化解決方案。
IBM Cloud
僅當您使用受管理部署時,才遵循本指導教學。
下列影像顯示外部強化配置流程。
下列影像顯示外部強化處理程序流程。
如需外部強化 API 的相關資訊,請參閱 外部強化 API。
學習目標
完成指導教學時,您將學習如何使用下列範例應用程式:
Regex: 針對使用正規表示式的實體擷取、文件分類及句子分類Granite:使用 watsonx.ai Granite 模型從電子郵件中抽取實體Slate: 針對具有 watsonx.ai Slate 模型的實體擷取,該模型使用從 Watson Discovery的實體擷取程式工作區匯出的含標籤資料進行細部調整。
持續時間
本教程約需 2 小時完成。
必備項目
-
開始之前,您必須先使用 IBM Cloud 設定付費帳戶,以取得 Watson Discovery Plus 或 Enterprise 方案的實例。
您可以免費完成本指導教學,方法是使用「加值」方案,免費提供 30 天試用。 不過,若要建立服務的 Plus 方案實例,您必須具有付費帳戶 (在其中提供信用卡詳細資料)。 如需建立付費帳戶的相關資訊,請參閱 升級帳戶。 若要建立 Plus 方案 Discovery 服務實例,請跳至 IBM Cloud 型錄中的 Discovery 資源 頁面,並建立 Plus 方案服務實例。
如果您決定停止使用 Plus 方案,且不想支付它的費用,請在 30 天試用期間結束之前刪除 Plus 方案服務實例。
-
您應該有權存取 Discovery doc-tutorial-downloads 儲存庫,以下載範例應用程式和資料。
Granite應用程式的其他先決條件
-
設定 Watson Machine Learning的實例。 如需定價方案的相關資訊,請參閱 Watson Machine Learning。
-
建立 IBM Cloud的 API 金鑰。 如需相關資訊,請參閱 瞭解 API 金鑰。
「Slate」應用程式的其他必要條件
-
設定 Watson Machine Learning的實例。 如需定價方案的相關資訊,請參閱 Watson Machine Learning。
-
設定 Cloud Pak for Data 4.7.x 或更新版本的實例,並安裝 Watson Studio 和 Watson Machine Learning。
-
建立 IBM Cloud的 API 金鑰。 如需相關資訊,請參閱 瞭解 API 金鑰。
-
為 IBM Cloud Pak for Data 建立 API 金鑰。 如需詳細資訊,請參閱 Getting Started with IBM Cloud Paks。
Regex-使用正規表示式的實體擷取、文件分類及句子分類
在此範例中,我們使用 IBM Cloud Code Engine 作為基礎架構環境,以套用 Webhook 強化。 不過,您可以在任何其他環境中部署應用程式。
-
將 Webhook 強化應用程式部署至 IBM Cloud Code Engine。
-
在 IBM Cloud Code Engine 中建立專案。 如需相關資訊,請參閱 建立專案。
-
在專案中建立秘密。 如需相關資訊,請參閱 建立密鑰。
此密鑰必須包含下列鍵值組:
WD_API_URL:您的 Discovery 範例的 API 端點 URL。WD_API_KEY: Discovery 實例的 API 金鑰。WEBHOOK_SECRET: 與要求一起傳遞的金鑰,可用來向應用程式進行鑑別。 例如,purple_unicorn。
-
從範例儲存庫原始碼部署應用程式。 如需相關資訊,請參閱 從儲存庫原始碼部署應用程式。
在 建立應用程式中,按一下 指定建置詳細資料,然後輸入這些詳細資料。
-
對於來源,請指定:
- 代碼倉庫 URL: URL 的示例代碼倉庫 Discovery doc-tutorial-downloads 頁面
- 程式碼 repo 存取:
None - 分公司名稱:
master - 環境定義目錄:
discovery-data/webhook-enrichment-sample/regex
-
strategy:
Dockerfile -
輸出: 輸入容器映像檔登錄資訊
-
開啟 環境變數 (選用),並新增下列環境變數:
- 定義為:
Reference to full secret - 密鑰: 您在前一個步驟中於專案中建立的密鑰名稱
- 定義為:
您可以將 實例數下限 設為 1。
-
-
確保應用程式狀態變更為 備妥。
-
-
配置 Discovery Webhook 強化。 如需詳細資訊,請參閱 設定 webhook 增強。
-
將文件汲取至 Discovery 並查看結果。
- 將 nhtsa.csv 從 Discovery doc-tutorial-downloads 上傳至集合。
- 在文件處理完成之後,透過預覽查詢結果來尋找 Webhook 強化結果。
Granite- Entity Extraction by using a foundation model of watsonx.ai
在這個範例中,我們使用 watsonx.ai Granite 模型從電子郵件中抽取實體。 我們使用 IBM Cloud Code Engine 作為應用 webhook enrichment 的基礎架構環境。 不過,您可以在任何其他環境中部署應用程式。
-
將 Webhook 強化應用程式部署至 IBM Cloud Code Engine。
-
在 IBM Cloud Code Engine 中建立專案。 如需相關資訊,請參閱 建立專案。
-
在專案中建立秘密。 如需相關資訊,請參閱 建立密鑰。
此密鑰必須包含下列鍵值組:
WD_API_URL:您的 Discovery 範例的 API 端點 URL。WD_API_KEY: Discovery 實例的 API 金鑰。WEBHOOK_SECRET: 與要求一起傳遞的金鑰,可用來向應用程式進行鑑別。 例如,purple_unicorn。IBM_CLOUD_API_KEY: IBM Cloud的 API 金鑰。 它用來存取 Watson Machine Learning API。WML_ENDPOINT_URL:您的 API 端點 URL Watson Machine Learning。 如需詳細資訊,請參閱 Machine Learning 文件。WML_INSTANCE_CRN: Watson Machine Learning 實例的 CRN。 您可以使用ibmcloud指令來尋找實例及 CRN:ibmcloud resources。
-
從範例儲存庫原始碼部署應用程式。 如需相關資訊,請參閱 從儲存庫原始碼部署應用程式。
在 建立應用程式中,按一下 指定建置詳細資料,然後輸入這些詳細資料。
-
對於來源,請指定:
- 代碼倉庫 URL: URL 的示例代碼倉庫 Discovery doc-tutorial-downloads 頁面
- 程式碼 repo 存取:
None - 分公司名稱:
master - 環境定義目錄:
discovery-data/webhook-enrichment-sample/granite
-
strategy:
Dockerfile -
輸出: 輸入容器映像檔登錄資訊
-
開啟 環境變數 (選用),並新增下列環境變數:
- 定義為:
Reference to full secret - 密鑰: 您在前一個步驟中於專案中建立的密鑰名稱
- 定義為:
您可以將 實例數下限 設為 1。
-
-
確保應用程式狀態變更為 備妥。
-
-
配置 Discovery Webhook 強化。 如需詳細資訊,請參閱 設定 webhook 增強。
-
將文件汲取至 Discovery 並查看結果。
- 將 email.txt 從 Discovery doc-tutorial-downloads 上傳至集合。
- 在文件處理完成之後,透過預覽查詢結果來尋找 Webhook 強化結果。
使用 Watsonx.ai 使用 Watson Discovery之實體擷取程式工作區中匯出的含標籤資料進行細部調整的 Slack-實體擷取模型。
對於非生成性使用案例,石板模型具有最佳成本效能權衡。 為了進行細部調整,它需要作業特定的標示資料。 您可以在 Watson Discovery中準備含標籤的資料,在 Watson Studio中細部調整 Slate 模型,然後在 Watson Machine Learning中部署模型。 部署微調模型之後,您可以建立 Webhook 強化,以在 Watson Discovery中使用該模型來強化文件。
-
在 Watson Discovery中準備含標籤的資料。
-
建立實體擷取程式工作區及標籤資料。 如需相關資訊,請參閱 定義自訂實體。
-
從實體擷取程式工作區下載標示的資料。 如需相關資訊,請參閱 匯出實體擷取程式的標示資料。
在本指導教學中,您可以在後續步驟中使用來自 Discovery doc-tutorial-downloads 的範例 labled 資料。
-
-
細部調整 Watson Studio 中的石板模型,並將模型部署至 Watson Machine Learning。
-
在 Watson Studio 中建立專案。 如需相關資訊,請參閱 建立專案。
-
在 Watson Machine Learning中建立部署空間。 如需相關資訊,請參閱 建立部署空間
-
在專案中建立環境範本。 如需相關資訊,請參閱 建立環境範本。 您可以使用下列選項來建立:
- 類型:
Default - 硬體配置
- 保留 vCPU: 2
- 保留 RAM (GB): 8
- 軟體版本: Python 3.10 上的執行時期 23.1
- 類型:
-
使用環境範本作為 Notebook 檔案中的執行時期,在專案中建立 Notebook。 如需建立 Notebook 的相關資訊,請參閱 建立 Notebook。 記事本檔案位於 Discovery doc-tutorial-downloads。
-
在記事本中上傳含標籤的資料。 如需相關資訊,請參閱 從本端檔案載入資料。
-
逐步執行 Notebook 並取代特定變數,以微調並部署 Slate 模型。
-
-
將 Webhook 強化應用程式部署至 IBM Cloud Code Engine。
-
在 IBM Cloud Code Engine 中建立專案。 如需相關資訊,請參閱 建立專案。
-
在專案中建立秘密。 如需相關資訊,請參閱 建立密鑰。
此密鑰必須包含下列鍵值組:
WD_API_URL:您的 Discovery 範例的 API 端點 URL。WD_API_KEY: Discovery 實例的 API 金鑰。WEBHOOK_SECRET: 與要求一起傳遞的金鑰,可用來向應用程式進行鑑別。 例如,purple_unicorn。SCORING_API_HOSTNAME: Watson Machine Learning 評分部署的 API 主機名稱,用於為您提供細部調整的石板模型。SCORING_DEPLOYMENT_ID: Watson Machine Learning 評分部署的 ID,用於為您提供細部調整的石板模型。SCORING_API_TOKEN: 在載送授權中使用的 API 記號,用於使用 Watson Machine Learning 評分部署,以提供微調的 Slate 模型。 您可以使用下列指令取得代用幣:
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 )
-
-
從範例儲存庫原始碼部署應用程式。 如需相關資訊,請參閱 從儲存庫原始碼部署應用程式。
-
在 建立應用程式中,按一下 指定建置詳細資料,然後輸入這些詳細資料。
-
對於來源,請指定:
- 代碼倉庫 URL: URL 的示例代碼倉庫 Discovery doc-tutorial-downloads 頁面
- 程式碼 repo 存取:
None - 分公司名稱:
master - 環境定義目錄:
discovery-data/webhook-enrichment-sample/slate
-
strategy:
Dockerfile -
輸出: 輸入容器映像檔登錄資訊
-
開啟 環境變數 (選用),並新增下列環境變數:
- 定義為:
Reference to full secret - 密鑰: 您在前一個步驟中於專案中建立的密鑰名稱
- 定義為:
您可以將 實例數下限 設為 1。
-
-
確保應用程式狀態變更為 備妥。
-
-
配置 Discovery Webhook 強化。 如需詳細資訊,請參閱 設定 webhook 增強。
-
將文件汲取至 Discovery 並查看結果。
- 將年度報告頁面從 Discovery doc-tutorial-downloads 上傳至集合。
- 在文件處理完成之後,透過預覽查詢結果來尋找 Webhook 強化結果。
配置 Webhook 強化
-
建立一個專案。
-
使用 Discovery API 來建立 Webhook 強化。
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' -
在專案中建立集合,並將 Webhook 強化套用至集合。
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'