Watson Discovery 에서 외부 웹훅 강화 솔루션 빌드
이 튜토리얼에서는 Watson Discovery를 사용하여 외부 웹훅 강화 솔루션을 빌드하기 위해 샘플 애플리케이션을 사용할 수 있습니다.
IBM Cloud
관리 배치를 사용 중인 경우에만 이 학습서를 따르십시오.
다음 이미지는 외부 인리치먼트 구성 플로우를 표시합니다.
다음 이미지는 외부 인리치먼트 프로세스 플로우를 표시합니다.
외부 인리치먼트 API에 대한 자세한 정보는 외부 인리치먼트 API 를 참조하십시오.
학습 목표
학습서를 완료하면 다음 샘플 애플리케이션을 사용하는 방법을 학습하게 됩니다.
Regex: 정규식을 사용하여 엔티티 추출, 문서 분류 및 문장 분류의 경우Granite: watsonx.ai Granite 모델을 사용하여 이메일에서 엔티티 추출의 경우Slate: Watson Discovery의 엔티티 추출기 작업공간에서 내보낸 레이블 지정된 데이터로 미세 조정된 watsonx.ai Slate 모델을 사용한 엔티티 추출의 경우.
지속 기간
이 튜토리얼을 완료하는 데 약 2시간이 걸립니다.
전제조건
-
시작하기 전에 IBM Cloud 로 유료 계정을 설정하여 Watson Discovery Plus 또는 Enterprise 플랜의 인스턴스를 가져와야 합니다.
무료로 30일평가판을 제공하는 Plus 플랜을 사용하여 무료로 이 학습서를 완료할 수 있습니다. 그러나 서비스의 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 키를 생성합니다. 자세한 내용은 IBM Cloud Paks 시작하기를 참조하세요.
정규식-정규식을 사용한 엔티티 추출, 문서 분류 및 문장 분류
이 샘플에서는 IBM Cloud Code Engine 을 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 페이지
- 코드 저장소 액세스:
None - 지점 이름:
master - 컨텍스트 디렉토리:
discovery-data/webhook-enrichment-sample/regex
-
strategy:
Dockerfile -
출력: 컨테이너 이미지 레지스트리 정보 입력
-
환경 변수 (선택사항) 를 열고 다음 환경 변수를 추가하십시오.
- 다음으로 정의:
Reference to full secret - 시크릿: 이전 단계에서 프로젝트에 작성한 시크릿의 이름
- 다음으로 정의:
최소 인스턴스 수 를 1로 설정할 수 있습니다.
-
-
애플리케이션 상태가 준비로 변경되었는지 확인하십시오.
-
-
Discovery 웹훅 강화를 구성하십시오. 자세한 내용은 웹훅 강화 구성하기를 참고하세요.
-
Discovery 에 문서를 수집하고 결과를 확인하십시오.
- Discovery doc-tutorial-downloads 에서 콜렉션으로 nhtsa.csv 를 업로드하십시오.
- 문서 처리가 완료된 후 조회 결과를 미리보고 Webhook 강화 결과를 찾으십시오.
Granite- watsonx.ai의 기초 모델을 사용한 엔티티 추출
이 샘플에서는 watsonx.ai Granite 모델을 사용하여 이메일에서 엔티티를 추출합니다. 웹훅 인헨스먼트 적용을 위한 인프라 환경으로 IBM Cloud Code Engine를 사용하고 있습니다. 그러나 다른 환경에서 애플리케이션을 배치할 수 있습니다.
-
웹훅 강화 애플리케이션을 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: Watson Machine Learning 의 API 엔드포인트 URL 입니다. 자세한 내용은 Machine Learning 문서를 참조하십시오.WML_INSTANCE_CRN: Watson Machine Learning 인스턴스의 CRN입니다.ibmcloud명령 (ibmcloud resources) 을 사용하여 인스턴스 및 CRN을 찾을 수 있습니다.
-
샘플 저장소 소스 코드에서 애플리케이션을 배치하십시오. 자세한 정보는 저장소 소스 코드에서 앱 배치를 참조하십시오.
애플리케이션 작성에서 빌드 세부사항 지정 을 클릭하고 다음 세부사항을 입력하십시오.
-
소스의 경우 다음을 지정하십시오.
- 코드 저장소 URL: 샘플 코드 저장소의 URL Discovery doc-tutorial-downloads 페이지
- 코드 저장소 액세스:
None - 지점 이름:
master - 컨텍스트 디렉토리:
discovery-data/webhook-enrichment-sample/granite
-
strategy:
Dockerfile -
출력: 컨테이너 이미지 레지스트리 정보 입력
-
환경 변수 (선택사항) 를 열고 다음 환경 변수를 추가하십시오.
- 다음으로 정의:
Reference to full secret - 시크릿: 이전 단계에서 프로젝트에 작성한 시크릿의 이름
- 다음으로 정의:
최소 인스턴스 수 를 1로 설정할 수 있습니다.
-
-
애플리케이션 상태가 준비로 변경되었는지 확인하십시오.
-
-
Discovery 웹훅 강화를 구성하십시오. 자세한 내용은 웹훅 강화 구성하기를 참고하세요.
-
Discovery 에 문서를 수집하고 결과를 확인하십시오.
- Discovery doc-tutorial-downloads 에서 콜렉션으로 email.txt 를 업로드하십시오.
- 문서 처리가 완료된 후 조회 결과를 미리보고 Webhook 강화 결과를 찾으십시오.
Watson Discovery의 엔티티 추출기 작업공간에서 내보낸 레이블 지정된 데이터로 미세 조정된 Watsonx.ai Slate 모델을 사용한 Slate-Entity 추출.
Slate 모델에는 생성되지 않는 유스 케이스에 대한 최상의 비용 성능 절충이 있습니다. 미세 조정의 경우, 태스크 특정 레이블 데이터가 필요합니다. Watson Discovery에서 레이블 지정된 데이터를 준비하고, Watson Studio에서 Slate 모델을 미세 조정하고, Watson Machine Learning에서 모델을 배치할 수 있습니다. 미세 조정된 모델을 배치하면 Watson Discovery에서 해당 모델을 사용하여 문서를 강화하는 웹훅 인리치먼트를 작성할 수 있습니다.
-
Watson Discovery에서 레이블 지정된 데이터를 준비하십시오.
-
엔티티 추출기 작업공간 및 레이블 데이터를 작성하십시오. 자세한 정보는 사용자 정의 엔티티 정의 를 참조하십시오.
-
엔티티 추출기 작업공간에서 레이블 지정된 데이터를 다운로드하십시오. 자세한 정보는 엔티티 추출기의 레이블 지정된 데이터 익스포트 를 참조하십시오.
이 학습서에서는 후속 단계에서 Discovery doc-tutorial-downloads 의 샘플 레이블 데이터를 사용할 수 있습니다.
-
-
Watson Studio 에서 슬레이트 모델을 미세 조정하고 모델을 Watson Machine Learning에 배치하십시오.
-
Watson Studio 에서 프로젝트를 만듭니다. 자세한 정보는 프로젝트 작성을 참조하십시오.
-
Watson Machine Learning에서 배치 영역을 작성하십시오. 자세한 정보는 배치 영역 작성 을 참조하십시오.
-
프로젝트에서 환경 템플리트를 작성하십시오. 자세한 정보는 환경 템플리트 작성을 참조하십시오. 다음 옵션을 사용하여 만들 수 있습니다
- 유형:
Default - 하드웨어 구성
- 예약 vCPU: 2
- 예약 RAM (GB): 8
- 소프트웨어 버전: Runtime 23.1 on Python 3.10
- 유형:
-
노트북 파일에서 런타임으로 환경 템플리트를 사용하여 프로젝트에 노트북을 작성하십시오. 노트북 cxreating에 대한 자세한 정보는 노트북 작성을 참조하십시오. 노트북 파일은 Discovery doc-tutorial-downloads에 있습니다.
-
노트북에서 레이블이 지정된 데이터를 업로드하십시오. 자세한 정보는 로컬 파일에서 데이터 로드를 참조하십시오.
-
노트북을 단계별로 실행하고 특정 변수를 대체하여 Slate 모델을 미세 조정하고 배치하십시오.
-
-
웹훅 강화 애플리케이션을 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: 미세 조정된 Slate 모델을 제공하는 Watson Machine Learning 스코어링 배치를 사용하기 위해 Bearer 권한 부여에 사용되는 API 토큰입니다. 다음 명령을 사용하여 토큰을 얻을 수 있습니다
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 페이지
- 코드 저장소 액세스:
None - 지점 이름:
master - 컨텍스트 디렉토리:
discovery-data/webhook-enrichment-sample/slate
-
strategy:
Dockerfile -
출력: 컨테이너 이미지 레지스트리 정보 입력
-
환경 변수 (선택사항) 를 열고 다음 환경 변수를 추가하십시오.
- 다음으로 정의:
Reference to full secret - 시크릿: 이전 단계에서 프로젝트에 작성한 시크릿의 이름
- 다음으로 정의:
최소 인스턴스 수 를 1로 설정할 수 있습니다.
-
-
애플리케이션 상태가 준비로 변경되었는지 확인하십시오.
-
-
Discovery 웹훅 강화를 구성하십시오. 자세한 내용은 웹훅 강화 구성하기를 참고하세요.
-
Discovery 에 문서를 수집하고 결과를 확인하십시오.
- Discovery doc-tutorial-downloads 의 연간 보고서 페이지를 콜렉션에 업로드하십시오.
- 문서 처리가 완료된 후 조회 결과를 미리보고 Webhook 강화 결과를 찾으십시오.
웹훅 인리치먼트 구성
-
프로젝트를 작성하십시오.
-
Discovery API를 사용하여 웹훅 강화를 작성하십시오.
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' -
프로젝트에서 콜렉션을 작성하고 콜렉션에 웹훅 인리치먼트를 적용하십시오.
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'