

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Filtraggio dei consigli in tempo reale
<a name="filter-real-time"></a>

Puoi filtrare i consigli in tempo reale con la console Amazon Personalize, AWS Command Line Interface (AWS CLI) o il. AWS SDKs

 Quando ricevi consigli personalizzati su articoli o articoli simili, puoi specificare una promozione nella tua richiesta. Una *promozione* utilizza un filtro per definire regole aziendali aggiuntive da applicare a un sottoinsieme configurabile di articoli consigliati. Per ulteriori informazioni, consulta [Promuovere gli articoli con consigli in tempo reale](promoting-items.md). 

**Topics**
+ [Filtraggio dei consigli in tempo reale (console)](#filter-rt-console)
+ [Filtraggio dei consigli in tempo reale ()AWS CLI](#filter-rt-cli)
+ [Filtraggio dei consigli in tempo reale ()AWS SDKs](#filter-rt-sdk)

## Filtraggio dei consigli in tempo reale (console)
<a name="filter-rt-console"></a>

Per filtrare i consigli in tempo reale utilizzando la console, crea un filtro e applicalo a una richiesta di raccomandazione. 

**Nota**  
Per filtrare i consigli utilizzando un filtro con parametri e una campagna distribuita prima del 10 novembre 2020, devi ridistribuire la campagna utilizzando l'[UpdateCampaign](API_UpdateCampaign.md)operazione o creare una nuova campagna.

### Creazione di un filtro (console)
<a name="creating-filter-console"></a>

 Per creare un filtro nella console, scegli il gruppo di set di dati che contiene la campagna o il programma di raccomandazione che desideri utilizzare per ottenere consigli filtrati. Fornisci quindi un nome di filtro e un'espressione di filtro.

**Per creare un filtro (console)**

1. Apri la console Amazon Personalize da [https://console.aws.amazon.com/personalize/casa](https://console.aws.amazon.com/personalize/home) e accedi al tuo account. 

1. Scegli il gruppo di set di dati che contiene la campagna o il programma di raccomandazione che desideri utilizzare per ottenere consigli filtrati.

1. Nel riquadro di navigazione, scegli **Filtri**, quindi scegli **Crea** nuovo filtro. Viene visualizzata la pagina **Crea filtro**.  
![Rappresenta la pagina di creazione del filtro con il nome del filtro e i campi di espressione.](http://docs.aws.amazon.com/it_it/personalize/latest/dg/images/create-filter-page.png)

1. Per **Nome filtro**, inserisci un nome per il filtro. Sceglierai il filtro con questo nome quando lo applichi a una richiesta di raccomandazione.

1. Per **Espressione**, scegli **Crea espressione** o **Aggiungi espressione manualmente** e crea o inserisci l'espressione:
   + Per utilizzare il generatore di espressioni, scegli **Crea espressione**. Il generatore di espressioni fornisce struttura, campi e linee guida per la creazione di espressioni di filtro formattate correttamente. Per ulteriori informazioni, consulta [Utilizzo del generatore di espressioni di filtro](#using-filter-expression-builder).
   +  Per inserire la tua espressione, scegli **Aggiungi espressione manualmente**. Per ulteriori informazioni, consulta [Filtrare gli elementi di espressione](creating-filter-expressions.md#filter-expression-elements). 

1. Scegli **Fine**. La pagina di panoramica del filtro mostra l'Amazon Resource Name (ARN), lo stato e l'espressione completa del filtro. Per eliminare il filtro, scegli **Elimina**. Per informazioni su come trovare ed eliminare i filtri dopo aver lasciato la pagina di panoramica, consulta[Eliminazione di un filtro (console)](#delete-filter-console).  
![Rappresenta la pagina dei dettagli del filtro con l'ARN e l'espressione del filtro.](http://docs.aws.amazon.com/it_it/personalize/latest/dg/images/filter-details-page.png)

### Applicazione di un filtro (console)
<a name="apply-filter-console"></a>

 Per applicare un filtro, in **Test recommended (per consigliatori**) o **Test campaign results** (per campagne personalizzate), scegli il filtro e inserisci i valori dei parametri di filtro. Quindi ottieni consigli per un utente. 

**Importante**  
Per le espressioni di filtro che utilizzano un `INCLUDE` elemento, è necessario fornire valori per tutti i parametri definiti nell'espressione. Per i filtri con espressioni che utilizzano un `EXCLUDE` elemento, è possibile omettere il`filter-values`. In questo caso, Amazon Personalize non utilizza quella parte dell'espressione per filtrare i consigli.

**Per applicare un filtro (console)**

1. Apri la console Amazon Personalize da [https://console.aws.amazon.com/personalize/casa](https://console.aws.amazon.com/personalize/home) e accedi al tuo account. 

1. Scegli il gruppo di set di dati che contiene la campagna o il programma di raccomandazione che desideri utilizzare per ottenere consigli filtrati.

1. A seconda del tipo di gruppo di set di dati o del tipo di risorsa, esegui una delle seguenti operazioni:

   1. **Per un gruppo di set di dati di dominio, nel riquadro di navigazione scegli Consigliatori.**

   1. **Per un gruppo di set di dati personalizzato o risorse personalizzate, nel riquadro di navigazione scegli **Risorse personalizzate**, quindi Campagne.**

1. Nella pagina **Consiglieri** o **Campagne**, scegli il programma di raccomandazione o la campagna di destinazione.

1. Per fare un confronto, inizia a ricevere consigli senza applicare un filtro. In **Test recommended/****Test campaign results**, inserisci l'ID di un utente per il quale desideri ricevere consigli o l'ID dell'elemento per gli articoli correlati e scegli **Ottieni consigli**. Viene visualizzata una tabella contenente i consigli principali.  
![Mostra i risultati dei consigli senza applicare un filtro.](http://docs.aws.amazon.com/it_it/personalize/latest/dg/images/Recommendations_no-filter.PNG)

1. Dal menu **Nome filtro**, scegli il filtro che hai creato. Se il filtro ha dei parametri segnaposto, vengono visualizzati i campi associati a ciascun parametro.

1. Se utilizzi un filtro con parametri segnaposto, per ogni parametro inserisci il valore per impostare i criteri di filtro. Per utilizzare più valori per un parametro, separa ogni valore con una virgola.

1. Utilizzando lo `Item ID` stesso `User ID` metodo o quello del passaggio precedente, scegli **Ottieni consigli**. Viene visualizzata la tabella delle raccomandazioni.  
![Mostra i risultati dei consigli con un filtro applicato.](http://docs.aws.amazon.com/it_it/personalize/latest/dg/images/Recommendations_filter.png)

   Ad esempio, se l'utente ha già acquistato un articolo consigliato, il filtro lo rimuove dall'elenco dei consigli. In questo esempio, gli articoli 2657, 2985 sono stati sostituiti dagli articoli più adatti che l'utente non ha acquistato (articoli 2641 e 1573).

### Utilizzo del generatore di espressioni di filtro
<a name="using-filter-expression-builder"></a>

Il **generatore di espressioni** nella pagina **Crea filtro** fornisce struttura, campi e linee guida per la creazione di filtri formattati correttamente.

![Descrive i campi del generatore di espressioni nella pagina di creazione del filtro.](http://docs.aws.amazon.com/it_it/personalize/latest/dg/images/expression-builder-empty.png)


Per creare un'espressione di filtro:
+ Usa i campi **Tipo**, **Azione**, **Proprietà**, **Operatore** e **Valore** per creare un'espressione. 

  Per il **Valore**, inserisci un valore fisso oppure, per impostare i criteri di filtro quando ricevi consigli, inserisci *$* \+ un nome di parametro. Ad esempio, `$GENRES`. Quando ricevi consigli, fornirai il valore o i valori in base ai quali filtrare. In questo esempio, devi fornire un genere o un elenco di generi quando ricevi consigli.

  Separa più valori non parametrici con una virgola. Non è possibile aggiungere parametri separati da virgole a un filtro.
**Nota**  
Dopo aver scelto una **proprietà** (in `dataset.field` formato), il valore della **proprietà** per tutte le righe successive concatenate da `AND` o `OR` condizioni deve utilizzare lo stesso. `dataset`
+  Usa i pulsanti **\+** e **X** per aggiungere o eliminare una riga dall'espressione. Non puoi eliminare la prima riga. 
+  Per le nuove righe, utilizzate gli `AND` `OR` operatori`IF`, o del menu **AND** per creare una catena di condizioni. 

  Per `IF` le condizioni:
  + Ogni espressione può contenere solo un `IF` elemento. Se rimuovi una condizione IF, il generatore di espressioni rimuove tutte `AND` le condizioni successive.
  + È possibile utilizzare `IF` le condizioni solo per le espressioni che filtrano in base a. `CurrentUser`
+  Scegli il pulsante **Aggiungi espressione** per aggiungere un'espressione di filtro aggiuntiva per un filtraggio più preciso. Ogni espressione viene prima valutata indipendentemente e il risultato è un'unione dei due risultati. 
**Nota**  
Per creare un filtro che utilizzi sia i set di dati di interazione Item che Item o i set di dati di interazioni Action e Action, è *necessario* utilizzare più espressioni.

#### Esempio di generatore di espressioni
<a name="expression-builder-example"></a>

L'esempio seguente mostra come creare un filtro che escluda gli elementi con un genere specificato quando ricevi consigli (nota il parametro placeholder $GENRES). Il filtro esclude anche gli elementi con un maggiore `DOWNLOAD_COUNT` di`200`, ma solo se l'età dell'utente corrente è maggiore di. `17`

![Mostra come utilizzare il generatore di espressioni per creare un'espressione di filtro di esempio.](http://docs.aws.amazon.com/it_it/personalize/latest/dg/images/create-filter-expression-builder.png)


### Eliminazione di un filtro (console)
<a name="delete-filter-console"></a>

L'eliminazione di un filtro rimuove il filtro dall'elenco dei filtri per un gruppo di set di dati.

**Importante**  
Non è possibile eliminare un filtro mentre è in corso un processo di inferenza in batch.

**Per eliminare un filtro (console)**

1. Apri la console Amazon Personalize da [https://console.aws.amazon.com/personalize/casa](https://console.aws.amazon.com/personalize/home) e accedi al tuo account. 

1. Dall'elenco dei **gruppi di set** di dati, scegli il gruppo di set di dati che contiene il filtro che desideri eliminare. 

1. **Nel riquadro di navigazione, scegli Filtri.**

1. Dall'elenco dei filtri, scegli il filtro che desideri eliminare e scegli **Visualizza dettagli**. Viene visualizzata la pagina dei dettagli del filtro.

1. Scegli **Elimina** e conferma l'eliminazione nella finestra di dialogo di conferma. 

## Filtraggio dei consigli in tempo reale ()AWS CLI
<a name="filter-rt-cli"></a>

Per filtrare i consigli utilizzando il AWS CLI, è necessario creare un filtro e quindi applicarlo specificando l'ARN del filtro in [GetRecommendations](API_RS_GetRecommendations.md) una [GetPersonalizedRanking](API_RS_GetPersonalizedRanking.md) richiesta or.

**Importante**  
Per filtrare i consigli utilizzando un filtro con parametri e una campagna distribuita prima del 10 novembre 2020, devi ridistribuire la campagna utilizzando la [UpdateCampaign](API_UpdateCampaign.md) chiamata o creare una nuova campagna.

### Creazione di un filtro ()AWS CLI
<a name="creating-filter-cli"></a>

Utilizzate la seguente `create-filter` operazione per creare un filtro e specificare l'espressione del filtro. 

Sostituisci `Filter name` con il nome del filtro e poi `Dataset group ARN` con l'Amazon Resource Name (ARN) del gruppo di set di dati. Sostituisci l'esempio `filter-expression` con la tua espressione di filtro. 

```
aws personalize create-filter \
  --name {{Filter name}} \
  --dataset-group-arn {{dataset group arn}} \
  --filter-expression "{{EXCLUDE ItemID WHERE Items.CATEGORY IN (\"$CATEGORY\")}}"
```

 In caso di successo, viene visualizzato il filtro ARN. Registralo per un uso successivo. Per verificare che il filtro sia attivo, utilizzare l'[DescribeFilter](API_DescribeFilter.md)operazione prima di utilizzare il filtro. 

 Per ulteriori informazioni sull'API, consulta [CreateFilter](API_CreateFilter.md). Per ulteriori informazioni sulle espressioni di filtro, inclusi esempi, vedere[Filtra, struttura ed elementi delle espressioni.](creating-filter-expressions.md). 

### Applicare un filtro (AWS CLI)
<a name="applying-filter-cli"></a>

Quando si utilizzano le `get-personalized-ranking` operazioni `get-action-recommendations` o`get-recommendations`, si applica un filtro passando i valori del filtro `filter-arn` e gli eventuali valori del filtro come parametri. 

Di seguito è riportato un esempio dell'`get-recommendations`operazione. Sostituiscilo `Campaign ARN` con l'Amazon Resource Name (ARN) della tua campagna `User ID` con l'ID dell'utente per cui ricevi consigli e `Filter ARN` con l'ARN del tuo filtro. Se ricevi consigli da un consulente anziché da una campagna, utilizza `recommender-arn` invece di `--campaign-arn` e fornisci l'ARN per il segnalatore.

Se l'espressione ha dei parametri, includi l'oggetto. `filter-values` Per ogni parametro dell'espressione di filtro, fornisci il nome del parametro (con distinzione tra maiuscole e minuscole) e i valori. Ad esempio, se l'espressione di filtro ha un `$GENRE` parametro, fornite *«GENRE»* come chiave e uno o più generi, ad esempio`"Comedy"`, come valore. Separa più valori con una virgola. Ad esempio, `"\"comedy\",\"drama\",\"horror"\"`. 

**Importante**  
Per le espressioni di filtro che utilizzano un `INCLUDE` elemento per includere elementi, è necessario fornire valori per tutti i parametri definiti nell'espressione. Per i filtri con espressioni che utilizzano un `EXCLUDE` elemento per escludere elementi, è possibile omettere il`filter-values`. In questo caso, Amazon Personalize non utilizza quella parte dell'espressione per filtrare i consigli.

```
aws personalize-runtime get-recommendations \
  --campaign-arn {{Campaign ARN}} \
  --user-id {{User ID}} \
  --filter-arn {{Filter ARN}} \
  --filter-values '{
      "{{Parameter name}}": "\"{{value}}\"",
      "{{Parameter name}}": "\"{{value1}}\",\"{{value2}}\",\"{{value3}}\""
    }'
```

### Eliminazione di un filtro ()AWS CLI
<a name="delete-filter-cli"></a>

 Utilizzate la seguente `delete-filter` operazione per eliminare un filtro. Sostituire `filter ARN` con l'ARN del filtro. 

```
aws personalize delete-filter --filter-arn {{Filter ARN}}
```

## Filtraggio dei consigli in tempo reale ()AWS SDKs
<a name="filter-rt-sdk"></a>

Per filtrare i consigli utilizzando il AWS SDKs, è necessario creare un filtro e quindi applicarlo specificando l'ARN del filtro in [GetRecommendations](API_RS_GetRecommendations.md) una [GetPersonalizedRanking](API_RS_GetPersonalizedRanking.md) richiesta or.

**Importante**  
Per filtrare i consigli utilizzando un filtro con parametri e una campagna distribuita prima del 10 novembre 2020, devi ridistribuire la campagna utilizzando la [UpdateCampaign](API_UpdateCampaign.md) chiamata o creare una nuova campagna.

### Creazione di un filtro ()AWS SDKs
<a name="creating-filter-sdk"></a>

 Crea un nuovo filtro con l'[CreateFilter](API_CreateFilter.md)operazione. Il codice seguente mostra come creare un filtro. Specificate il nome del filtro, Amazon Resource Name (ARN) del gruppo di set di dati, e fornite l'espressione del filtro. 

------
#### [ SDK for Python (Boto3) ]

```
import boto3
 
personalize = boto3.client('personalize')
 
response = personalize.create_filter(
    name = '{{Filter Name}}',
    datasetGroupArn = '{{Dataset Group ARN}}',
    filterExpression = '{{EXCLUDE ItemID WHERE Items.CATEGORY IN ($CATEGORY)}}'
) 
filter_arn = response["filterArn"]
print("Filter ARN: " + filter_arn)
```

------
#### [ SDK for Java 2.x ]

```
public static String createFilter(PersonalizeClient personalizeClient,
                                 String filterName,
                                 String datasetGroupArn,
                                 String filterExpression) {
    try {
        CreateFilterRequest request = CreateFilterRequest.builder()
                .name(filterName)
                .datasetGroupArn(datasetGroupArn)
                .filterExpression(filterExpression)
                .build();

        return personalizeClient.createFilter(request).filterArn();
    }
    catch(PersonalizeException e) {
        System.err.println(e.awsErrorDetails().errorMessage());
        System.exit(1);
    }
    return "";
}
```

------
#### [ SDK for JavaScript v3 ]

```
// Get service clients module and commands using ES6 syntax.
import { CreateFilterCommand } from "@aws-sdk/client-personalize";
import { personalizeClient } from "./libs/personalizeClients.js";
// Or, create the client here.
// const personalizeClient = new PersonalizeClient({ region: "REGION"});

// Set the filter's parameters.
export const createFilterParam = {
  datasetGroupArn: "DATASET_GROUP_ARN" /* required */,
  name: "NAME" /* required */,
  filterExpression: "FILTER_EXPRESSION" /*required */,
};

export const run = async () => {
  try {
    const response = await personalizeClient.send(
      new CreateFilterCommand(createFilterParam),
    );
    console.log("Success", response);
    return response; // For unit tests.
  } catch (err) {
    console.log("Error", err);
  }
};
run();
```

------

Registra l'ARN del filtro per un uso successivo. Per verificare che il filtro sia attivo, utilizzare l'[DescribeFilter](API_DescribeFilter.md)operazione prima di utilizzare il filtro. Per ulteriori informazioni sull'API, consulta [CreateFilter](API_CreateFilter.md). Per ulteriori informazioni sulle espressioni di filtro, inclusi esempi, vedere[Filtra, struttura ed elementi delle espressioni.](creating-filter-expressions.md).

### Applicare un filtro (AWS SDKs)
<a name="applying-filter-sdk"></a>

Quando utilizzate le GetPersonalizedRanking operazioni GetRecommendations, o GetActionRecommendations, applicate un filtro passando un valore del filtro `filterArn` e qualsiasi valore del filtro come parametri.

Il codice seguente mostra come ottenere consigli sugli articoli filtrati di Amazon Personalize per un utente. Specificate l'ID dell'utente per cui desiderate ricevere consigli, l'Amazon Resource Name (ARN) della campagna e l'ARN del filtro. Se ricevi consigli da un consulente anziché da una campagna, utilizza `recommenderArn` invece di `campaignArn` e fornisci l'ARN per il segnalatore. 

Infatti`filterValues`, per ogni parametro opzionale nell'espressione del filtro, fornisci il nome del parametro (con distinzione tra maiuscole e minuscole) e il valore o i valori. Ad esempio, se l'espressione di filtro ha un `$GENRES` parametro, fornite *«GENRES»* come chiave e uno o più generi, ad esempio`"\"Comedy"\"`, come valore. Per valori multipli, separa ogni valore con una virgola. Ad esempio, `"\"comedy\",\"drama\",\"horror\""`. 

**Importante**  
Per le espressioni di filtro che utilizzano un `INCLUDE` elemento per includere elementi, è necessario fornire valori per tutti i parametri definiti nell'espressione. Per i filtri con espressioni che utilizzano un `EXCLUDE` elemento per escludere elementi, è possibile omettere il`filter-values`. In questo caso, Amazon Personalize non utilizza quella parte dell'espressione per filtrare i consigli. 

------
#### [ SDK for Python (Boto3) ]

```
import boto3

personalize_runtime = boto3.client("personalize-runtime")

response = personalize_runtime.get_recommendations(
    campaignArn = "{{Campaign ARN}}",
    userId = "{{User ID}}",
    filterArn = "{{Filter ARN}}",
    filterValues = {
      "{{Parameter name}}": "\"{{value1}}\"",
      "{{Parameter name}}": "\"{{value1}}\",\"{{value2}}\",\"{{value3}}\""
      ....
    }
)
```

------
#### [ SDK for Java 2.x ]

L'esempio seguente utilizza due parametri, uno con due valori e uno con un valore. A seconda dell'espressione del filtro, modificate il codice per aggiungere o rimuovere i campi ParameterName e ParameterValue.

```
public static void getFilteredRecs(PersonalizeRuntimeClient personalizeRuntimeClient,
                                   String campaignArn,
                                   String userId,
                                   String filterArn,
                                   String parameter1Name,
                                   String parameter1Value1,
                                   String parameter1Value2,
                                   String parameter2Name,
                                   String parameter2Value){

    try {

        Map<String, String> filterValues = new HashMap<>();

        filterValues.put(parameter1Name, String.format("\"%1$s\",\"%2$s\"",
                parameter1Value1, parameter1Value2));
        filterValues.put(parameter2Name, String.format("\"%1$s\"",
                parameter2Value));

        GetRecommendationsRequest recommendationsRequest = GetRecommendationsRequest.builder()
                .campaignArn(campaignArn)
                .numResults(20)
                .userId(userId)
                .filterArn(filterArn)
                .filterValues(filterValues)
                .build();

        GetRecommendationsResponse recommendationsResponse = personalizeRuntimeClient.getRecommendations(recommendationsRequest);
        List<PredictedItem> items = recommendationsResponse.itemList();

        for (PredictedItem item: items) {
            System.out.println("Item Id is : "+item.itemId());
            System.out.println("Item score is : "+item.score());
        }
    } catch (PersonalizeRuntimeException e) {
        System.err.println(e.awsErrorDetails().errorMessage());
        System.exit(1);
    }
}
```

------
#### [ SDK for JavaScript v3 ]

```
// Get service clients module and commands using ES6 syntax.
import { GetRecommendationsCommand } from "@aws-sdk/client-personalize-runtime";
import { personalizeRuntimeClient } from "./libs/personalizeClients.js";
// Or, create the client here:
// const personalizeRuntimeClient = new PersonalizeRuntimeClient({ region: "REGION"});

// Set recommendation request parameters.
export const getRecommendationsParam = {
  campaignArn: "CAMPAIGN_ARN" /* required */,
  userId: "USER_ID" /* required */,
  numResults: 15 /* optional */,
  filterArn: "FILTER_ARN" /* required to filter recommendations */,
  filterValues: {
    PROPERTY:
      '"VALUE"' /* Only required if your filter has a placeholder parameter */,
  },
};

export const run = async () => {
  try {
    const response = await personalizeRuntimeClient.send(
      new GetRecommendationsCommand(getRecommendationsParam),
    );
    console.log("Success!", response);
    return response; // For unit tests.
  } catch (err) {
    console.log("Error", err);
  }
};
run();
```

------

### Eliminazione di un filtro (AWS Python SDK)
<a name="delete-filter-sdk"></a>

 Utilizzate il seguente `delete_filter` metodo per eliminare un filtro. Sostituire `filter ARN` con l'ARN del filtro. 

```
import boto3
personalize = boto3.client("personalize")

response = personalize.delete_filter(
  filterArn = "{{filter ARN}}"
)
```