From c3c5687740008348bce722685ecd6ca0cfe4dfdb Mon Sep 17 00:00:00 2001 From: danv006 <48356782+danv006@users.noreply.github.com> Date: Wed, 25 Oct 2023 16:06:56 -0300 Subject: [PATCH 1/2] Translation of blogpost to Portuguese (PT-BR) This is part of the blogpost translation to portuguese. --- .../promotions/Filtro_de_promocao.ipynb | 2051 +++++++++++++++++ .../promotions/Limpeza_de_Recursos.ipynb | 1003 ++++++++ 2 files changed, 3054 insertions(+) create mode 100644 next_steps/core_use_cases/filters/promotions/Filtro_de_promocao.ipynb create mode 100644 next_steps/core_use_cases/filters/promotions/Limpeza_de_Recursos.ipynb diff --git a/next_steps/core_use_cases/filters/promotions/Filtro_de_promocao.ipynb b/next_steps/core_use_cases/filters/promotions/Filtro_de_promocao.ipynb new file mode 100644 index 0000000..00cd4ff --- /dev/null +++ b/next_steps/core_use_cases/filters/promotions/Filtro_de_promocao.ipynb @@ -0,0 +1,2051 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "f760989d", + "metadata": {}, + "source": [ + "# Promovendo produtos em suas recomendações\n", + "\n", + "Este notebook vai guiar você nas etapas de criação do filtro de promoção utilizando o [Amazon Personalize](https://aws.amazon.com/personalize/). Essa funcionalidade retorna recomendações que contenham resultados com produtos ou serviços promovidos. \n", + "\n", + "Recomendações personalizadas aumentam o engajamento de seu website ou aplicativo, e frequentemente existe a necessidade de aplicar regras adicionais de negócio no momento de apresentar itens para seus clientes. [O Filtro de Promoção do Amazon Personalize ](https://docs.aws.amazon.com/pt_br/personalize/latest/dg/promoting-items.html) pode ajudar nos casos que é necessário mostrar itens de determinadas categorias ou marcas. Por exemplo, um aplicativo de video sob demanda pode promover uma nova série ou um website de e-commerce pode promover produtos que estão em liquidação.\n", + "\n", + "![promotions-overview-pt-br.png](images/promotions-overview-pt-br.png \"Diagrama demonstrando como o filtro de promoção muda o resultado da recomendação de produtos\")\n", + "\n", + "Primeiro precisamos seguir os passos para criar o grupo do conjunto de dados, em seguida criamos um recomendador que retornará produtos de um site de e-commerce ficticio. O objetivo é gerar recomendações que sejam relevantes para o usuário informado.\n", + "\n", + "Depois, vamos criar o filtro de promoção para promover produtos que estarão presentes na lista de recomendações para o usuário.\n", + "\n", + "Para finalizar, vamos fazer a limpeza dos recursos criados para evitar custos desnecessários.\n", + "\n", + "O tempo estimado para executar todos os passos deste notebook é de aproximadamente 75 minutos.\n", + "\n", + "## Como usar este notebook\n", + "\n", + "O código está dividido em células como o exemplo abaixo. Você pode usar o botão triangular executar (Run) no topo desta página para executar cada célula e avançar para a seguinte. Ou dentro da célula você também pode usar a combinação de teclas \"Shift + Enter\" para a executar e avançar para a próxima célula.\n", + "\n", + "Durante a execução do código na célula, observe uma linha que mostra um `*` enquanto a execução esta em andamento. Esta linha será atualizada para um número indicando que a execução do código desta célula finalizou.\n", + "\n", + "Para começar, siga as instruções abaixo e execute as células do notebook.\n", + "\n", + "## Introdução ao Amazon Personalize\n", + "\n", + "[O Amazon Personalize](https://aws.amazon.com/pt/personalize//) simplifica o desenvolvimento de sistemas de recomendação, incluindo casos de recomendações de produtos em tempo real e marketing direto personalizado. O Amazon Personalize oferece a mesma tecnologia utilizada pela Amazon.com, sem necessidade de experiência prévia com aprendizado de máquina. Com o Amazon Personalize você paga pelo o que consome, sem taxas mínimas ou compromisso inicial. \n", + "\n", + "Para começar a utilizar o Amazon Personalize, basta seguir o processo com três passos que requer apenas alguns cliques na console AWS, ou algumas chamadas à API.\n", + "\n", + "Primeiro, informe os dados de usuários, os dados do catálogo de produtos e dados de interações (como cliques, compras, etc). É possivel carregados os dados do Amazon S3 ou utilizar uma chamada de API.\n", + "\n", + "Segundo, com um clique na console (ou uma chamada de API), treine o modelo de recomendação com os seus dados. Lembrando que todos os seus dados permanecem protegidos e seguros através de criptografia, e são utilizados somente para criar recomendações para seus cliente ou usuários.\n", + "\n", + "Por último, receba recomendações personalizadas para qualquer usuário, criando um recomendador e utilizando a API GetRecommendations.\n", + "\n", + "Caso queira conhecer mais sobre o Amazon Personalize, ou ter acesso a mais exemplos como este acesse: [Github Sample Notebooks](https://github.com/aws-samples/amazon-personalize-samples) e [Documentação do produto](https://docs.aws.amazon.com/pt_br/personalize/latest/dg/what-is-personalize.html)." + ] + }, + { + "cell_type": "markdown", + "id": "6a7ca987", + "metadata": {}, + "source": [ + "## Importação\n", + "O Python fornece uma coleção de bibliotecas e precisamos importá-las, como o [boto3](https://aws.amazon.com/sdk-for-python/) (AWS SDK para python) e [Pandas](https://pandas.pydata.org/)/[Numpy](https://numpy.org/), que são ferramentas essenciais para a ciência de dados." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "86eb0420", + "metadata": {}, + "outputs": [], + "source": [ + "# Instale a versão mais recente do botocore para garantir que temos os recursos mais atualizados no SDK\n", + "import sys\n", + "!{sys.executable} -m pip install --upgrade pip\n", + "!{sys.executable} -m pip install --upgrade --no-deps --force-reinstall botocore" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "fca0fd16", + "metadata": {}, + "outputs": [], + "source": [ + "# Importação de bibliotecas\n", + "import boto3\n", + "import json\n", + "import numpy as np\n", + "import pandas as pd\n", + "import time\n", + "import datetime" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9af0b2bb", + "metadata": {}, + "outputs": [], + "source": [ + "# Configure o SDK para o Personalize:\n", + "personalize = boto3.client('personalize')\n", + "personalize_runtime = boto3.client('personalize-runtime')" + ] + }, + { + "cell_type": "markdown", + "id": "12983cae", + "metadata": {}, + "source": [ + "Utilize a célula abaixo para validar que o seu ambiente esta comunicando com Amazon Personalize." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "df13c737", + "metadata": {}, + "outputs": [], + "source": [ + "personalize.list_dataset_groups()" + ] + }, + { + "cell_type": "markdown", + "id": "479e3ff5", + "metadata": {}, + "source": [ + "Informe o nome dos arquivos com os dados de itens e interações a serem utilizados." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e44a59b7", + "metadata": {}, + "outputs": [], + "source": [ + "interactions_file_path = 'cleaned_interactions_training_data.csv'\n", + "items_file_path = 'cleaned_item_training_data.csv'" + ] + }, + { + "cell_type": "markdown", + "id": "0765d343", + "metadata": {}, + "source": [ + "## Especifique um bucket S3 e uma localização de saída dos dados\n", + "\n", + "O Amazon Personalize precisa de um bucket S3 como fonte de dados. O código abaixo irá criar um bucket com um `bucket_name` único.\n", + "\n", + "O bucket do Amazon S3 precisa estar na mesma região que os recursos do Amazon Personalize." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4ff5e864", + "metadata": {}, + "outputs": [], + "source": [ + "# Define a mesma região que o Notebook atual do Amazon SageMaker\n", + "with open('/opt/ml/metadata/resource-metadata.json') as notebook_info:\n", + " data = json.load(notebook_info)\n", + " resource_arn = data['ResourceArn']\n", + " region = resource_arn.split(':')[3]\n", + "print('region:', region)\n", + "\n", + "# Ou você pode especificar a região onde o seu bucket e modelo serão utilizados\n", + "# region = \"us-east-1\" \n", + "\n", + "s3 = boto3.client('s3')\n", + "account_id = boto3.client('sts').get_caller_identity().get('Account')\n", + "bucket_name = account_id + \"-\" + region + \"-\" + \"personalizemanagedretailers\"\n", + "print('bucket_name:', bucket_name)\n", + "\n", + "try: \n", + " if region == \"us-east-1\":\n", + " s3.create_bucket(Bucket=bucket_name)\n", + " else:\n", + " s3.create_bucket(\n", + " Bucket = bucket_name,\n", + " CreateBucketConfiguration={'LocationConstraint': region}\n", + " )\n", + "except s3.exceptions.BucketAlreadyOwnedByYou:\n", + " print(\"O bucket já existe. O nome será definido como: \", bucket_name)" + ] + }, + { + "cell_type": "markdown", + "id": "9b430601", + "metadata": {}, + "source": [ + "## Download, preparação, e upload dos dados de treinamento\n", + "\n", + "Produzimos dados sintéticos com base no código do projeto [Retail Demo Store] (https://github.com/aws-samples/retail-demo-store). Clique no link para maiores informações e possíveis usos.\n", + "\n", + "Primeiro, faremos o download dos dados (dados de treinamento). Neste exemplo, utilizaremos o histórico de compras de um conjunto de dados de um e-commerce. O conjunto de dados contém o user_id, o item_id, e as interações entre dos clientes e itens, e também a hora em que essa interação ocorreu (Timestamp).\n", + "\n", + "### Download e exploração do conjunto de dados de interações" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6ec851d2", + "metadata": {}, + "outputs": [], + "source": [ + "!aws s3 cp s3://retail-demo-store-us-east-1/csvs/interactions.csv ." + ] + }, + { + "cell_type": "markdown", + "id": "ae49d831", + "metadata": {}, + "source": [ + "O conjunto de dados foi transferido com sucesso com o nome: interactions.csv\n", + "\n", + "Vamos explorar este conjunto de dados para identificar as suas caracteristicas." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "475cb0a3", + "metadata": {}, + "outputs": [], + "source": [ + "df = pd.read_csv('./interactions.csv')\n", + "df" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "711a3292", + "metadata": {}, + "outputs": [], + "source": [ + "df.info()" + ] + }, + { + "cell_type": "markdown", + "id": "66032111", + "metadata": {}, + "source": [ + "Das células acima, descobrimos que os nossos dados têm 5 colunas, 675004 linhas e os campos são: ITEM_ID, USER_ID, EVENT_TYPE, TIMESTAMP e DISCOUNT.\n", + "\n", + "Para que seja compativel com o esquema de interação do Amazon Personalize, as colunas precisam ter o nome esperado pelo Amazon Personalize (leia sobre nomes de coluna [aqui](https://docs.aws.amazon.com/pt_br/personalize/latest/dg/how-it-works-dataset-schema.html) )\n", + "\n", + "Os recomendadores ECOMMERCE requerem que dados do EVENT_TYPE sejam específicados para entender o contexto da interação. Vamos analisar os tipos de eventos que estão atualmente no nosso conjunto de dados:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "383fa167", + "metadata": {}, + "outputs": [], + "source": [ + "df.EVENT_TYPE.value_counts()" + ] + }, + { + "cell_type": "markdown", + "id": "9033359c", + "metadata": {}, + "source": [ + "Verificamos que os eventos \"View\" e \"Purchase\" estão presentes. Eles serão utilizados em nosso exemplo." + ] + }, + { + "cell_type": "markdown", + "id": "0bee3c96", + "metadata": {}, + "source": [ + "### Preparação dos dados de interação\n" + ] + }, + { + "cell_type": "markdown", + "id": "7d7b067f", + "metadata": {}, + "source": [ + "### Remova colunas\n", + "\n", + "Algumas colunas deste conjunto de dados não adicionam valor ao nosso modelo e, por isso, devem ser removidas do conjunto de dados. Como exemplo a coluna com o nome *discount*." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "65efe415", + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "test=df.drop(columns=['DISCOUNT'])\n", + "df=test\n", + "df.sample(10)" + ] + }, + { + "cell_type": "markdown", + "id": "7e13d9db", + "metadata": {}, + "source": [ + "Na célula abaixo, vamos salvar os dados limpos em um arquivo com o nome \"final_training_data.csv" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2c8ad8ac", + "metadata": {}, + "outputs": [], + "source": [ + "df.to_csv(interactions_file_path)" + ] + }, + { + "cell_type": "markdown", + "id": "2fd3b13d", + "metadata": {}, + "source": [ + "### Download e exploração dos dados de itens" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "89324993", + "metadata": {}, + "outputs": [], + "source": [ + "!aws s3 cp s3://retail-demo-store-us-east-1/csvs/items.csv ." + ] + }, + { + "cell_type": "markdown", + "id": "3bd1fa09", + "metadata": {}, + "source": [ + "O conjunto de dados foi transferido com sucesso com o nome items.csv\n", + "\n", + "Vamos explorar este conjunto de dados para identificar as suas caracteristicas." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9588db31", + "metadata": {}, + "outputs": [], + "source": [ + "items_df = pd.read_csv('./items.csv')\n", + "items_df" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d25b6c88", + "metadata": {}, + "outputs": [], + "source": [ + "items_df.info()" + ] + }, + { + "cell_type": "markdown", + "id": "4fda300e", + "metadata": {}, + "source": [ + "Vamos analisar os tipos de itens que estão incluídos no conjunto de dados." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "3c3cf7bc", + "metadata": {}, + "outputs": [], + "source": [ + "items_df.CATEGORY_L1.unique()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "57a631e4", + "metadata": {}, + "outputs": [], + "source": [ + "items_df.CATEGORY_L2.unique()" + ] + }, + { + "cell_type": "markdown", + "id": "30d55069", + "metadata": {}, + "source": [ + "### Remova colunas\n", + "\n", + "Algumas colunas deste conjunto de dados poderiam acrescentar valor ao nosso modelo, mas não serão relevantes em nosso exemplo. Para simplificar, vamos remover a coluna com o nome *product_decription*." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f79effaa", + "metadata": {}, + "outputs": [], + "source": [ + "test=items_df.drop(columns=['PRODUCT_DESCRIPTION'])\n", + "items_df=test\n", + "items_df.sample(10)" + ] + }, + { + "cell_type": "markdown", + "id": "ef827e5b", + "metadata": {}, + "source": [ + "Salve os dados limpos em um arquivo .csv" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6dcf134f", + "metadata": {}, + "outputs": [], + "source": [ + "items_df.to_csv(items_file_path)" + ] + }, + { + "cell_type": "markdown", + "id": "d966bbd6", + "metadata": {}, + "source": [ + "## Configure o bucket S3 e funções IAM\n", + "\n", + "Até agora, baixamos, limpamos e salvamos os dados em nosso notebook Jupyter utilizado. Mas o Amazon Personalize precisa de um bucket S3 para obter os dados, e também das permissões (função IAM) para acessar esse bucket. Vamos configurar isso na célula abaixo." + ] + }, + { + "cell_type": "markdown", + "id": "d88b13fe", + "metadata": {}, + "source": [ + "## Configure a politica do bucket S3\n", + "O Amazon Personalize precisa das pemissões necessárias para ler o conteúdo do seu bucket S3. Para isso adicione uma política de bucket.\n", + "\n", + "Observação: verifique se a função que você está usando para executar o código deste notebook tem as permissões necessárias para modificar a política do bucket S3." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a81b8a76", + "metadata": {}, + "outputs": [], + "source": [ + "s3 = boto3.client(\"s3\")\n", + "policy = {\n", + " \"Version\": \"2012-10-17\",\n", + " \"Id\": \"PersonalizeS3BucketAccessPolicy\",\n", + " \"Statement\": [\n", + " {\n", + " \"Sid\": \"PersonalizeS3BucketAccessPolicy\",\n", + " \"Effect\": \"Allow\",\n", + " \"Principal\": {\n", + " \"Service\": \"personalize.amazonaws.com\"\n", + " },\n", + " \"Action\": [\n", + " \"s3:GetObject\",\n", + " \"s3:ListBucket\"\n", + " ],\n", + " \"Resource\": [\n", + " \"arn:aws:s3:::{}\".format(bucket_name),\n", + " \"arn:aws:s3:::{}/*\".format(bucket_name)\n", + " ]\n", + " }\n", + " ]\n", + "}\n", + "\n", + "s3.put_bucket_policy(Bucket=bucket_name, Policy=json.dumps(policy))" + ] + }, + { + "cell_type": "markdown", + "id": "a2884e83", + "metadata": {}, + "source": [ + "### Upload dos dados de interação para o S3\n", + "Agora que os dados de treinamento estão preparados para o Amazon Personalize, precisamos carregá-los no bucket s3 criado acima" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "049ee211", + "metadata": {}, + "outputs": [], + "source": [ + "boto3.Session().resource('s3').Bucket(bucket_name).Object(interactions_file_path).upload_file(interactions_file_path)\n", + "interactions_s3DataPath = \"s3://\"+bucket_name+\"/\"+interactions_file_path\n", + " " + ] + }, + { + "cell_type": "markdown", + "id": "7cb04ad2", + "metadata": {}, + "source": [ + "### Upload dos dados de itens para S3\n", + "Agora que os dados de treinamento estão preparados para o Amazon Personalize, precisamos carregá-los no bucket s3 criado acima" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "38e3e584", + "metadata": {}, + "outputs": [], + "source": [ + "boto3.Session().resource('s3').Bucket(bucket_name).Object(items_file_path).upload_file(items_file_path)\n", + "items_s3DataPath = \"s3://\"+bucket_name+\"/\"+items_file_path" + ] + }, + { + "cell_type": "markdown", + "id": "cfbe117d", + "metadata": {}, + "source": [ + "## Crie o grupo de conjunto de dados\n", + "O maior agrupamento no Personalize é um grupo de conjunto de dados, que isola seus dados, rastreadores de eventos, soluções, recomendadores e campanhas. Se preferir, pode alterar o nome abaixo.\n", + "\n", + "Durante a criação é necessário informar o dominio dos dados, isso determina os esquemas e casos de utilização disponíveis para os recomendadores.\n", + "\n", + "Para ter mais informações, acesse: [Documentação](https://docs.aws.amazon.com/pt_br/personalize/latest/dg/data-prep-ds-group.html).\n", + "\n", + "### Crie o grupo de conjunto de dados" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "1aeed98c", + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "response = personalize.create_dataset_group(\n", + " name='personalize_ecomemerce_ds_group',\n", + " domain='ECOMMERCE'\n", + ")\n", + "\n", + "dataset_group_arn = response['datasetGroupArn']\n", + "print(json.dumps(response, indent=2))" + ] + }, + { + "cell_type": "markdown", + "id": "757bcc10", + "metadata": {}, + "source": [ + "Antes de utilizarmos o grupo de conjunto de dados em qualquer etapa abaixo ele deve estar ativo (ACTIVE), execute a célula abaixo e aguarde que ele chegue nesse status para prosseguir." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "01ca00c7", + "metadata": {}, + "outputs": [], + "source": [ + "%%time\n", + "\n", + "max_time = time.time() + 3*60*60 # 3 horas\n", + "while time.time() < max_time:\n", + " describe_dataset_group_response = personalize.describe_dataset_group(\n", + " datasetGroupArn = dataset_group_arn\n", + " )\n", + " status = describe_dataset_group_response[\"datasetGroup\"][\"status\"]\n", + " print(\"Grupo de conjunto de dados: {}\".format(status))\n", + " \n", + " if status == \"ACTIVE\" or status == \"CREATE FAILED\":\n", + " break\n", + " \n", + " time.sleep(60)" + ] + }, + { + "cell_type": "markdown", + "id": "c11b6c37", + "metadata": {}, + "source": [ + "## Crie o esquema de interações\n", + "É através do esquema que o Amazon Personalize entende os seus dados. Esta configuração informa ao serviço como processar os dados do arquivo CSV. Observe que as colunas e tipos estão igual ao arquivo criado na etapa acima." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "591cd9ae", + "metadata": {}, + "outputs": [], + "source": [ + "interactions_schema = {\n", + " \"type\": \"record\",\n", + " \"name\": \"Interactions\",\n", + " \"namespace\": \"com.amazonaws.personalize.schema\",\n", + " \"fields\": [\n", + " {\n", + " \"name\": \"USER_ID\",\n", + " \"type\": \"string\"\n", + " },\n", + " {\n", + " \"name\": \"ITEM_ID\",\n", + " \"type\": \"string\"\n", + " },\n", + " {\n", + " \"name\": \"TIMESTAMP\",\n", + " \"type\": \"long\"\n", + " },\n", + " {\n", + " \"name\": \"EVENT_TYPE\",\n", + " \"type\": \"string\"\n", + " \n", + " }\n", + " \n", + " ],\n", + " \"version\": \"1.0\"\n", + "}\n", + "\n", + "\n", + "create_schema_response = personalize.create_schema(\n", + " name = \"personalize-ecommerce-interatn_group\",\n", + " domain = \"ECOMMERCE\",\n", + " schema = json.dumps(interactions_schema)\n", + ")\n", + "\n", + "interaction_schema_arn = create_schema_response['schemaArn']\n", + "print(json.dumps(create_schema_response, indent=2))" + ] + }, + { + "cell_type": "markdown", + "id": "7e58dc0b", + "metadata": {}, + "source": [ + "## Crie o esquema de itens\n", + "É através do esquema que o Amazon Personalize entende os seus dados. Esta configuração informa ao serviço como processar os dados do arquivo CSV. Observe que as colunas e tipos estão igual ao arquivo criado na etapa acima." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a791d503", + "metadata": {}, + "outputs": [], + "source": [ + "items_schema = {\n", + " \"type\": \"record\",\n", + " \"name\": \"Items\",\n", + " \"namespace\": \"com.amazonaws.personalize.schema\",\n", + " \"fields\": [\n", + " {\n", + " \"name\": \"ITEM_ID\",\n", + " \"type\": \"string\"\n", + " },\n", + " {\n", + " \"name\": \"PRICE\",\n", + " \"type\": \"float\"\n", + " },\n", + " {\n", + " \"name\": \"CATEGORY_L1\",\n", + " \"type\": [\"string\"],\n", + " \"categorical\": True\n", + " },\n", + " {\n", + " \"name\": \"CATEGORY_L2\",\n", + " \"type\": [\"string\"],\n", + " \"categorical\": True\n", + " \n", + " },\n", + " {\n", + " \"name\": \"GENDER\",\n", + " \"type\": [\"string\"],\n", + " \"categorical\": True\n", + " \n", + " }\n", + " ],\n", + " \"version\": \"1.0\"\n", + "}\n", + "\n", + "create_schema_response = personalize.create_schema(\n", + " name = \"personalize-ecommerce-item_group\",\n", + " domain = \"ECOMMERCE\",\n", + " schema = json.dumps(items_schema)\n", + ")\n", + "\n", + "items_schema_arn = create_schema_response['schemaArn']\n", + "\n", + "print(json.dumps(create_schema_response, indent=2))" + ] + }, + { + "cell_type": "markdown", + "id": "77dd41ad", + "metadata": {}, + "source": [ + "## Crie o conjunto de dados\n", + "Após a criação do grupo, a próxima etapa será criar o conjunto de dados e depois carregá-los no Amazon Personalize." + ] + }, + { + "cell_type": "markdown", + "id": "bad88e7d", + "metadata": {}, + "source": [ + "### Crie o conjunto de dados de interação" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "885bb616", + "metadata": {}, + "outputs": [], + "source": [ + "dataset_type = \"INTERACTIONS\"\n", + "\n", + "create_dataset_response = personalize.create_dataset(\n", + " name = \"personalize_ecommerce_demo_interactions\",\n", + " datasetType = dataset_type,\n", + " datasetGroupArn = dataset_group_arn,\n", + " schemaArn = interaction_schema_arn\n", + ")\n", + "\n", + "interactions_dataset_arn = create_dataset_response['datasetArn']\n", + "print(json.dumps(create_dataset_response, indent=2))" + ] + }, + { + "cell_type": "markdown", + "id": "cb7001e1", + "metadata": {}, + "source": [ + "### Crie o conjunto de dados de itens" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "96bb28e9", + "metadata": {}, + "outputs": [], + "source": [ + "dataset_type = \"ITEMS\"\n", + "\n", + "create_dataset_response = personalize.create_dataset(\n", + " name = \"personalize_ecommerce_demo_items\",\n", + " datasetType = dataset_type,\n", + " datasetGroupArn = dataset_group_arn,\n", + " schemaArn = items_schema_arn\n", + ")\n", + "\n", + "items_dataset_arn = create_dataset_response['datasetArn']\n", + "print(json.dumps(create_dataset_response, indent=2))" + ] + }, + { + "cell_type": "markdown", + "id": "a9c72c02", + "metadata": {}, + "source": [ + "## Crie uma função IAM para o Personalize\n", + "O Amazon Personalize também precisa da acesso de assumir funções IAM na AWS para ter permissões de execução de determinadas tarefas.\n", + "\n", + "Observação: verifique se a função utilizada para executar o código deste notebook tem as permissões necessárias para criar uma nova função IAM." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "3eec5608", + "metadata": {}, + "outputs": [], + "source": [ + "iam = boto3.client(\"iam\")\n", + "\n", + "role_name = \"PersonalizeRoleEcommerceDemoRecommender\"\n", + "assume_role_policy_document = {\n", + " \"Version\": \"2012-10-17\",\n", + " \"Statement\": [\n", + " {\n", + " \"Effect\": \"Allow\",\n", + " \"Principal\": {\n", + " \"Service\": \"personalize.amazonaws.com\"\n", + " },\n", + " \"Action\": \"sts:AssumeRole\"\n", + " }\n", + " ]\n", + "}\n", + "\n", + "create_role_response = iam.create_role(\n", + " RoleName = role_name,\n", + " AssumeRolePolicyDocument = json.dumps(assume_role_policy_document)\n", + ")\n", + "\n", + "# O AmazonPersonalizeFullAccess permite o acesso a qualquer bucket S3 com um nome que inclua \"personalize\" ou \" Personalize\" \n", + "# se quiser utilizar um bucket com um nome diferente, considere a possibilidade de criar e anexar uma nova política\n", + "# que forneça acesso de leitura ao seu bucket ou anexe a política AmazonS3ReadOnlyAccess à função\n", + "policy_arn = \"arn:aws:iam::aws:policy/service-role/AmazonPersonalizeFullAccess\"\n", + "iam.attach_role_policy(\n", + " RoleName = role_name,\n", + " PolicyArn = policy_arn\n", + ")\n", + "\n", + "# Agora adicione o suporte ao S3\n", + "iam.attach_role_policy(\n", + " PolicyArn='arn:aws:iam::aws:policy/AmazonS3FullAccess',\n", + " RoleName=role_name\n", + ")\n", + "time.sleep(60) # aguarde por 1 minuto para que a politica da função IAM se propague\n", + "\n", + "role_arn = create_role_response[\"Role\"][\"Arn\"]\n", + "print(role_arn)\n" + ] + }, + { + "cell_type": "markdown", + "id": "616f86ce", + "metadata": {}, + "source": [ + "## Importe os dados\n", + "Anteriormente, foi criado o grupo e o conjunto de dados para armazenar os dados. A próxima tarefa será importar os dados que serão utilizados na construção do modelo.\n", + "### Crie a tarefa de importação do conjunto de dados de interações" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2e902d38", + "metadata": {}, + "outputs": [], + "source": [ + "create_interactions_dataset_import_job_response = personalize.create_dataset_import_job(\n", + " jobName = \"personalize_ecommerce_demo_interactions_import\",\n", + " datasetArn = interactions_dataset_arn,\n", + " dataSource = {\n", + " \"dataLocation\": \"s3://{}/{}\".format(bucket_name, interactions_file_path)\n", + " },\n", + " roleArn = role_arn\n", + ")\n", + "\n", + "dataset_interactions_import_job_arn = create_interactions_dataset_import_job_response['datasetImportJobArn']\n", + "print(json.dumps(create_interactions_dataset_import_job_response, indent=2))" + ] + }, + { + "cell_type": "markdown", + "id": "64d20685", + "metadata": {}, + "source": [ + "### Crie a tarefa de importação do conjunto de dados de itens" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "432da810", + "metadata": {}, + "outputs": [], + "source": [ + "create_items_dataset_import_job_response = personalize.create_dataset_import_job(\n", + " jobName = \"personalize_ecommerce_demo_items_import\",\n", + " datasetArn = items_dataset_arn,\n", + " dataSource = {\n", + " \"dataLocation\": \"s3://{}/{}\".format(bucket_name, items_file_path)\n", + " },\n", + " roleArn = role_arn\n", + ")\n", + "\n", + "dataset_items_import_job_arn = create_items_dataset_import_job_response['datasetImportJobArn']\n", + "print(json.dumps(create_items_dataset_import_job_response, indent=2))" + ] + }, + { + "cell_type": "markdown", + "id": "06519930", + "metadata": {}, + "source": [ + "### Aguarde para que a tarefa de importação fique com o status ACTIVE\n", + "Pode levar alguns minutos para a tarefa de importação seja concluída. Aguarde até que as tarefas fiquem com o status ativo (ACTIVE) na execução abaixo." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "26369f92", + "metadata": {}, + "outputs": [], + "source": [ + "max_time = time.time() + 3*60*60 # 3 horas\n", + "\n", + "while time.time() < max_time:\n", + " describe_dataset_import_job_response = personalize.describe_dataset_import_job(\n", + " datasetImportJobArn = dataset_items_import_job_arn\n", + " )\n", + " status = describe_dataset_import_job_response[\"datasetImportJob\"]['status']\n", + " print(\"ConjuntodeDadosdeItensImport: {}\".format(status))\n", + " \n", + " if status == \"ACTIVE\" or status == \"CREATE FAILED\":\n", + " break\n", + " \n", + " time.sleep(60)\n", + "\n", + "while time.time() < max_time:\n", + " describe_dataset_import_job_response = personalize.describe_dataset_import_job(\n", + " datasetImportJobArn = dataset_interactions_import_job_arn\n", + " )\n", + " status = describe_dataset_import_job_response[\"datasetImportJob\"]['status']\n", + " print(\"ConjuntodeDadosdeInteracoesImport: {}\".format(status))\n", + " \n", + " if status == \"ACTIVE\" or status == \"CREATE FAILED\":\n", + " break\n", + " \n", + " time.sleep(60)" + ] + }, + { + "cell_type": "markdown", + "id": "8df7d504", + "metadata": {}, + "source": [ + "## Escolha um recomendador\n", + "\n", + "Cada domínio tem casos de uso distintos. Abaixo temos uma lista de receitas para o dominio de e-commerce." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "dd6bdb74", + "metadata": {}, + "outputs": [], + "source": [ + "available_recipes = personalize.list_recipes(domain='ECOMMERCE') # Veja a lista de receitas para o dominio ecommerce\n", + "display (available_recipes['recipes'])" + ] + }, + { + "cell_type": "markdown", + "id": "2960a2b6", + "metadata": {}, + "source": [ + "Vamos criar um recomendador do tipo \"Recomendado para você\". Este recomendador oferece recomendações personalizadas para itens com base em um usuário especifico. Com este recomendador, o Amazon Personalize filtra automaticamente os itens que o usuário comprou com base no userId especificado e nos eventos `Purchase`.\n", + "\n", + "[Informações adicionais para casos de dominio](https://docs.aws.amazon.com/pt_br/personalize/latest/dg/domain-use-cases.html)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ef90d282", + "metadata": {}, + "outputs": [], + "source": [ + "create_recommender_response = personalize.create_recommender(\n", + " name = 'recomendado_para_voce_demo',\n", + " recipeArn = 'arn:aws:personalize:::recipe/aws-ecomm-recommended-for-you',\n", + " datasetGroupArn = dataset_group_arn\n", + ")\n", + "recommended_for_you_arn = create_recommender_response[\"recommenderArn\"]\n", + "print (json.dumps(create_recommender_response))" + ] + }, + { + "cell_type": "markdown", + "id": "78af7483", + "metadata": {}, + "source": [ + "Precisamos aguardar a criação do recomendador e fique com o status `ACTIVE`. Na célula abaixo verificamos o status a cada 60 segundos." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "244a86c2", + "metadata": {}, + "outputs": [], + "source": [ + "%%time\n", + "\n", + "max_time = time.time() + 10*60*60 # 10 horas\n", + " \n", + "while time.time() < max_time:\n", + "\n", + " version_response = personalize.describe_recommender(\n", + " recommenderArn = recommended_for_you_arn\n", + " )\n", + " status = version_response[\"recommender\"][\"status\"]\n", + " print(status)\n", + "\n", + " if status == \"ACTIVE\":\n", + " print(\"Criação com sucesso para {}\".format(recommended_for_you_arn))\n", + " \n", + " elif status == \"CREATE FAILED\":\n", + " print(\"Criação falhou para {}\".format(recommended_for_you_arn))\n", + " break\n", + "\n", + " if status == \"ACTIVE\" or status == \"CREATE FAILED\":\n", + " break\n", + " else:\n", + " print('A criação do recomendador \"Recomendado para você\" ainda esta em progresso')\n", + " \n", + " time.sleep(60)" + ] + }, + { + "cell_type": "markdown", + "id": "e1146c9e", + "metadata": {}, + "source": [ + "## Obtendo recomendações\n", + "Agora que o recomendador foi treinado, vamos analisar as recomendações que conseguimos dar aos nossos usuários!" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4aaa6533", + "metadata": {}, + "outputs": [], + "source": [ + "# lendo os dados originais para ter um Dataframe que tenha ambos os item_ids \n", + "# e os títulos correspondentes para facilitar a leitura das nossas recomendações.\n", + "items_df = pd.read_csv('./items.csv')\n", + "items_df.sample(10)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "583e35f5", + "metadata": {}, + "outputs": [], + "source": [ + "def get_item_by_id(item_id, item_df):\n", + " \"\"\"\n", + " Este processo recebe um item_id de uma recomendação em formato de string, \n", + " converte-o para um int e, em seguida, faz uma pesquisa em um dataframe que retorna a descrição do item.\n", + " \n", + " Em caso de erro temos uma excessão criada.\n", + " \n", + " Fique a vontade para adicionar outros controles e debugs para melhorar o resultado caso tenha algum erro.\n", + " \"\"\"\n", + " try:\n", + " return items_df.loc[items_df[\"ITEM_ID\"]==str(item_id)]['PRODUCT_DESCRIPTION'].values[0]\n", + " except:\n", + " print (item_id)\n", + " return \"Erro ao obter a descrição do item\"" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "848b1cc0", + "metadata": {}, + "outputs": [], + "source": [ + "def get_category_by_id(item_id, item_df):\n", + " \"\"\"\n", + " Este processo recebe um item_id de uma recomendação em formato de string, \n", + " converte-o para um int e, em seguida, faz uma pesquisa em um dataframe e retorna a descrição do item.\n", + " \n", + " Em caso de erro temos uma excessão criada.\n", + " \"\"\"\n", + " \n", + " try:\n", + " return items_df.loc[items_df[\"ITEM_ID\"]==str(item_id)]['CATEGORY_L2'].values[0]\n", + " except:\n", + " print (item_id)\n", + " return \"Erro ao obter a categoria do item\"\n", + " " + ] + }, + { + "cell_type": "markdown", + "id": "13cb379f", + "metadata": {}, + "source": [ + "Vamos receber algumas recomendações do recomendador \"Recomendado para você\":" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9a47b1a3", + "metadata": {}, + "outputs": [], + "source": [ + "# Primeiro selecione um usuário\n", + "test_user_id = \"777\" \n", + "\n", + "# Solicite a recomentação para o usuário\n", + "get_recommendations_response = personalize_runtime.get_recommendations(\n", + " recommenderArn = recommended_for_you_arn,\n", + " userId = test_user_id,\n", + " numResults = 20\n", + ")\n", + "\n", + "# Crie um novo dataframe para as recomendações\n", + "item_list = get_recommendations_response['itemList']\n", + "recommendation_id_list = []\n", + "recommendation_description_list = []\n", + "recommendation_category_list = []\n", + "\n", + "for item in item_list:\n", + " description = get_item_by_id(item['itemId'], items_df)\n", + " recommendation_description_list.append(description)\n", + " recommendation_id_list.append(item['itemId'])\n", + " recommendation_category_list.append(get_category_by_id(item['itemId'], items_df))\n", + "\n", + "user_recommendations_df = pd.DataFrame(recommendation_id_list, columns = [\"ID\"])\n", + "user_recommendations_df[\"description\"] = recommendation_description_list\n", + "user_recommendations_df[\"category level 2\"] = recommendation_category_list\n", + "\n", + "pd.options.display.max_rows =20\n", + "display(user_recommendations_df)" + ] + }, + { + "cell_type": "markdown", + "id": "bff9ddd9", + "metadata": {}, + "source": [ + "## Utilizando filtro de promoção com um recomendador\n", + "Vamos criar um filtro de promoção para garantir que as recomendações para os usuários contêm itens que queremos promover. A nossa loja de e-commerce está promovendo produtos para o Halloween, e queremos garantir que os usuários vejam produtos desta categoria.\n", + "\n", + "Para maiores informações sobre filtro de promoção, acesse: [documentação](https://docs.aws.amazon.com/pt_br/personalize/latest/dg/promoting-items.html). \n", + "\n", + "### Crie um filtro para promover itens\n", + "\n", + "Primeiro, precisamos de criar um filtro que defina quais os produtos que serão promovidos. Utilizaremos um filtro dinâmico [filtro](https://docs.aws.amazon.com/pt_br/personalize/latest/dg/filter-expressions.html) que recebe um valor em tempo de inferência. \n", + "\n", + "Este filtro inclui apenas os itens que têm o valor especificado para a coluna *Items.CATEGORY_L2*.\n", + "\n", + "Para obter os mesmos resultados, também poderíamos utilizar um filtro estático da seguinte forma:\n", + "\n", + "```\n", + "'INCLUDE ItemID WHERE Items.CATEGORY_L2 IN (\"halloween\")'\n", + "```\n", + "\n", + "Com o uso do filtro dinâmico temos maior flexibilidade, e caso seja necessário promover produtos de uma outra categoria não será necessário criar um novo filtro." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ed562d1f", + "metadata": {}, + "outputs": [], + "source": [ + "create_filter_response = personalize.create_filter(\n", + " name = 'filtro_categoria',\n", + " datasetGroupArn = dataset_group_arn,\n", + " filterExpression = 'INCLUDE ItemID WHERE Items.CATEGORY_L2 IN ($CATEGORY)'\n", + ") \n", + "filter_arn = create_filter_response[\"filterArn\"]\n", + "print(\"Filter ARN: \" + filter_arn)" + ] + }, + { + "cell_type": "markdown", + "id": "59294595", + "metadata": {}, + "source": [ + "Aguarde até que o filtro criado fique com o status: \"Active\"." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9e0da60e", + "metadata": {}, + "outputs": [], + "source": [ + "%%time\n", + "\n", + "max_time = time.time() + 10*60*60 # 10 horas\n", + " \n", + "while time.time() < max_time:\n", + " version_response = personalize.describe_filter(\n", + " filterArn = filter_arn\n", + " )\n", + " status = version_response[\"filter\"][\"status\"]\n", + "\n", + " if status == \"ACTIVE\":\n", + " print(\"Criação concluída para {}\".format(filter_arn))\n", + " \n", + " elif status == \"CREATE FAILED\":\n", + " print(\"Criação falhou para {}\".format(filter_arn))\n", + " break\n", + "\n", + " if status == \"ACTIVE\" or status == \"CREATE FAILED\":\n", + " break\n", + " else:\n", + " print('A criação do filtro está em progresso')\n", + " \n", + " time.sleep(30)" + ] + }, + { + "cell_type": "markdown", + "id": "40388118", + "metadata": {}, + "source": [ + "### Receba recomentações para o filtro criado\n", + "\n", + "Agora que o filtro foi criado, podemos receber recomendações para um usuário utilizando o filtro. Vamos usar o usuário de teste previamente configurado." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6dda3682", + "metadata": {}, + "outputs": [], + "source": [ + "print(test_user_id)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "be991bd9", + "metadata": {}, + "outputs": [], + "source": [ + "get_recommendations_response = personalize_runtime.get_recommendations(\n", + " recommenderArn = recommended_for_you_arn,\n", + " userId = test_user_id,\n", + " numResults = 20,\n", + " filterArn = filter_arn,\n", + " filterValues={\"CATEGORY\" : \"\\\"halloween\\\"\"}\n", + ")\n", + "user_recommendations_df =[]\n", + "\n", + "# Criar um novo dataframe para as recomendações\n", + "item_list = get_recommendations_response['itemList']\n", + "recommendation_id_list = []\n", + "recommendation_description_list = []\n", + "recommendation_category_list = []\n", + "\n", + "for item in item_list:\n", + " description = get_item_by_id(item['itemId'], items_df)\n", + " recommendation_description_list.append(description)\n", + " recommendation_id_list.append(item['itemId'])\n", + " recommendation_category_list.append(get_category_by_id(item['itemId'], items_df))\n", + "\n", + "user_recommendations_df = pd.DataFrame(recommendation_id_list, columns = [\"ID\"])\n", + "user_recommendations_df[\"description\"] = recommendation_description_list\n", + "user_recommendations_df[\"category level 2\"] = recommendation_category_list\n", + "\n", + "pd.options.display.max_rows =20\n", + "display(user_recommendations_df)" + ] + }, + { + "cell_type": "markdown", + "id": "3984415e", + "metadata": {}, + "source": [ + "Podemos observar que todos os itens retornados têm \"category l2\" como \"halloween\"." + ] + }, + { + "cell_type": "markdown", + "id": "37bbc039", + "metadata": {}, + "source": [ + "### Recebendo recomendações com o uso do filtro de promoção\n", + "\n", + "Queremos fazer recomendações personalizadas para cada usuário, mas em vez de ter todos os itens de uma determinada categoria, queremos ainda incluir alguns itens para a promover a categoria \"Halloween\". Para isso vamos usar o filtro de promoção!" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "8a4a0f4e", + "metadata": {}, + "outputs": [], + "source": [ + "get_recommendations_response = personalize_runtime.get_recommendations(\n", + " recommenderArn = recommended_for_you_arn,\n", + " userId = test_user_id,\n", + " numResults = 20,\n", + " promotions = [{\n", + " \"name\" : \"halloween_promotion\",\n", + " \"percentPromotedItems\" : 20,\n", + " \"filterArn\": filter_arn,\n", + " \"filterValues\": {\n", + " \"CATEGORY\" : \"\\\"halloween\\\"\"\n", + " }\n", + " }]\n", + ")\n", + "\n", + "\n", + "# Criar um novo dataframe para as recomendações\n", + "item_list = get_recommendations_response['itemList']\n", + "recommendation_id_list = []\n", + "recommendation_description_list = []\n", + "recommendation_category_list = []\n", + "\n", + "for item in item_list:\n", + " description = get_item_by_id(item['itemId'], items_df)\n", + " recommendation_description_list.append(description)\n", + " recommendation_id_list.append(item['itemId'])\n", + " recommendation_category_list.append(get_category_by_id(item['itemId'], items_df))\n", + "\n", + "user_recommendations_df = pd.DataFrame(recommendation_id_list, columns = [\"ID\"])\n", + "user_recommendations_df[\"description\"] = recommendation_description_list\n", + "user_recommendations_df[\"category level 2\"] = recommendation_category_list\n", + "\n", + "pd.options.display.max_rows =20\n", + "display(user_recommendations_df)" + ] + }, + { + "cell_type": "markdown", + "id": "cdbab006", + "metadata": {}, + "source": [ + "### Promovendo produtos enquanto aplicamos o filtro\n", + "\n", + "É possível utilizar um filtro combinado com a ação de promover produtos. O filtro no nível superior do bloco de parâmetros é aplicado apenas aos itens não promovidos. O filtro para selecionar os produtos promovidos é especificado no bloco de parâmetros `promotions`. O exemplo a seguir utiliza o mesmo filtro dinâmico utilizado anteriormente. O primeiro é aplicado aos produtos não promovidos, selecionando os produtos do nível 2 da categoria \"decorative\", e o segundo é aplicado ao filtro de promoção, promovendo produtos do nível 2 da categoria \"halloween\"." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "7fc31280", + "metadata": {}, + "outputs": [], + "source": [ + "get_recommendations_response = personalize_runtime.get_recommendations(\n", + " recommenderArn=recommended_for_you_arn,\n", + " userId=test_user_id,\n", + " numResults=20,\n", + " filterArn=filter_arn,\n", + " filterValues={\n", + " \"CATEGORY\": \"\\\"decorative\\\"\"\n", + " },\n", + " promotions=[{\n", + " \"name\": \"halloween_promotion\",\n", + " \"percentPromotedItems\": 20,\n", + " \"filterArn\": filter_arn,\n", + " \"filterValues\": {\n", + " \"CATEGORY\": \"\\\"halloween\\\"\"\n", + " }\n", + " }]\n", + ")\n", + "\n", + "# Criar um novo dataframe para as recomendações\n", + "item_list = get_recommendations_response['itemList']\n", + "recommendation_id_list = []\n", + "recommendation_description_list = []\n", + "recommendation_category_list = []\n", + "\n", + "for item in item_list:\n", + " description = get_item_by_id(item['itemId'], items_df)\n", + " recommendation_description_list.append(description)\n", + " recommendation_id_list.append(item['itemId'])\n", + " recommendation_category_list.append(\n", + " get_category_by_id(item['itemId'], items_df))\n", + "\n", + "user_recommendations_df = pd.DataFrame(recommendation_id_list, columns=[\"ID\"])\n", + "user_recommendations_df[\"description\"] = recommendation_description_list\n", + "user_recommendations_df[\"category level 2\"] = recommendation_category_list\n", + "\n", + "pd.options.display.max_rows = 20\n", + "display(user_recommendations_df)" + ] + }, + { + "cell_type": "markdown", + "id": "610a4725", + "metadata": {}, + "source": [ + "## Conclusão\n", + "Usando este notebook, foi possível treinar com sucesso um modelo de aprendizado de máquina (Machine Learning) para gerar recomendações de produtos com base no comportamento passado do usuário. Você criou um recomendador para um cenário de uso básico e usou filtros e [Filtro de Promoção](https://docs.aws.amazon.com/pt_br/personalize/latest/dg/promoting-items.html) para aplicar regras de negócio adicionais aos produtos que devem ser apresentados aos usuários.\n", + "\n", + "Como próximo passo, é possível adaptar este código para criar outros recomendadores de acordo com as suas necessidades.\n", + "\n", + "Após concluir este exemplo, certifique-se de seguir os passos da próxima sessão para remover os recursos criados neste notebook." + ] + }, + { + "cell_type": "markdown", + "id": "aa077309", + "metadata": {}, + "source": [ + "## Remoção dos recursos\n", + "Esta seção fornece instruções sobre como remover os recursos criados neste notebook" + ] + }, + { + "cell_type": "markdown", + "id": "231035cc", + "metadata": {}, + "source": [ + "### Salve as informações do recurso para a remoção:\n", + "Salve a informação dos recursos criados para utilizar no próximo notebook `Limpeza_de_Recursos.ipynb`.\n", + "\n", + "Importante: Isto substituirá qualquer dado armazenado para estas variáveis e as definirá com os valores neste notebook." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c480f708", + "metadata": {}, + "outputs": [], + "source": [ + "# Salve as informações dos recursos criados para posterior limpeza\n", + "%store dataset_group_arn\n", + "%store role_name\n", + "%store region\n", + "print ('dataset_group_arn:', dataset_group_arn)\n", + "print ('role_name:', role_name)\n", + "print ('region:', region)" + ] + }, + { + "cell_type": "markdown", + "id": "31a9eb53", + "metadata": {}, + "source": [ + "### Execute o notebook de remoção de recursos\n", + "\n", + "Prossiga para [Limpeza_de_Recursos.ipynb](Limpeza_de_Recursos.ipynb) limpar os recursos." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "dee5b89d", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "availableInstances": [ + { + "_defaultOrder": 0, + "_isFastLaunch": true, + "category": "General purpose", + "gpuNum": 0, + "hideHardwareSpecs": false, + "memoryGiB": 4, + "name": "ml.t3.medium", + "vcpuNum": 2 + }, + { + "_defaultOrder": 1, + "_isFastLaunch": false, + "category": "General purpose", + "gpuNum": 0, + "hideHardwareSpecs": false, + "memoryGiB": 8, + "name": "ml.t3.large", + "vcpuNum": 2 + }, + { + "_defaultOrder": 2, + "_isFastLaunch": false, + "category": "General purpose", + "gpuNum": 0, + "hideHardwareSpecs": false, + "memoryGiB": 16, + "name": "ml.t3.xlarge", + "vcpuNum": 4 + }, + { + "_defaultOrder": 3, + "_isFastLaunch": false, + "category": "General purpose", + "gpuNum": 0, + "hideHardwareSpecs": false, + "memoryGiB": 32, + "name": "ml.t3.2xlarge", + "vcpuNum": 8 + }, + { + "_defaultOrder": 4, + "_isFastLaunch": true, + "category": "General purpose", + "gpuNum": 0, + "hideHardwareSpecs": false, + "memoryGiB": 8, + "name": "ml.m5.large", + "vcpuNum": 2 + }, + { + "_defaultOrder": 5, + "_isFastLaunch": false, + "category": "General purpose", + "gpuNum": 0, + "hideHardwareSpecs": false, + "memoryGiB": 16, + "name": "ml.m5.xlarge", + "vcpuNum": 4 + }, + { + "_defaultOrder": 6, + "_isFastLaunch": false, + "category": "General purpose", + "gpuNum": 0, + "hideHardwareSpecs": false, + "memoryGiB": 32, + "name": "ml.m5.2xlarge", + "vcpuNum": 8 + }, + { + "_defaultOrder": 7, + "_isFastLaunch": false, + "category": "General purpose", + "gpuNum": 0, + "hideHardwareSpecs": false, + "memoryGiB": 64, + "name": "ml.m5.4xlarge", + "vcpuNum": 16 + }, + { + "_defaultOrder": 8, + "_isFastLaunch": false, + "category": "General purpose", + "gpuNum": 0, + "hideHardwareSpecs": false, + "memoryGiB": 128, + "name": "ml.m5.8xlarge", + "vcpuNum": 32 + }, + { + "_defaultOrder": 9, + "_isFastLaunch": false, + "category": "General purpose", + "gpuNum": 0, + "hideHardwareSpecs": false, + "memoryGiB": 192, + "name": "ml.m5.12xlarge", + "vcpuNum": 48 + }, + { + "_defaultOrder": 10, + "_isFastLaunch": false, + "category": "General purpose", + "gpuNum": 0, + "hideHardwareSpecs": false, + "memoryGiB": 256, + "name": "ml.m5.16xlarge", + "vcpuNum": 64 + }, + { + "_defaultOrder": 11, + "_isFastLaunch": false, + "category": "General purpose", + "gpuNum": 0, + "hideHardwareSpecs": false, + "memoryGiB": 384, + "name": "ml.m5.24xlarge", + "vcpuNum": 96 + }, + { + "_defaultOrder": 12, + "_isFastLaunch": false, + "category": "General purpose", + "gpuNum": 0, + "hideHardwareSpecs": false, + "memoryGiB": 8, + "name": "ml.m5d.large", + "vcpuNum": 2 + }, + { + "_defaultOrder": 13, + "_isFastLaunch": false, + "category": "General purpose", + "gpuNum": 0, + "hideHardwareSpecs": false, + "memoryGiB": 16, + "name": "ml.m5d.xlarge", + "vcpuNum": 4 + }, + { + "_defaultOrder": 14, + "_isFastLaunch": false, + "category": "General purpose", + "gpuNum": 0, + "hideHardwareSpecs": false, + "memoryGiB": 32, + "name": "ml.m5d.2xlarge", + "vcpuNum": 8 + }, + { + "_defaultOrder": 15, + "_isFastLaunch": false, + "category": "General purpose", + "gpuNum": 0, + "hideHardwareSpecs": false, + "memoryGiB": 64, + "name": "ml.m5d.4xlarge", + "vcpuNum": 16 + }, + { + "_defaultOrder": 16, + "_isFastLaunch": false, + "category": "General purpose", + "gpuNum": 0, + "hideHardwareSpecs": false, + "memoryGiB": 128, + "name": "ml.m5d.8xlarge", + "vcpuNum": 32 + }, + { + "_defaultOrder": 17, + "_isFastLaunch": false, + "category": "General purpose", + "gpuNum": 0, + "hideHardwareSpecs": false, + "memoryGiB": 192, + "name": "ml.m5d.12xlarge", + "vcpuNum": 48 + }, + { + "_defaultOrder": 18, + "_isFastLaunch": false, + "category": "General purpose", + "gpuNum": 0, + "hideHardwareSpecs": false, + "memoryGiB": 256, + "name": "ml.m5d.16xlarge", + "vcpuNum": 64 + }, + { + "_defaultOrder": 19, + "_isFastLaunch": false, + "category": "General purpose", + "gpuNum": 0, + "hideHardwareSpecs": false, + "memoryGiB": 384, + "name": "ml.m5d.24xlarge", + "vcpuNum": 96 + }, + { + "_defaultOrder": 20, + "_isFastLaunch": false, + "category": "General purpose", + "gpuNum": 0, + "hideHardwareSpecs": true, + "memoryGiB": 0, + "name": "ml.geospatial.interactive", + "supportedImageNames": [ + "sagemaker-geospatial-v1-0" + ], + "vcpuNum": 0 + }, + { + "_defaultOrder": 21, + "_isFastLaunch": true, + "category": "Compute optimized", + "gpuNum": 0, + "hideHardwareSpecs": false, + "memoryGiB": 4, + "name": "ml.c5.large", + "vcpuNum": 2 + }, + { + "_defaultOrder": 22, + "_isFastLaunch": false, + "category": "Compute optimized", + "gpuNum": 0, + "hideHardwareSpecs": false, + "memoryGiB": 8, + "name": "ml.c5.xlarge", + "vcpuNum": 4 + }, + { + "_defaultOrder": 23, + "_isFastLaunch": false, + "category": "Compute optimized", + "gpuNum": 0, + "hideHardwareSpecs": false, + "memoryGiB": 16, + "name": "ml.c5.2xlarge", + "vcpuNum": 8 + }, + { + "_defaultOrder": 24, + "_isFastLaunch": false, + "category": "Compute optimized", + "gpuNum": 0, + "hideHardwareSpecs": false, + "memoryGiB": 32, + "name": "ml.c5.4xlarge", + "vcpuNum": 16 + }, + { + "_defaultOrder": 25, + "_isFastLaunch": false, + "category": "Compute optimized", + "gpuNum": 0, + "hideHardwareSpecs": false, + "memoryGiB": 72, + "name": "ml.c5.9xlarge", + "vcpuNum": 36 + }, + { + "_defaultOrder": 26, + "_isFastLaunch": false, + "category": "Compute optimized", + "gpuNum": 0, + "hideHardwareSpecs": false, + "memoryGiB": 96, + "name": "ml.c5.12xlarge", + "vcpuNum": 48 + }, + { + "_defaultOrder": 27, + "_isFastLaunch": false, + "category": "Compute optimized", + "gpuNum": 0, + "hideHardwareSpecs": false, + "memoryGiB": 144, + "name": "ml.c5.18xlarge", + "vcpuNum": 72 + }, + { + "_defaultOrder": 28, + "_isFastLaunch": false, + "category": "Compute optimized", + "gpuNum": 0, + "hideHardwareSpecs": false, + "memoryGiB": 192, + "name": "ml.c5.24xlarge", + "vcpuNum": 96 + }, + { + "_defaultOrder": 29, + "_isFastLaunch": true, + "category": "Accelerated computing", + "gpuNum": 1, + "hideHardwareSpecs": false, + "memoryGiB": 16, + "name": "ml.g4dn.xlarge", + "vcpuNum": 4 + }, + { + "_defaultOrder": 30, + "_isFastLaunch": false, + "category": "Accelerated computing", + "gpuNum": 1, + "hideHardwareSpecs": false, + "memoryGiB": 32, + "name": "ml.g4dn.2xlarge", + "vcpuNum": 8 + }, + { + "_defaultOrder": 31, + "_isFastLaunch": false, + "category": "Accelerated computing", + "gpuNum": 1, + "hideHardwareSpecs": false, + "memoryGiB": 64, + "name": "ml.g4dn.4xlarge", + "vcpuNum": 16 + }, + { + "_defaultOrder": 32, + "_isFastLaunch": false, + "category": "Accelerated computing", + "gpuNum": 1, + "hideHardwareSpecs": false, + "memoryGiB": 128, + "name": "ml.g4dn.8xlarge", + "vcpuNum": 32 + }, + { + "_defaultOrder": 33, + "_isFastLaunch": false, + "category": "Accelerated computing", + "gpuNum": 4, + "hideHardwareSpecs": false, + "memoryGiB": 192, + "name": "ml.g4dn.12xlarge", + "vcpuNum": 48 + }, + { + "_defaultOrder": 34, + "_isFastLaunch": false, + "category": "Accelerated computing", + "gpuNum": 1, + "hideHardwareSpecs": false, + "memoryGiB": 256, + "name": "ml.g4dn.16xlarge", + "vcpuNum": 64 + }, + { + "_defaultOrder": 35, + "_isFastLaunch": false, + "category": "Accelerated computing", + "gpuNum": 1, + "hideHardwareSpecs": false, + "memoryGiB": 61, + "name": "ml.p3.2xlarge", + "vcpuNum": 8 + }, + { + "_defaultOrder": 36, + "_isFastLaunch": false, + "category": "Accelerated computing", + "gpuNum": 4, + "hideHardwareSpecs": false, + "memoryGiB": 244, + "name": "ml.p3.8xlarge", + "vcpuNum": 32 + }, + { + "_defaultOrder": 37, + "_isFastLaunch": false, + "category": "Accelerated computing", + "gpuNum": 8, + "hideHardwareSpecs": false, + "memoryGiB": 488, + "name": "ml.p3.16xlarge", + "vcpuNum": 64 + }, + { + "_defaultOrder": 38, + "_isFastLaunch": false, + "category": "Accelerated computing", + "gpuNum": 8, + "hideHardwareSpecs": false, + "memoryGiB": 768, + "name": "ml.p3dn.24xlarge", + "vcpuNum": 96 + }, + { + "_defaultOrder": 39, + "_isFastLaunch": false, + "category": "Memory Optimized", + "gpuNum": 0, + "hideHardwareSpecs": false, + "memoryGiB": 16, + "name": "ml.r5.large", + "vcpuNum": 2 + }, + { + "_defaultOrder": 40, + "_isFastLaunch": false, + "category": "Memory Optimized", + "gpuNum": 0, + "hideHardwareSpecs": false, + "memoryGiB": 32, + "name": "ml.r5.xlarge", + "vcpuNum": 4 + }, + { + "_defaultOrder": 41, + "_isFastLaunch": false, + "category": "Memory Optimized", + "gpuNum": 0, + "hideHardwareSpecs": false, + "memoryGiB": 64, + "name": "ml.r5.2xlarge", + "vcpuNum": 8 + }, + { + "_defaultOrder": 42, + "_isFastLaunch": false, + "category": "Memory Optimized", + "gpuNum": 0, + "hideHardwareSpecs": false, + "memoryGiB": 128, + "name": "ml.r5.4xlarge", + "vcpuNum": 16 + }, + { + "_defaultOrder": 43, + "_isFastLaunch": false, + "category": "Memory Optimized", + "gpuNum": 0, + "hideHardwareSpecs": false, + "memoryGiB": 256, + "name": "ml.r5.8xlarge", + "vcpuNum": 32 + }, + { + "_defaultOrder": 44, + "_isFastLaunch": false, + "category": "Memory Optimized", + "gpuNum": 0, + "hideHardwareSpecs": false, + "memoryGiB": 384, + "name": "ml.r5.12xlarge", + "vcpuNum": 48 + }, + { + "_defaultOrder": 45, + "_isFastLaunch": false, + "category": "Memory Optimized", + "gpuNum": 0, + "hideHardwareSpecs": false, + "memoryGiB": 512, + "name": "ml.r5.16xlarge", + "vcpuNum": 64 + }, + { + "_defaultOrder": 46, + "_isFastLaunch": false, + "category": "Memory Optimized", + "gpuNum": 0, + "hideHardwareSpecs": false, + "memoryGiB": 768, + "name": "ml.r5.24xlarge", + "vcpuNum": 96 + }, + { + "_defaultOrder": 47, + "_isFastLaunch": false, + "category": "Accelerated computing", + "gpuNum": 1, + "hideHardwareSpecs": false, + "memoryGiB": 16, + "name": "ml.g5.xlarge", + "vcpuNum": 4 + }, + { + "_defaultOrder": 48, + "_isFastLaunch": false, + "category": "Accelerated computing", + "gpuNum": 1, + "hideHardwareSpecs": false, + "memoryGiB": 32, + "name": "ml.g5.2xlarge", + "vcpuNum": 8 + }, + { + "_defaultOrder": 49, + "_isFastLaunch": false, + "category": "Accelerated computing", + "gpuNum": 1, + "hideHardwareSpecs": false, + "memoryGiB": 64, + "name": "ml.g5.4xlarge", + "vcpuNum": 16 + }, + { + "_defaultOrder": 50, + "_isFastLaunch": false, + "category": "Accelerated computing", + "gpuNum": 1, + "hideHardwareSpecs": false, + "memoryGiB": 128, + "name": "ml.g5.8xlarge", + "vcpuNum": 32 + }, + { + "_defaultOrder": 51, + "_isFastLaunch": false, + "category": "Accelerated computing", + "gpuNum": 1, + "hideHardwareSpecs": false, + "memoryGiB": 256, + "name": "ml.g5.16xlarge", + "vcpuNum": 64 + }, + { + "_defaultOrder": 52, + "_isFastLaunch": false, + "category": "Accelerated computing", + "gpuNum": 4, + "hideHardwareSpecs": false, + "memoryGiB": 192, + "name": "ml.g5.12xlarge", + "vcpuNum": 48 + }, + { + "_defaultOrder": 53, + "_isFastLaunch": false, + "category": "Accelerated computing", + "gpuNum": 4, + "hideHardwareSpecs": false, + "memoryGiB": 384, + "name": "ml.g5.24xlarge", + "vcpuNum": 96 + }, + { + "_defaultOrder": 54, + "_isFastLaunch": false, + "category": "Accelerated computing", + "gpuNum": 8, + "hideHardwareSpecs": false, + "memoryGiB": 768, + "name": "ml.g5.48xlarge", + "vcpuNum": 192 + }, + { + "_defaultOrder": 55, + "_isFastLaunch": false, + "category": "Accelerated computing", + "gpuNum": 8, + "hideHardwareSpecs": false, + "memoryGiB": 1152, + "name": "ml.p4d.24xlarge", + "vcpuNum": 96 + }, + { + "_defaultOrder": 56, + "_isFastLaunch": false, + "category": "Accelerated computing", + "gpuNum": 8, + "hideHardwareSpecs": false, + "memoryGiB": 1152, + "name": "ml.p4de.24xlarge", + "vcpuNum": 96 + } + ], + "instance_type": "ml.c5.large", + "kernelspec": { + "display_name": "Python 3 (Data Science 3.0)", + "language": "python", + "name": "python3__SAGEMAKER_INTERNAL__arn:aws:sagemaker:us-east-1:081325390199:image/sagemaker-data-science-310-v1" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.6" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/next_steps/core_use_cases/filters/promotions/Limpeza_de_Recursos.ipynb b/next_steps/core_use_cases/filters/promotions/Limpeza_de_Recursos.ipynb new file mode 100644 index 0000000..43728e5 --- /dev/null +++ b/next_steps/core_use_cases/filters/promotions/Limpeza_de_Recursos.ipynb @@ -0,0 +1,1003 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "f2ed4510", + "metadata": {}, + "source": [ + "# Remoção dos recursos\n", + "Este notebook detalha o processo de remover os recursos criados no notebook anterior \"Filtro_de_promocao.ipynb\" carregando as informações dos recuros já salvos.\n", + "\n", + "(!) Se você criou recursos utilizando múltiplos notebooks e tem múltiplos grupos de conjuntos de dados, execute a célula que começa com `# store for cleanup` no final do notebook e logo em seguida execute este notebook para cada um deles (ex: caso tenha criado dois grupos de conjuntos de dados, terá que executar este notebook duas vezes). Este código remove apenas os recursos especificados em `# store for cleanup`, corresponderão ao último notebook executado).\n", + "\n", + "Você pode utilizar este notebook para remover recursos do Amazon Personalize. Os ARNs dos recursos são definidos no notebook anterior, e também é possível adicioná-los de forma manual abaixo." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a771e164", + "metadata": {}, + "outputs": [], + "source": [ + "%store -r" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "24882c55", + "metadata": {}, + "outputs": [], + "source": [ + "# Se não puder/não quiser usar \"%store -r\" para carregar os recursos a serem apagados, \n", + "# pode retirar o comentário do código abaixo e inseri-los manualmente\n", + "\n", + "# dataset_group_arn='XXXXX'\n", + "# role_name='XXXXX'\n", + "# region='XXXXX'" + ] + }, + { + "cell_type": "markdown", + "id": "d317efa0", + "metadata": {}, + "source": [ + "Valide se as informações correspondem aos recursos a serem removidos. \n", + "Importante: Esta operação não pode ser desfeita." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a856088b", + "metadata": {}, + "outputs": [], + "source": [ + "print ('dataset_group_arn:', dataset_group_arn)\n", + "print ('role_name:', role_name)\n", + "print ('region:', region)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2d2adadd", + "metadata": {}, + "outputs": [], + "source": [ + "schema_arns = []" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4013ba1b", + "metadata": {}, + "outputs": [], + "source": [ + "import sys\n", + "import getopt\n", + "import logging\n", + "import botocore\n", + "import boto3\n", + "import time\n", + "from packaging import version\n", + "from time import sleep\n", + "from botocore.exceptions import ClientError\n", + "\n", + "logger = logging.getLogger()\n", + "handler = logging.StreamHandler(sys.stdout)\n", + "handler.setLevel(logging.INFO)\n", + "logger.setLevel(logging.INFO)\n", + "logger.addHandler(handler)\n", + "\n", + "personalize = None" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f358d77f", + "metadata": {}, + "outputs": [], + "source": [ + "def _delete_event_trackers(dataset_group_arn):\n", + " event_tracker_arns = []\n", + "\n", + " event_trackers_paginator = personalize.get_paginator('list_event_trackers')\n", + " for event_tracker_page in event_trackers_paginator.paginate(datasetGroupArn = dataset_group_arn):\n", + " for event_tracker in event_tracker_page['eventTrackers']:\n", + " if event_tracker['status'] in [ 'ACTIVE', 'CREATE FAILED' ]:\n", + " logger.info('Removendo o event tracker {}'.format(event_tracker['eventTrackerArn']))\n", + " personalize.delete_event_tracker(eventTrackerArn = event_tracker['eventTrackerArn'])\n", + " elif event_tracker['status'].startswith('DELETE'):\n", + " logger.warning('Event tracker {} esta sendo removido e vai aguardar até completar'.format(event_tracker['eventTrackerArn']))\n", + " else:\n", + " raise Exception('Solução {} esta com o status {} e não pode ser removida'.format(event_tracker['eventTrackerArn'], event_tracker['status']))\n", + "\n", + " event_tracker_arns.append(event_tracker['eventTrackerArn'])\n", + "\n", + " max_time = time.time() + 30*60 # 30 minutos\n", + " while time.time() < max_time:\n", + " for event_tracker_arn in event_tracker_arns:\n", + " try:\n", + " describe_response = personalize.describe_event_tracker(eventTrackerArn = event_tracker_arn)\n", + " logger.debug('Event tracker {} esta com o status {}'.format(event_tracker_arn, describe_response['eventTracker']['status']))\n", + " except ClientError as e:\n", + " error_code = e.response['Error']['Code']\n", + " if error_code == 'ResourceNotFoundException':\n", + " event_tracker_arns.remove(event_tracker_arn)\n", + "\n", + " if len(event_tracker_arns) == 0:\n", + " logger.info('Todos os event trackers foram removidos ou não existem para o dataset group')\n", + " break\n", + " else:\n", + " logger.info('Agurdando para {} event tracker(s) ser(em) removido(s)'.format(len(event_tracker_arns)))\n", + " time.sleep(20)\n", + "\n", + " if len(event_tracker_arns) > 0:\n", + " raise Exception('Timed out enquanto aguardava a remoção dos event trackers')\n", + "\n", + "def _delete_filters(dataset_group_arn):\n", + " filter_arns = []\n", + "\n", + " filters_response = personalize.list_filters(datasetGroupArn = dataset_group_arn, maxResults = 100)\n", + " for filter in filters_response['Filters']:\n", + " logger.info('Removendo filtro ' + filter['filterArn'])\n", + " personalize.delete_filter(filterArn = filter['filterArn'])\n", + " filter_arns.append(filter['filterArn'])\n", + "\n", + " max_time = time.time() + 30*60 # 30 minutos\n", + " while time.time() < max_time:\n", + " for filter_arn in filter_arns:\n", + " try:\n", + " describe_response = personalize.describe_filter(filterArn = filter_arn)\n", + " logger.debug('Filtro {} esta com o status {}'.format(filter_arn, describe_response['filter']['status']))\n", + " except ClientError as e:\n", + " error_code = e.response['Error']['Code']\n", + " if error_code == 'ResourceNotFoundException':\n", + " filter_arns.remove(filter_arn)\n", + "\n", + " if len(filter_arns) == 0:\n", + " logger.info('Todos os filtros foram removidos ou não existem para o dataset group')\n", + " break\n", + " else:\n", + " logger.info('Aguardando para {} filtro(s) ser(em) removido(s)'.format(len(filter_arns)))\n", + " time.sleep(20)\n", + "\n", + " if len(filter_arns) > 0:\n", + " raise Exception('Time out enquanto aguardava a remoção dos filtros')\n", + " \n", + "def _delete_recommenders(dataset_group_arn):\n", + " recommender_arns = []\n", + " recommenders_response = personalize.list_recommenders(datasetGroupArn = dataset_group_arn, maxResults = 100)\n", + " for recommender in recommenders_response['recommenders']:\n", + " logger.info('Removendo recomendador ' + recommender['recommenderArn'])\n", + " personalize.delete_recommender(recommenderArn = recommender['recommenderArn'])\n", + " recommender_arns.append(recommender['recommenderArn'])\n", + " max_time = time.time() + 30*60 # 30 minutos\n", + " while time.time() < max_time:\n", + " for recommender_arn in recommender_arns:\n", + " try:\n", + " describe_response = personalize.describe_recommender(recommenderArn = recommender_arn)\n", + " logger.debug('Recomendados {} esta com o status {}'.format(recommender_arn, describe_response['recommender']['status']))\n", + " except ClientError as e:\n", + " error_code = e.response['Error']['Code']\n", + " if error_code == 'ResourceNotFoundException':\n", + " recommender_arns.remove(recommender_arn)\n", + "\n", + " if len(recommender_arns) == 0:\n", + " logger.info('Todos os recomendadores foram removidos ou não existem para o dataset group')\n", + " break\n", + " else:\n", + " logger.info('Aguardando para {} recomendador(es) ser(em) removido(s)'.format(len(recommender_arns)))\n", + " time.sleep(20)\n", + "\n", + " if len(recommender_arns) > 0:\n", + " raise Exception('Timed out enquanto aguardava a remoção dos recomendadores')\n", + " \n", + "\n", + "def _delete_datasets_and_schemas(dataset_group_arn, schema_arns):\n", + " dataset_arns = []\n", + " \n", + " dataset_paginator = personalize.get_paginator('list_datasets')\n", + " for dataset_page in dataset_paginator.paginate(datasetGroupArn = dataset_group_arn):\n", + " for dataset in dataset_page['datasets']:\n", + " describe_response = personalize.describe_dataset(datasetArn = dataset['datasetArn'])\n", + " schema_arns.append(describe_response['dataset']['schemaArn'])\n", + "\n", + " if dataset['status'] in ['ACTIVE', 'CREATE FAILED']:\n", + " logger.info('Removendo conjunto de dados ' + dataset['datasetArn'])\n", + " personalize.delete_dataset(datasetArn = dataset['datasetArn'])\n", + " elif dataset['status'].startswith('DELETE'):\n", + " logger.warning('Conjunto de dados {} esta sendo removido e vai aguardar até completar'.format(dataset['datasetArn']))\n", + " else:\n", + " raise Exception('Conjunto de dados {} esta com o status {} e não pode ser removido'.format(dataset['datasetArn'], dataset['status']))\n", + "\n", + " dataset_arns.append(dataset['datasetArn'])\n", + "\n", + " max_time = time.time() + 30*60 # 30 minutos\n", + " while time.time() < max_time:\n", + " for dataset_arn in dataset_arns:\n", + " try:\n", + " describe_response = personalize.describe_dataset(datasetArn = dataset_arn)\n", + " logger.debug('Dataset {} status is {}'.format(dataset_arn, describe_response['dataset']['status']))\n", + " except ClientError as e:\n", + " error_code = e.response['Error']['Code']\n", + " if error_code == 'ResourceNotFoundException':\n", + " dataset_arns.remove(dataset_arn)\n", + "\n", + " if len(dataset_arns) == 0:\n", + " logger.info('Todos os conjuntos de dados foram removidos ou não existem para o dataset group')\n", + " break\n", + " else:\n", + " logger.info('Aguardando para {} conjunto(s) de dados ser(em) removido(s)'.format(len(dataset_arns)))\n", + " time.sleep(20)\n", + "\n", + " if len(dataset_arns) > 0:\n", + " raise Exception('Timed out enquanto aguardava a remoção dos conjuntos de dados')\n", + "\n", + " for schema_arn in schema_arns:\n", + " try:\n", + " logger.info('Removendo o esquema ' + schema_arn)\n", + " personalize.delete_schema(schemaArn = schema_arn)\n", + " except ClientError as e:\n", + " error_code = e.response['Error']['Code']\n", + " if error_code == 'ResourceInUseException':\n", + " logger.info('Esquema {} ainda esta sendo utilizado por outro conjunto de dados'.format(schema_arn))\n", + " else:\n", + " raise e\n", + "\n", + " logger.info('Todos os esquemas utilizados por este conjunto de dados foram removidos ou não existem mais')\n", + "\n", + "def _delete_dataset_group(dataset_group_arn):\n", + " logger.info('Removendo o grupo de conjunto de dados ' + dataset_group_arn)\n", + " personalize.delete_dataset_group(datasetGroupArn = dataset_group_arn)\n", + "\n", + " max_time = time.time() + 30*60 # 30 minutos\n", + " while time.time() < max_time:\n", + " try:\n", + " describe_response = personalize.describe_dataset_group(datasetGroupArn = dataset_group_arn)\n", + " logger.debug('Grupo de conjunto de dados {} status é {}'.format(dataset_group_arn, describe_response['datasetGroup']['status']))\n", + " break\n", + " except ClientError as e:\n", + " error_code = e.response['Error']['Code']\n", + " if error_code == 'ResourceNotFoundException':\n", + " logger.info('Grupo de conjunto de dados {} foi removido'.format(dataset_group_arn))\n", + " else:\n", + " raise e\n", + "\n", + " logger.info('Aguardando o grupo de conjunto de dados ser removido')\n", + " time.sleep(20)\n", + "\n", + "def delete_dataset_groups(dataset_group_arns, schema_arns, region = None):\n", + " global personalize\n", + " personalize = boto3.client(service_name = 'personalize', region_name = region)\n", + "\n", + " for dataset_group_arn in dataset_group_arns:\n", + " logger.info('Dataset Group ARN: ' + dataset_group_arn)\n", + "\n", + " # 1. Remove recomendadores\n", + " _delete_recommenders(dataset_group_arn)\n", + " \n", + " # 2. Remove event trackers\n", + " _delete_event_trackers(dataset_group_arn)\n", + "\n", + " # 3. Remove filtros\n", + " _delete_filters(dataset_group_arn)\n", + "\n", + " # 4. Remove conjuntos de dados e esquemas\n", + " _delete_datasets_and_schemas(dataset_group_arn, schema_arns)\n", + "\n", + " # 5. Remove grupo de conjunto de dados\n", + " _delete_dataset_group(dataset_group_arn)\n", + "\n", + " logger.info(f'Grupo de conjunto de dados {dataset_group_arn} foi removido')\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "3632a568", + "metadata": {}, + "outputs": [], + "source": [ + "delete_dataset_groups([dataset_group_arn], schema_arns, region)" + ] + }, + { + "cell_type": "markdown", + "id": "84e94a02", + "metadata": {}, + "source": [ + "## Remoção da função IAM\n", + "Comece removendo a função IAM." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6372bd68", + "metadata": {}, + "outputs": [], + "source": [ + "iam = boto3.client('iam')" + ] + }, + { + "cell_type": "markdown", + "id": "31952392", + "metadata": {}, + "source": [ + "Identifique o nome da função que será removida.\n", + "\n", + "Não é possível remover uma função de IAM que ainda tenha políticas anexadas. Então depois de identificar a função, vamos listar as políticas associadas a ela." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f3e1c048", + "metadata": {}, + "outputs": [], + "source": [ + "iam.list_attached_role_policies(\n", + " RoleName = role_name\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b646683f", + "metadata": {}, + "outputs": [], + "source": [ + "# desanexar as políticas da função IAM\n", + "iam.detach_role_policy(\n", + " RoleName = role_name,\n", + " PolicyArn = \"arn:aws:iam::aws:policy/service-role/AmazonPersonalizeFullAccess\"\n", + ")\n", + "iam.detach_role_policy(\n", + " RoleName = role_name,\n", + " PolicyArn = 'arn:aws:iam::aws:policy/AmazonS3FullAccess'\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "88ac5ea3", + "metadata": {}, + "source": [ + "Em seguida, é possível remover a função IAM." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "306e1bb4", + "metadata": {}, + "outputs": [], + "source": [ + "iam.delete_role(\n", + " RoleName = role_name\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "4fa0cf14", + "metadata": {}, + "source": [ + "## Remoção do bucket S3\n", + "Para excluir um bucket do S3 ele precisa estar vazio. A maneira mais fácil de excluir um bucket S3 é navegar até o console do S3, excluir os objetos no bucket e depois excluir próprio bucket S3." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ff15d740", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "availableInstances": [ + { + "_defaultOrder": 0, + "_isFastLaunch": true, + "category": "General purpose", + "gpuNum": 0, + "hideHardwareSpecs": false, + "memoryGiB": 4, + "name": "ml.t3.medium", + "vcpuNum": 2 + }, + { + "_defaultOrder": 1, + "_isFastLaunch": false, + "category": "General purpose", + "gpuNum": 0, + "hideHardwareSpecs": false, + "memoryGiB": 8, + "name": "ml.t3.large", + "vcpuNum": 2 + }, + { + "_defaultOrder": 2, + "_isFastLaunch": false, + "category": "General purpose", + "gpuNum": 0, + "hideHardwareSpecs": false, + "memoryGiB": 16, + "name": "ml.t3.xlarge", + "vcpuNum": 4 + }, + { + "_defaultOrder": 3, + "_isFastLaunch": false, + "category": "General purpose", + "gpuNum": 0, + "hideHardwareSpecs": false, + "memoryGiB": 32, + "name": "ml.t3.2xlarge", + "vcpuNum": 8 + }, + { + "_defaultOrder": 4, + "_isFastLaunch": true, + "category": "General purpose", + "gpuNum": 0, + "hideHardwareSpecs": false, + "memoryGiB": 8, + "name": "ml.m5.large", + "vcpuNum": 2 + }, + { + "_defaultOrder": 5, + "_isFastLaunch": false, + "category": "General purpose", + "gpuNum": 0, + "hideHardwareSpecs": false, + "memoryGiB": 16, + "name": "ml.m5.xlarge", + "vcpuNum": 4 + }, + { + "_defaultOrder": 6, + "_isFastLaunch": false, + "category": "General purpose", + "gpuNum": 0, + "hideHardwareSpecs": false, + "memoryGiB": 32, + "name": "ml.m5.2xlarge", + "vcpuNum": 8 + }, + { + "_defaultOrder": 7, + "_isFastLaunch": false, + "category": "General purpose", + "gpuNum": 0, + "hideHardwareSpecs": false, + "memoryGiB": 64, + "name": "ml.m5.4xlarge", + "vcpuNum": 16 + }, + { + "_defaultOrder": 8, + "_isFastLaunch": false, + "category": "General purpose", + "gpuNum": 0, + "hideHardwareSpecs": false, + "memoryGiB": 128, + "name": "ml.m5.8xlarge", + "vcpuNum": 32 + }, + { + "_defaultOrder": 9, + "_isFastLaunch": false, + "category": "General purpose", + "gpuNum": 0, + "hideHardwareSpecs": false, + "memoryGiB": 192, + "name": "ml.m5.12xlarge", + "vcpuNum": 48 + }, + { + "_defaultOrder": 10, + "_isFastLaunch": false, + "category": "General purpose", + "gpuNum": 0, + "hideHardwareSpecs": false, + "memoryGiB": 256, + "name": "ml.m5.16xlarge", + "vcpuNum": 64 + }, + { + "_defaultOrder": 11, + "_isFastLaunch": false, + "category": "General purpose", + "gpuNum": 0, + "hideHardwareSpecs": false, + "memoryGiB": 384, + "name": "ml.m5.24xlarge", + "vcpuNum": 96 + }, + { + "_defaultOrder": 12, + "_isFastLaunch": false, + "category": "General purpose", + "gpuNum": 0, + "hideHardwareSpecs": false, + "memoryGiB": 8, + "name": "ml.m5d.large", + "vcpuNum": 2 + }, + { + "_defaultOrder": 13, + "_isFastLaunch": false, + "category": "General purpose", + "gpuNum": 0, + "hideHardwareSpecs": false, + "memoryGiB": 16, + "name": "ml.m5d.xlarge", + "vcpuNum": 4 + }, + { + "_defaultOrder": 14, + "_isFastLaunch": false, + "category": "General purpose", + "gpuNum": 0, + "hideHardwareSpecs": false, + "memoryGiB": 32, + "name": "ml.m5d.2xlarge", + "vcpuNum": 8 + }, + { + "_defaultOrder": 15, + "_isFastLaunch": false, + "category": "General purpose", + "gpuNum": 0, + "hideHardwareSpecs": false, + "memoryGiB": 64, + "name": "ml.m5d.4xlarge", + "vcpuNum": 16 + }, + { + "_defaultOrder": 16, + "_isFastLaunch": false, + "category": "General purpose", + "gpuNum": 0, + "hideHardwareSpecs": false, + "memoryGiB": 128, + "name": "ml.m5d.8xlarge", + "vcpuNum": 32 + }, + { + "_defaultOrder": 17, + "_isFastLaunch": false, + "category": "General purpose", + "gpuNum": 0, + "hideHardwareSpecs": false, + "memoryGiB": 192, + "name": "ml.m5d.12xlarge", + "vcpuNum": 48 + }, + { + "_defaultOrder": 18, + "_isFastLaunch": false, + "category": "General purpose", + "gpuNum": 0, + "hideHardwareSpecs": false, + "memoryGiB": 256, + "name": "ml.m5d.16xlarge", + "vcpuNum": 64 + }, + { + "_defaultOrder": 19, + "_isFastLaunch": false, + "category": "General purpose", + "gpuNum": 0, + "hideHardwareSpecs": false, + "memoryGiB": 384, + "name": "ml.m5d.24xlarge", + "vcpuNum": 96 + }, + { + "_defaultOrder": 20, + "_isFastLaunch": false, + "category": "General purpose", + "gpuNum": 0, + "hideHardwareSpecs": true, + "memoryGiB": 0, + "name": "ml.geospatial.interactive", + "supportedImageNames": [ + "sagemaker-geospatial-v1-0" + ], + "vcpuNum": 0 + }, + { + "_defaultOrder": 21, + "_isFastLaunch": true, + "category": "Compute optimized", + "gpuNum": 0, + "hideHardwareSpecs": false, + "memoryGiB": 4, + "name": "ml.c5.large", + "vcpuNum": 2 + }, + { + "_defaultOrder": 22, + "_isFastLaunch": false, + "category": "Compute optimized", + "gpuNum": 0, + "hideHardwareSpecs": false, + "memoryGiB": 8, + "name": "ml.c5.xlarge", + "vcpuNum": 4 + }, + { + "_defaultOrder": 23, + "_isFastLaunch": false, + "category": "Compute optimized", + "gpuNum": 0, + "hideHardwareSpecs": false, + "memoryGiB": 16, + "name": "ml.c5.2xlarge", + "vcpuNum": 8 + }, + { + "_defaultOrder": 24, + "_isFastLaunch": false, + "category": "Compute optimized", + "gpuNum": 0, + "hideHardwareSpecs": false, + "memoryGiB": 32, + "name": "ml.c5.4xlarge", + "vcpuNum": 16 + }, + { + "_defaultOrder": 25, + "_isFastLaunch": false, + "category": "Compute optimized", + "gpuNum": 0, + "hideHardwareSpecs": false, + "memoryGiB": 72, + "name": "ml.c5.9xlarge", + "vcpuNum": 36 + }, + { + "_defaultOrder": 26, + "_isFastLaunch": false, + "category": "Compute optimized", + "gpuNum": 0, + "hideHardwareSpecs": false, + "memoryGiB": 96, + "name": "ml.c5.12xlarge", + "vcpuNum": 48 + }, + { + "_defaultOrder": 27, + "_isFastLaunch": false, + "category": "Compute optimized", + "gpuNum": 0, + "hideHardwareSpecs": false, + "memoryGiB": 144, + "name": "ml.c5.18xlarge", + "vcpuNum": 72 + }, + { + "_defaultOrder": 28, + "_isFastLaunch": false, + "category": "Compute optimized", + "gpuNum": 0, + "hideHardwareSpecs": false, + "memoryGiB": 192, + "name": "ml.c5.24xlarge", + "vcpuNum": 96 + }, + { + "_defaultOrder": 29, + "_isFastLaunch": true, + "category": "Accelerated computing", + "gpuNum": 1, + "hideHardwareSpecs": false, + "memoryGiB": 16, + "name": "ml.g4dn.xlarge", + "vcpuNum": 4 + }, + { + "_defaultOrder": 30, + "_isFastLaunch": false, + "category": "Accelerated computing", + "gpuNum": 1, + "hideHardwareSpecs": false, + "memoryGiB": 32, + "name": "ml.g4dn.2xlarge", + "vcpuNum": 8 + }, + { + "_defaultOrder": 31, + "_isFastLaunch": false, + "category": "Accelerated computing", + "gpuNum": 1, + "hideHardwareSpecs": false, + "memoryGiB": 64, + "name": "ml.g4dn.4xlarge", + "vcpuNum": 16 + }, + { + "_defaultOrder": 32, + "_isFastLaunch": false, + "category": "Accelerated computing", + "gpuNum": 1, + "hideHardwareSpecs": false, + "memoryGiB": 128, + "name": "ml.g4dn.8xlarge", + "vcpuNum": 32 + }, + { + "_defaultOrder": 33, + "_isFastLaunch": false, + "category": "Accelerated computing", + "gpuNum": 4, + "hideHardwareSpecs": false, + "memoryGiB": 192, + "name": "ml.g4dn.12xlarge", + "vcpuNum": 48 + }, + { + "_defaultOrder": 34, + "_isFastLaunch": false, + "category": "Accelerated computing", + "gpuNum": 1, + "hideHardwareSpecs": false, + "memoryGiB": 256, + "name": "ml.g4dn.16xlarge", + "vcpuNum": 64 + }, + { + "_defaultOrder": 35, + "_isFastLaunch": false, + "category": "Accelerated computing", + "gpuNum": 1, + "hideHardwareSpecs": false, + "memoryGiB": 61, + "name": "ml.p3.2xlarge", + "vcpuNum": 8 + }, + { + "_defaultOrder": 36, + "_isFastLaunch": false, + "category": "Accelerated computing", + "gpuNum": 4, + "hideHardwareSpecs": false, + "memoryGiB": 244, + "name": "ml.p3.8xlarge", + "vcpuNum": 32 + }, + { + "_defaultOrder": 37, + "_isFastLaunch": false, + "category": "Accelerated computing", + "gpuNum": 8, + "hideHardwareSpecs": false, + "memoryGiB": 488, + "name": "ml.p3.16xlarge", + "vcpuNum": 64 + }, + { + "_defaultOrder": 38, + "_isFastLaunch": false, + "category": "Accelerated computing", + "gpuNum": 8, + "hideHardwareSpecs": false, + "memoryGiB": 768, + "name": "ml.p3dn.24xlarge", + "vcpuNum": 96 + }, + { + "_defaultOrder": 39, + "_isFastLaunch": false, + "category": "Memory Optimized", + "gpuNum": 0, + "hideHardwareSpecs": false, + "memoryGiB": 16, + "name": "ml.r5.large", + "vcpuNum": 2 + }, + { + "_defaultOrder": 40, + "_isFastLaunch": false, + "category": "Memory Optimized", + "gpuNum": 0, + "hideHardwareSpecs": false, + "memoryGiB": 32, + "name": "ml.r5.xlarge", + "vcpuNum": 4 + }, + { + "_defaultOrder": 41, + "_isFastLaunch": false, + "category": "Memory Optimized", + "gpuNum": 0, + "hideHardwareSpecs": false, + "memoryGiB": 64, + "name": "ml.r5.2xlarge", + "vcpuNum": 8 + }, + { + "_defaultOrder": 42, + "_isFastLaunch": false, + "category": "Memory Optimized", + "gpuNum": 0, + "hideHardwareSpecs": false, + "memoryGiB": 128, + "name": "ml.r5.4xlarge", + "vcpuNum": 16 + }, + { + "_defaultOrder": 43, + "_isFastLaunch": false, + "category": "Memory Optimized", + "gpuNum": 0, + "hideHardwareSpecs": false, + "memoryGiB": 256, + "name": "ml.r5.8xlarge", + "vcpuNum": 32 + }, + { + "_defaultOrder": 44, + "_isFastLaunch": false, + "category": "Memory Optimized", + "gpuNum": 0, + "hideHardwareSpecs": false, + "memoryGiB": 384, + "name": "ml.r5.12xlarge", + "vcpuNum": 48 + }, + { + "_defaultOrder": 45, + "_isFastLaunch": false, + "category": "Memory Optimized", + "gpuNum": 0, + "hideHardwareSpecs": false, + "memoryGiB": 512, + "name": "ml.r5.16xlarge", + "vcpuNum": 64 + }, + { + "_defaultOrder": 46, + "_isFastLaunch": false, + "category": "Memory Optimized", + "gpuNum": 0, + "hideHardwareSpecs": false, + "memoryGiB": 768, + "name": "ml.r5.24xlarge", + "vcpuNum": 96 + }, + { + "_defaultOrder": 47, + "_isFastLaunch": false, + "category": "Accelerated computing", + "gpuNum": 1, + "hideHardwareSpecs": false, + "memoryGiB": 16, + "name": "ml.g5.xlarge", + "vcpuNum": 4 + }, + { + "_defaultOrder": 48, + "_isFastLaunch": false, + "category": "Accelerated computing", + "gpuNum": 1, + "hideHardwareSpecs": false, + "memoryGiB": 32, + "name": "ml.g5.2xlarge", + "vcpuNum": 8 + }, + { + "_defaultOrder": 49, + "_isFastLaunch": false, + "category": "Accelerated computing", + "gpuNum": 1, + "hideHardwareSpecs": false, + "memoryGiB": 64, + "name": "ml.g5.4xlarge", + "vcpuNum": 16 + }, + { + "_defaultOrder": 50, + "_isFastLaunch": false, + "category": "Accelerated computing", + "gpuNum": 1, + "hideHardwareSpecs": false, + "memoryGiB": 128, + "name": "ml.g5.8xlarge", + "vcpuNum": 32 + }, + { + "_defaultOrder": 51, + "_isFastLaunch": false, + "category": "Accelerated computing", + "gpuNum": 1, + "hideHardwareSpecs": false, + "memoryGiB": 256, + "name": "ml.g5.16xlarge", + "vcpuNum": 64 + }, + { + "_defaultOrder": 52, + "_isFastLaunch": false, + "category": "Accelerated computing", + "gpuNum": 4, + "hideHardwareSpecs": false, + "memoryGiB": 192, + "name": "ml.g5.12xlarge", + "vcpuNum": 48 + }, + { + "_defaultOrder": 53, + "_isFastLaunch": false, + "category": "Accelerated computing", + "gpuNum": 4, + "hideHardwareSpecs": false, + "memoryGiB": 384, + "name": "ml.g5.24xlarge", + "vcpuNum": 96 + }, + { + "_defaultOrder": 54, + "_isFastLaunch": false, + "category": "Accelerated computing", + "gpuNum": 8, + "hideHardwareSpecs": false, + "memoryGiB": 768, + "name": "ml.g5.48xlarge", + "vcpuNum": 192 + }, + { + "_defaultOrder": 55, + "_isFastLaunch": false, + "category": "Accelerated computing", + "gpuNum": 8, + "hideHardwareSpecs": false, + "memoryGiB": 1152, + "name": "ml.p4d.24xlarge", + "vcpuNum": 96 + }, + { + "_defaultOrder": 56, + "_isFastLaunch": false, + "category": "Accelerated computing", + "gpuNum": 8, + "hideHardwareSpecs": false, + "memoryGiB": 1152, + "name": "ml.p4de.24xlarge", + "vcpuNum": 96 + } + ], + "instance_type": "ml.t3.medium", + "kernelspec": { + "display_name": "Python 3 (Data Science 3.0)", + "language": "python", + "name": "python3__SAGEMAKER_INTERNAL__arn:aws:sagemaker:us-east-1:081325390199:image/sagemaker-data-science-310-v1" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.6" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} From 65f88352123df0e37a3db1b0b39fde0bf935e323 Mon Sep 17 00:00:00 2001 From: danv006 <48356782+danv006@users.noreply.github.com> Date: Wed, 25 Oct 2023 16:25:36 -0300 Subject: [PATCH 2/2] Adding translated image to Portuguese. This is part of blogpost translation to portuguese (PT-BR). --- .../images/promotions-overview-pt-br.png | Bin 0 -> 225558 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 next_steps/core_use_cases/filters/promotions/images/promotions-overview-pt-br.png diff --git a/next_steps/core_use_cases/filters/promotions/images/promotions-overview-pt-br.png b/next_steps/core_use_cases/filters/promotions/images/promotions-overview-pt-br.png new file mode 100644 index 0000000000000000000000000000000000000000..c7f6c1c36c20c8a308d8e8d99a300686a20baa88 GIT binary patch literal 225558 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 sYI0g3qfNBL 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

PJ77DZh|L;%UJcsQV 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

E+ayG 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