配置插件 - Amazon Personalize

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

配置插件

安裝 Amazon Personalize 搜尋排名外掛程式之後,您就可以透過建立 OpenSearch 搜尋管道進行設定。

搜尋管道是一組請求和回應處理器,它們會依您建立的順序順序執行。當您建立外掛程式的搜尋管道時,您可以指定personalized_search_ranking回應處理器。如需搜尋管道的相關資訊,請參閱搜尋管道

personalized_search_ranking響應處理器的字段

針對personalized_search_ranking回應處理器,您可以指定下列欄位:

  • campaign_arn(必填)— 指定 Amazon 個性化廣告系列的亞馬遜資源名稱(ARN)以用於個性化結果。

  • item_id_field (選用) — 如果中索引文件的_id欄位與您的 Amazon Personalize 項目 MID OpenSearch 不對應,請指定要執行的欄位名稱。根據預設,外掛程式會假設資_id料與 Amazon Personalize 資料中的 iTiID 相符。

  • 配方 (必要) — 指定要使用的 Amazon Personalize 配方名稱。您只能指定aws-personalized-ranking

  • weight (必要) — 指定回應處理器在重新排名結果時強調個人化的重點。指定介於 0.0—1.0 之間的值。越接近它1.0是, 越有可能是結果從 Amazon Personalize 化排名更高. 如果您指定0.0,則不會發生個人化,而且 OpenSearch 優先順序。

  • tag (選用) — 指定處理器的識別碼。

  • iam_role_arn ( OpenSearch 服務需要,開放原始碼為選用 OpenSearch) — 對於 OpenSearch 服務,請為您在設定服務存取 Amazon 個人化資源的許可時建立的角色提供 Amazon 資源名稱 (ARN)。 OpenSearch 如果您的 OpenSearch 服務和 Amazon Personalize 資源存在於不同的帳戶中,請指定授與 OpenSearch 服務AssumeRole許可的角色。如需詳細資訊,請參閱 當資源位於不同帳戶時設定權限

    對於開放原始碼 OpenSearch,如果您使用多個角色來限制組織中不同使用者群組的許可,請指定具有存取 Amazon Personalize 權限之角色的 ARN。如果您只使用 OpenSearch 金鑰儲存庫中的 AWS 認證,則可以省略此欄位。

  • aws_region (必填) — 您建立 Amazon Personalize 行銷活動的 AWS 區域。

  • 忽略失敗 (選擇性) — 指定外掛程式是否忽略任何處理器失敗。對於值,請指定truefalse。對於您的生產環境,我們建議您指定true以避免任何查詢回應中斷。對於測試環境,您可以指false定檢視外掛程式產生的任何錯誤。

  • 外部al_account_iam_role_arn — 如果您使用 OpenSearch 服務,且您的 Amazon Personalize 和服 OpenSearch 務資源存在於不同的帳戶中,請指定有權存取您的 Amazon Personalize 資源的角色 ARN。此角色必須存在於與您的 Amazon Personalize 資源相同的帳戶中。如需詳細資訊,請參閱 當資源位於不同帳戶時設定權限

使用 Amazon OpenSearch 服務創建管道

您可以使用下列 Python 程式碼,在 OpenSearch 服務網域上建立含有personalized_search_ranking回應處理器的搜尋管線。domain endpoint以您的網域端點 URL 取代。例如:https://<domain name>.<AWS region>.es-staging.amazonaws.com

import requests from requests_auth_aws_sigv4 import AWSSigV4 domain_endpoint = 'domain endpoint' pipeline_name = 'pipeline name' url = f'{domain_endpoint}/_search/pipeline/{pipeline_name}' auth = AWSSigV4('es') headers = {'Content-Type': 'application/json'} body = { "description": "A pipeline to apply custom re-ranking from Amazon Personalize", "response_processors": [ { "personalized_search_ranking" : { "campaign_arn" : "Amazon Personalize Campaign ARN", "item_id_field" : "productId", "recipe" : "aws-personalized-ranking", "weight" : "0.3", "tag" : "personalize-processor", "iam_role_arn": "Role ARN", "aws_region": "AWS region", "ignore_failure": true } ] } try: response = requests.put(url, auth=auth, json=body, headers=headers, verify=False) print(response.text) except Exception as e: print(f"Error: {e}")

使用personalized_search_ranking回應處理器建立搜尋管道之後,就可以開始將外掛程式套用至 OpenSearch 查詢。您可以將其套用至 OpenSearch 索引或個別 OpenSearch 查詢。如需詳細資訊,請參閱 將外掛程式套用至 OpenSearch 查詢

使用開放原始碼建立管道 OpenSearch

您可以使用下列 curl 指令,在開放原始碼 OpenSearch 叢集上建立含有personalized_search_ranking回應處理器的搜尋管道。

curl -X PUT "http://localhost:9200/_search/pipeline/pipeline-name" -ku 'admin:admin' --insecure -H 'Content-Type: application/json' -d' { "description": "A pipeline to apply custom re-ranking from Amazon Personalize", "response_processors" : [ { "personalized_search_ranking" : { "campaign_arn" : "Amazon Personalize Campaign ARN", "item_id_field" : "productId", "recipe" : "aws-personalized-ranking", "weight" : "0.3", "tag" : "personalize-processor", "iam_role_arn": "Role ARN", "aws_region": "AWS region", "ignore_failure": true } } ] }'

使用personalized_search_ranking回應處理器建立搜尋管道之後,就可以開始將外掛程式套用至 OpenSearch 查詢。您可以將其套用至 OpenSearch 索引或個別 OpenSearch 查詢。如需詳細資訊,請參閱 將外掛程式套用至 OpenSearch 查詢