將插件應用於 Amazon OpenSearch 服務查詢 - Amazon Personalize

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

將插件應用於 Amazon OpenSearch 服務查詢

建立管道後,您就可以將 Amazon Personalize 搜尋排名外掛程式套用至查詢。您可以將 Amazon Personalize 搜尋排名外掛程式套用至索引的所有查詢和回應。您還可以將插件應用於單個查詢和響應。

  • 您可以使用下列 Python 程式碼,將搜尋管線套用至索引。透過這種方法,所有使用此索引的搜尋都會使用外掛程式將個人化套用至搜尋結果。

    import requests from requests_auth_aws_sigv4 import AWSSigV4 domain_endpoint = 'domain endpoint' index = 'index name' url = f'{domain_endpoint}/{index}/_settings/' auth = AWSSigV4('es') headers = {'Content-Type': 'application/json'} body = { "index.search.default_pipeline": "pipeline name" } try: response = requests.put(url, auth=auth, json=body, headers=headers) print(response.text) except Exception as e: print(f"Error: {e}")
  • 您可以使用以下 Python 代碼將搜索管道應用於豐田品牌汽車的單個查詢。

    更新程式碼以指定您的網域端點、 OpenSearch 服務索引、管線名稱和查詢。針對user_id,指定您要取得搜尋結果之使用者的 ID。此使用者必須位於您用來建立 Amazon Personalize 解決方案版本的資料中。如果用戶不在場,Amazon Personalize 化會根據其受歡迎程度對項目進行排名。

    對於context,如果您使用關聯式中繼資料,請提供使用者的上下文中繼資料,例如其裝置類型。此 context 欄位為選用。如需詳細資訊,請參閱透過上下文中繼資料增加建議

    import requests from requests_auth_aws_sigv4 import AWSSigV4 domain_endpoint = 'domain endpoint' index = 'index name' url = f'{domain_endpoint}/{index}/_search/' auth = AWSSigV4('es') headers = {'Content-Type': 'application/json'} params = {"search_pipeline": "pipeline-name"} body = { "query": { "multi_match": { "query": "Toyota", "fields": ["BRAND"] } }, "ext": { "personalize_request_parameters": { "user_id": "USER ID", "context": { "DEVICE" : "mobile phone" } } } } try: response = requests.post(url, auth=auth, params=params, json=body, headers=headers, verify=False) print(response) except Exception as e: print(f"Error: {e}")