Wählen Sie Ihre Cookie-Einstellungen aus

Wir verwenden essentielle Cookies und ähnliche Tools, die für die Bereitstellung unserer Website und Services erforderlich sind. Wir verwenden Performance-Cookies, um anonyme Statistiken zu sammeln, damit wir verstehen können, wie Kunden unsere Website nutzen, und Verbesserungen vornehmen können. Essentielle Cookies können nicht deaktiviert werden, aber Sie können auf „Anpassen“ oder „Ablehnen“ klicken, um Performance-Cookies abzulehnen.

Wenn Sie damit einverstanden sind, verwenden AWS und zugelassene Drittanbieter auch Cookies, um nützliche Features der Website bereitzustellen, Ihre Präferenzen zu speichern und relevante Inhalte, einschließlich relevanter Werbung, anzuzeigen. Um alle nicht notwendigen Cookies zu akzeptieren oder abzulehnen, klicken Sie auf „Akzeptieren“ oder „Ablehnen“. Um detailliertere Entscheidungen zu treffen, klicken Sie auf „Anpassen“.

Erste Schritte (SDK for Java 2.x) - Amazon Personalize

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Erste Schritte (SDK for Java 2.x)

Dieses Tutorial zeigt Ihnen, wie Sie den Amazon Personalize Personalize-Workflow von Anfang bis Ende mit dem AWS SDK for Java 2.x abschließen.

Wenn Sie mit der Übung „Erste Schritte“ fertig sind, löschen Sie die von Ihnen erstellten Ressourcen, um unnötige Kosten zu vermeiden. Weitere Informationen finden Sie unter Anforderungen für das Löschen von Amazon Personalize Personalize-Ressourcen.

Weitere Beispiele finden Sie unter Schließen Sie das Amazon Personalize-Projekt ab.

Voraussetzungen

Für die Durchführung dieses Tutorials sind die folgenden Schritte erforderlich:

Tutorial

In den folgenden Schritten richten Sie Ihr Projekt für die Verwendung von Amazon Personalize-Paketen ein und erstellen Amazon Personalize SDK for Java 2.x-Clients. Anschließend importieren Sie Daten, erstellen und implementieren eine Lösungsversion mit einer Kampagne und erhalten Empfehlungen.

Nachdem Sie die Voraussetzungen erfüllt haben, fügen Sie Amazon Personalize Personalize-Abhängigkeiten zu Ihrer Datei pom.xml hinzu und importieren Amazon Personalize Personalize-Pakete.

  1. Fügen Sie Ihrer Datei pom.xml die folgenden Abhängigkeiten hinzu. Die neuesten Versionsnummern können sich vom Beispielcode unterscheiden.

    <dependency> <groupId>software.amazon.awssdk</groupId> <artifactId>personalize</artifactId> <version>2.16.83</version> </dependency> <dependency> <groupId>software.amazon.awssdk</groupId> <artifactId>personalizeruntime</artifactId> <version>2.16.83</version> </dependency> <dependency> <groupId>software.amazon.awssdk</groupId> <artifactId>personalizeevents</artifactId> <version>2.16.83</version> </dependency>
  2. Fügen Sie Ihrem Projekt die folgenden Importanweisungen hinzu.

    // import client packages import software.amazon.awssdk.services.personalize.PersonalizeClient; import software.amazon.awssdk.services.personalizeruntime.PersonalizeRuntimeClient; // Amazon Personalize exception package import software.amazon.awssdk.services.personalize.model.PersonalizeException; // schema packages import software.amazon.awssdk.services.personalize.model.CreateSchemaRequest; // dataset group packages import software.amazon.awssdk.services.personalize.model.CreateDatasetGroupRequest; import software.amazon.awssdk.services.personalize.model.DescribeDatasetGroupRequest; // dataset packages import software.amazon.awssdk.services.personalize.model.CreateDatasetRequest; // dataset import job packages import software.amazon.awssdk.services.personalize.model.CreateDatasetImportJobRequest; import software.amazon.awssdk.services.personalize.model.DataSource; import software.amazon.awssdk.services.personalize.model.DatasetImportJob; import software.amazon.awssdk.services.personalize.model.DescribeDatasetImportJobRequest; // solution packages import software.amazon.awssdk.services.personalize.model.CreateSolutionRequest; import software.amazon.awssdk.services.personalize.model.CreateSolutionResponse; // solution version packages import software.amazon.awssdk.services.personalize.model.DescribeSolutionRequest; import software.amazon.awssdk.services.personalize.model.CreateSolutionVersionRequest; import software.amazon.awssdk.services.personalize.model.CreateSolutionVersionResponse; import software.amazon.awssdk.services.personalize.model.DescribeSolutionVersionRequest; // campaign packages import software.amazon.awssdk.services.personalize.model.CreateCampaignRequest; import software.amazon.awssdk.services.personalize.model.CreateCampaignResponse; // get recommendations packages import software.amazon.awssdk.services.personalizeruntime.model.GetRecommendationsRequest; import software.amazon.awssdk.services.personalizeruntime.model.GetRecommendationsResponse; import software.amazon.awssdk.services.personalizeruntime.model.PredictedItem; // Java time utility package import java.time.Instant;

Nachdem Sie die Voraussetzungen erfüllt haben, fügen Sie Amazon Personalize Personalize-Abhängigkeiten zu Ihrer Datei pom.xml hinzu und importieren Amazon Personalize Personalize-Pakete.

  1. Fügen Sie Ihrer Datei pom.xml die folgenden Abhängigkeiten hinzu. Die neuesten Versionsnummern können sich vom Beispielcode unterscheiden.

    <dependency> <groupId>software.amazon.awssdk</groupId> <artifactId>personalize</artifactId> <version>2.16.83</version> </dependency> <dependency> <groupId>software.amazon.awssdk</groupId> <artifactId>personalizeruntime</artifactId> <version>2.16.83</version> </dependency> <dependency> <groupId>software.amazon.awssdk</groupId> <artifactId>personalizeevents</artifactId> <version>2.16.83</version> </dependency>
  2. Fügen Sie Ihrem Projekt die folgenden Importanweisungen hinzu.

    // import client packages import software.amazon.awssdk.services.personalize.PersonalizeClient; import software.amazon.awssdk.services.personalizeruntime.PersonalizeRuntimeClient; // Amazon Personalize exception package import software.amazon.awssdk.services.personalize.model.PersonalizeException; // schema packages import software.amazon.awssdk.services.personalize.model.CreateSchemaRequest; // dataset group packages import software.amazon.awssdk.services.personalize.model.CreateDatasetGroupRequest; import software.amazon.awssdk.services.personalize.model.DescribeDatasetGroupRequest; // dataset packages import software.amazon.awssdk.services.personalize.model.CreateDatasetRequest; // dataset import job packages import software.amazon.awssdk.services.personalize.model.CreateDatasetImportJobRequest; import software.amazon.awssdk.services.personalize.model.DataSource; import software.amazon.awssdk.services.personalize.model.DatasetImportJob; import software.amazon.awssdk.services.personalize.model.DescribeDatasetImportJobRequest; // solution packages import software.amazon.awssdk.services.personalize.model.CreateSolutionRequest; import software.amazon.awssdk.services.personalize.model.CreateSolutionResponse; // solution version packages import software.amazon.awssdk.services.personalize.model.DescribeSolutionRequest; import software.amazon.awssdk.services.personalize.model.CreateSolutionVersionRequest; import software.amazon.awssdk.services.personalize.model.CreateSolutionVersionResponse; import software.amazon.awssdk.services.personalize.model.DescribeSolutionVersionRequest; // campaign packages import software.amazon.awssdk.services.personalize.model.CreateCampaignRequest; import software.amazon.awssdk.services.personalize.model.CreateCampaignResponse; // get recommendations packages import software.amazon.awssdk.services.personalizeruntime.model.GetRecommendationsRequest; import software.amazon.awssdk.services.personalizeruntime.model.GetRecommendationsResponse; import software.amazon.awssdk.services.personalizeruntime.model.PredictedItem; // Java time utility package import java.time.Instant;

Nachdem Sie Amazon Personalize zu Ihrer Datei pom.xml hinzugefügt und die erforderlichen Pakete importiert haben, erstellen Sie die folgenden Amazon Personalize Personalize-Clients:

PersonalizeClient personalizeClient = PersonalizeClient.builder() .region(region) .build(); PersonalizeRuntimeClient personalizeRuntimeClient = PersonalizeRuntimeClient.builder() .region(region) .build();

Nachdem Sie Amazon Personalize zu Ihrer Datei pom.xml hinzugefügt und die erforderlichen Pakete importiert haben, erstellen Sie die folgenden Amazon Personalize Personalize-Clients:

PersonalizeClient personalizeClient = PersonalizeClient.builder() .region(region) .build(); PersonalizeRuntimeClient personalizeRuntimeClient = PersonalizeRuntimeClient.builder() .region(region) .build();

Nachdem Sie Ihre Amazon Personalize-Clients initialisiert haben, importieren Sie die historischen Daten, die Sie beim Abschluss des erstellt haben. Voraussetzungen für den Einstieg Gehen Sie wie folgt vor, um historische Daten in Amazon Personalize zu importieren:

  1. Speichern Sie das folgende Avro-Schema als JSON-Datei in Ihrem Arbeitsverzeichnis. Dieses Schema entspricht den Spalten in der CSV-Datei, die Sie beim Ausfüllen von erstellt haben. Voraussetzungen für den Einstieg

    { "type": "record", "name": "Interactions", "namespace": "com.amazonaws.personalize.schema", "fields": [ { "name": "USER_ID", "type": "string" }, { "name": "ITEM_ID", "type": "string" }, { "name": "TIMESTAMP", "type": "long" } ], "version": "1.0" }
  2. Verwenden Sie die folgende createSchema Methode, um ein Schema in Amazon Personalize zu erstellen. Übergeben Sie Folgendes als Parameter: einen Amazon Personalize Personalize-Service-Client, den Namen für Ihr Schema und den Dateipfad für die Schema-JSON-Datei, die Sie im vorherigen Schritt erstellt haben. Die Methode gibt den Amazon-Ressourcennamen (ARN) Ihres neuen Schemas zurück. Speichern Sie es für eine spätere Verwendung.

    public static String createSchema(PersonalizeClient personalizeClient, String schemaName, String filePath) { String schema = null; try { schema = new String(Files.readAllBytes(Paths.get(filePath))); } catch (IOException e) { System.out.println(e.getMessage()); } try { CreateSchemaRequest createSchemaRequest = CreateSchemaRequest.builder() .name(schemaName) .schema(schema) .build(); String schemaArn = personalizeClient.createSchema(createSchemaRequest).schemaArn(); System.out.println("Schema arn: " + schemaArn); return schemaArn; } catch (PersonalizeException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } return ""; }
  3. Erstellen Sie eine Dataset-Gruppe. Verwenden Sie die folgende createDatasetGroup Methode, um eine Datensatzgruppe zu erstellen. Übergeben Sie Folgendes als Parameter: einen Amazon Personalize Personalize-Service-Client und den Namen für die Datensatzgruppe. Die Methode gibt den ARN Ihrer neuen Datensatzgruppe zurück. Speichern Sie es für eine spätere Verwendung.

    public static String createDatasetGroup(PersonalizeClient personalizeClient, String datasetGroupName) { try { CreateDatasetGroupRequest createDatasetGroupRequest = CreateDatasetGroupRequest.builder() .name(datasetGroupName) .build(); return personalizeClient.createDatasetGroup(createDatasetGroupRequest).datasetGroupArn(); } catch (PersonalizeException e) { System.out.println(e.awsErrorDetails().errorMessage()); } return ""; }
  4. Erstellen Sie einen Datensatz mit Artikelinteraktionen. Verwenden Sie die folgende createDataset Methode, um einen Datensatz mit Artikelinteraktionen zu erstellen. Übergeben Sie Folgendes als Parameter: einen Amazon Personalize Personalize-Service-Client, den Namen für Ihren Datensatz, den ARN Ihres Schemas, den ARN Ihrer Datensatzgruppe und Interactions für den Datensatztyp. Die Methode gibt den ARN Ihres neuen Datensatzes zurück. Speichern Sie es für eine spätere Verwendung.

    public static String createDataset(PersonalizeClient personalizeClient, String datasetName, String datasetGroupArn, String datasetType, String schemaArn) { try { CreateDatasetRequest request = CreateDatasetRequest.builder() .name(datasetName) .datasetGroupArn(datasetGroupArn) .datasetType(datasetType) .schemaArn(schemaArn) .build(); String datasetArn = personalizeClient.createDataset(request) .datasetArn(); System.out.println("Dataset " + datasetName + " created."); return datasetArn; } catch (PersonalizeException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } return ""; }
  5. Importieren Sie Ihre Daten mit einem Job zum Importieren von Datensätzen. Verwenden Sie die folgende createPersonalizeDatasetImportJob Methode, um einen Datensatz-Importjob zu erstellen.

    Übergeben Sie Folgendes als Parameter: einen Amazon Personalize-Service-Client, einen Namen für den Job, den ARN Ihres Artikelinteraktionen-Datensatzes, den Amazon S3 S3-Bucket-Pfad (s3://bucket name/folder name/ratings.csv), in dem Sie die Trainingsdaten gespeichert haben, und den ARN Ihrer Servicerolle (Sie haben diese Rolle als Teil von erstelltVoraussetzungen für den Einstieg). Die Methode gibt den ARN Ihres Datensatz-Importjobs zurück. Speichern Sie ihn optional für die spätere Verwendung.

    public static String createPersonalizeDatasetImportJob(PersonalizeClient personalizeClient, String jobName, String datasetArn, String s3BucketPath, String roleArn) { long waitInMilliseconds = 60 * 1000; String status; String datasetImportJobArn; try { DataSource importDataSource = DataSource.builder() .dataLocation(s3BucketPath) .build(); CreateDatasetImportJobRequest createDatasetImportJobRequest = CreateDatasetImportJobRequest.builder() .datasetArn(datasetArn) .dataSource(importDataSource) .jobName(jobName) .roleArn(roleArn) .build(); datasetImportJobArn = personalizeClient.createDatasetImportJob(createDatasetImportJobRequest) .datasetImportJobArn(); DescribeDatasetImportJobRequest describeDatasetImportJobRequest = DescribeDatasetImportJobRequest.builder() .datasetImportJobArn(datasetImportJobArn) .build(); long maxTime = Instant.now().getEpochSecond() + 3 * 60 * 60; while (Instant.now().getEpochSecond() < maxTime) { DatasetImportJob datasetImportJob = personalizeClient .describeDatasetImportJob(describeDatasetImportJobRequest) .datasetImportJob(); status = datasetImportJob.status(); System.out.println("Dataset import job status: " + status); if (status.equals("ACTIVE") || status.equals("CREATE FAILED")) { break; } try { Thread.sleep(waitInMilliseconds); } catch (InterruptedException e) { System.out.println(e.getMessage()); } } return datasetImportJobArn; } catch (PersonalizeException e) { System.out.println(e.awsErrorDetails().errorMessage()); } return ""; }

Nachdem Sie Ihre Amazon Personalize-Clients initialisiert haben, importieren Sie die historischen Daten, die Sie beim Abschluss des erstellt haben. Voraussetzungen für den Einstieg Gehen Sie wie folgt vor, um historische Daten in Amazon Personalize zu importieren:

  1. Speichern Sie das folgende Avro-Schema als JSON-Datei in Ihrem Arbeitsverzeichnis. Dieses Schema entspricht den Spalten in der CSV-Datei, die Sie beim Ausfüllen von erstellt haben. Voraussetzungen für den Einstieg

    { "type": "record", "name": "Interactions", "namespace": "com.amazonaws.personalize.schema", "fields": [ { "name": "USER_ID", "type": "string" }, { "name": "ITEM_ID", "type": "string" }, { "name": "TIMESTAMP", "type": "long" } ], "version": "1.0" }
  2. Verwenden Sie die folgende createSchema Methode, um ein Schema in Amazon Personalize zu erstellen. Übergeben Sie Folgendes als Parameter: einen Amazon Personalize Personalize-Service-Client, den Namen für Ihr Schema und den Dateipfad für die Schema-JSON-Datei, die Sie im vorherigen Schritt erstellt haben. Die Methode gibt den Amazon-Ressourcennamen (ARN) Ihres neuen Schemas zurück. Speichern Sie es für eine spätere Verwendung.

    public static String createSchema(PersonalizeClient personalizeClient, String schemaName, String filePath) { String schema = null; try { schema = new String(Files.readAllBytes(Paths.get(filePath))); } catch (IOException e) { System.out.println(e.getMessage()); } try { CreateSchemaRequest createSchemaRequest = CreateSchemaRequest.builder() .name(schemaName) .schema(schema) .build(); String schemaArn = personalizeClient.createSchema(createSchemaRequest).schemaArn(); System.out.println("Schema arn: " + schemaArn); return schemaArn; } catch (PersonalizeException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } return ""; }
  3. Erstellen Sie eine Dataset-Gruppe. Verwenden Sie die folgende createDatasetGroup Methode, um eine Datensatzgruppe zu erstellen. Übergeben Sie Folgendes als Parameter: einen Amazon Personalize Personalize-Service-Client und den Namen für die Datensatzgruppe. Die Methode gibt den ARN Ihrer neuen Datensatzgruppe zurück. Speichern Sie es für eine spätere Verwendung.

    public static String createDatasetGroup(PersonalizeClient personalizeClient, String datasetGroupName) { try { CreateDatasetGroupRequest createDatasetGroupRequest = CreateDatasetGroupRequest.builder() .name(datasetGroupName) .build(); return personalizeClient.createDatasetGroup(createDatasetGroupRequest).datasetGroupArn(); } catch (PersonalizeException e) { System.out.println(e.awsErrorDetails().errorMessage()); } return ""; }
  4. Erstellen Sie einen Datensatz mit Artikelinteraktionen. Verwenden Sie die folgende createDataset Methode, um einen Datensatz mit Artikelinteraktionen zu erstellen. Übergeben Sie Folgendes als Parameter: einen Amazon Personalize Personalize-Service-Client, den Namen für Ihren Datensatz, den ARN Ihres Schemas, den ARN Ihrer Datensatzgruppe und Interactions für den Datensatztyp. Die Methode gibt den ARN Ihres neuen Datensatzes zurück. Speichern Sie es für eine spätere Verwendung.

    public static String createDataset(PersonalizeClient personalizeClient, String datasetName, String datasetGroupArn, String datasetType, String schemaArn) { try { CreateDatasetRequest request = CreateDatasetRequest.builder() .name(datasetName) .datasetGroupArn(datasetGroupArn) .datasetType(datasetType) .schemaArn(schemaArn) .build(); String datasetArn = personalizeClient.createDataset(request) .datasetArn(); System.out.println("Dataset " + datasetName + " created."); return datasetArn; } catch (PersonalizeException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } return ""; }
  5. Importieren Sie Ihre Daten mit einem Job zum Importieren von Datensätzen. Verwenden Sie die folgende createPersonalizeDatasetImportJob Methode, um einen Datensatz-Importjob zu erstellen.

    Übergeben Sie Folgendes als Parameter: einen Amazon Personalize-Service-Client, einen Namen für den Job, den ARN Ihres Artikelinteraktionen-Datensatzes, den Amazon S3 S3-Bucket-Pfad (s3://bucket name/folder name/ratings.csv), in dem Sie die Trainingsdaten gespeichert haben, und den ARN Ihrer Servicerolle (Sie haben diese Rolle als Teil von erstelltVoraussetzungen für den Einstieg). Die Methode gibt den ARN Ihres Datensatz-Importjobs zurück. Speichern Sie ihn optional für die spätere Verwendung.

    public static String createPersonalizeDatasetImportJob(PersonalizeClient personalizeClient, String jobName, String datasetArn, String s3BucketPath, String roleArn) { long waitInMilliseconds = 60 * 1000; String status; String datasetImportJobArn; try { DataSource importDataSource = DataSource.builder() .dataLocation(s3BucketPath) .build(); CreateDatasetImportJobRequest createDatasetImportJobRequest = CreateDatasetImportJobRequest.builder() .datasetArn(datasetArn) .dataSource(importDataSource) .jobName(jobName) .roleArn(roleArn) .build(); datasetImportJobArn = personalizeClient.createDatasetImportJob(createDatasetImportJobRequest) .datasetImportJobArn(); DescribeDatasetImportJobRequest describeDatasetImportJobRequest = DescribeDatasetImportJobRequest.builder() .datasetImportJobArn(datasetImportJobArn) .build(); long maxTime = Instant.now().getEpochSecond() + 3 * 60 * 60; while (Instant.now().getEpochSecond() < maxTime) { DatasetImportJob datasetImportJob = personalizeClient .describeDatasetImportJob(describeDatasetImportJobRequest) .datasetImportJob(); status = datasetImportJob.status(); System.out.println("Dataset import job status: " + status); if (status.equals("ACTIVE") || status.equals("CREATE FAILED")) { break; } try { Thread.sleep(waitInMilliseconds); } catch (InterruptedException e) { System.out.println(e.getMessage()); } } return datasetImportJobArn; } catch (PersonalizeException e) { System.out.println(e.awsErrorDetails().errorMessage()); } return ""; }

Nachdem Sie Ihre Daten importiert haben, erstellen Sie wie folgt eine Lösung und eine Lösungsversion. Die Lösung enthält die Konfigurationen zum Trainieren eines Modells, und eine Lösungsversion ist ein trainiertes Modell.

  1. Erstellen Sie eine neue Lösung mit der folgenden createPersonalizeSolution Methode. Übergeben Sie Folgendes als Parameter: einen Amazon Personalize Personalize-Service-Client, Ihre Datensatzgruppen Amazon Resource Name (ARN), einen Namen für die Lösung und den ARN für die User-Personalization-v 2 Rezepte (arn:aws:personalize:::recipe/aws-user-personalization-v2). Die Methode gibt den ARN Ihrer neuen Lösung zurück. Speichern Sie es für eine spätere Verwendung.

    public static String createPersonalizeSolution(PersonalizeClient personalizeClient, String datasetGroupArn, String solutionName, String recipeArn) { try { CreateSolutionRequest solutionRequest = CreateSolutionRequest.builder() .name(solutionName) .datasetGroupArn(datasetGroupArn) .recipeArn(recipeArn) .build(); CreateSolutionResponse solutionResponse = personalizeClient.createSolution(solutionRequest); return solutionResponse.solutionArn(); } catch (PersonalizeException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } return ""; }
  2. Erstellen Sie eine Lösungsversion mit der folgenden createPersonalizeSolutionVersion Methode. Übergeben Sie als Parameter den ARN der Lösung im vorherigen Schritt. Der folgende Code überprüft zunächst, ob Ihre Lösung bereit ist, und erstellt dann eine Lösungsversion. Während des Trainings verwendet der Code den DescribeSolutionVersion Vorgang, um den Status der Lösungsversion abzurufen. Wenn das Training abgeschlossen ist, gibt die Methode den ARN Ihrer neuen Lösungsversion zurück. Speichern Sie es für eine spätere Verwendung.

    public static String createPersonalizeSolutionVersion(PersonalizeClient personalizeClient, String solutionArn) { long maxTime = 0; long waitInMilliseconds = 30 * 1000; // 30 seconds String solutionStatus = ""; String solutionVersionStatus = ""; String solutionVersionArn = ""; try { DescribeSolutionRequest describeSolutionRequest = DescribeSolutionRequest.builder() .solutionArn(solutionArn) .build(); maxTime = Instant.now().getEpochSecond() + 3 * 60 * 60; // Wait until solution is active. while (Instant.now().getEpochSecond() < maxTime) { solutionStatus = personalizeClient.describeSolution(describeSolutionRequest).solution().status(); System.out.println("Solution status: " + solutionStatus); if (solutionStatus.equals("ACTIVE") || solutionStatus.equals("CREATE FAILED")) { break; } try { Thread.sleep(waitInMilliseconds); } catch (InterruptedException e) { System.out.println(e.getMessage()); } } if (solutionStatus.equals("ACTIVE")) { CreateSolutionVersionRequest createSolutionVersionRequest = CreateSolutionVersionRequest.builder() .solutionArn(solutionArn) .build(); CreateSolutionVersionResponse createSolutionVersionResponse = personalizeClient .createSolutionVersion(createSolutionVersionRequest); solutionVersionArn = createSolutionVersionResponse.solutionVersionArn(); System.out.println("Solution version ARN: " + solutionVersionArn); DescribeSolutionVersionRequest describeSolutionVersionRequest = DescribeSolutionVersionRequest.builder() .solutionVersionArn(solutionVersionArn) .build(); while (Instant.now().getEpochSecond() < maxTime) { solutionVersionStatus = personalizeClient.describeSolutionVersion(describeSolutionVersionRequest) .solutionVersion().status(); System.out.println("Solution version status: " + solutionVersionStatus); if (solutionVersionStatus.equals("ACTIVE") || solutionVersionStatus.equals("CREATE FAILED")) { break; } try { Thread.sleep(waitInMilliseconds); } catch (InterruptedException e) { System.out.println(e.getMessage()); } } return solutionVersionArn; } } catch (PersonalizeException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } return ""; }

Weitere Informationen finden Sie unter Manuelles Erstellen einer Lösungsversion. Wenn Sie eine Lösungsversion erstellen, können Sie deren Leistung bewerten, bevor Sie fortfahren. Weitere Informationen finden Sie unter Evaluierung einer Amazon Personalize Personalize-Lösungsversion mit Metriken.

Nachdem Sie Ihre Daten importiert haben, erstellen Sie wie folgt eine Lösung und eine Lösungsversion. Die Lösung enthält die Konfigurationen zum Trainieren eines Modells, und eine Lösungsversion ist ein trainiertes Modell.

  1. Erstellen Sie eine neue Lösung mit der folgenden createPersonalizeSolution Methode. Übergeben Sie Folgendes als Parameter: einen Amazon Personalize Personalize-Service-Client, Ihre Datensatzgruppen Amazon Resource Name (ARN), einen Namen für die Lösung und den ARN für die User-Personalization-v 2 Rezepte (arn:aws:personalize:::recipe/aws-user-personalization-v2). Die Methode gibt den ARN Ihrer neuen Lösung zurück. Speichern Sie es für eine spätere Verwendung.

    public static String createPersonalizeSolution(PersonalizeClient personalizeClient, String datasetGroupArn, String solutionName, String recipeArn) { try { CreateSolutionRequest solutionRequest = CreateSolutionRequest.builder() .name(solutionName) .datasetGroupArn(datasetGroupArn) .recipeArn(recipeArn) .build(); CreateSolutionResponse solutionResponse = personalizeClient.createSolution(solutionRequest); return solutionResponse.solutionArn(); } catch (PersonalizeException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } return ""; }
  2. Erstellen Sie eine Lösungsversion mit der folgenden createPersonalizeSolutionVersion Methode. Übergeben Sie als Parameter den ARN der Lösung im vorherigen Schritt. Der folgende Code überprüft zunächst, ob Ihre Lösung bereit ist, und erstellt dann eine Lösungsversion. Während des Trainings verwendet der Code den DescribeSolutionVersion Vorgang, um den Status der Lösungsversion abzurufen. Wenn das Training abgeschlossen ist, gibt die Methode den ARN Ihrer neuen Lösungsversion zurück. Speichern Sie es für eine spätere Verwendung.

    public static String createPersonalizeSolutionVersion(PersonalizeClient personalizeClient, String solutionArn) { long maxTime = 0; long waitInMilliseconds = 30 * 1000; // 30 seconds String solutionStatus = ""; String solutionVersionStatus = ""; String solutionVersionArn = ""; try { DescribeSolutionRequest describeSolutionRequest = DescribeSolutionRequest.builder() .solutionArn(solutionArn) .build(); maxTime = Instant.now().getEpochSecond() + 3 * 60 * 60; // Wait until solution is active. while (Instant.now().getEpochSecond() < maxTime) { solutionStatus = personalizeClient.describeSolution(describeSolutionRequest).solution().status(); System.out.println("Solution status: " + solutionStatus); if (solutionStatus.equals("ACTIVE") || solutionStatus.equals("CREATE FAILED")) { break; } try { Thread.sleep(waitInMilliseconds); } catch (InterruptedException e) { System.out.println(e.getMessage()); } } if (solutionStatus.equals("ACTIVE")) { CreateSolutionVersionRequest createSolutionVersionRequest = CreateSolutionVersionRequest.builder() .solutionArn(solutionArn) .build(); CreateSolutionVersionResponse createSolutionVersionResponse = personalizeClient .createSolutionVersion(createSolutionVersionRequest); solutionVersionArn = createSolutionVersionResponse.solutionVersionArn(); System.out.println("Solution version ARN: " + solutionVersionArn); DescribeSolutionVersionRequest describeSolutionVersionRequest = DescribeSolutionVersionRequest.builder() .solutionVersionArn(solutionVersionArn) .build(); while (Instant.now().getEpochSecond() < maxTime) { solutionVersionStatus = personalizeClient.describeSolutionVersion(describeSolutionVersionRequest) .solutionVersion().status(); System.out.println("Solution version status: " + solutionVersionStatus); if (solutionVersionStatus.equals("ACTIVE") || solutionVersionStatus.equals("CREATE FAILED")) { break; } try { Thread.sleep(waitInMilliseconds); } catch (InterruptedException e) { System.out.println(e.getMessage()); } } return solutionVersionArn; } } catch (PersonalizeException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } return ""; }

Weitere Informationen finden Sie unter Manuelles Erstellen einer Lösungsversion. Wenn Sie eine Lösungsversion erstellen, können Sie deren Leistung bewerten, bevor Sie fortfahren. Weitere Informationen finden Sie unter Evaluierung einer Amazon Personalize Personalize-Lösungsversion mit Metriken.

Nachdem Sie Ihre Lösungsversion trainiert und bewertet haben, stellen Sie sie mit einer Amazon Personalize Personalize-Kampagne bereit. Verwenden Sie die folgende createPersonalCampaign Methode, um eine Lösungsversion bereitzustellen. Übergeben Sie Folgendes als Parameter: einen Amazon Personalize Personalize-Service-Client, den Amazon-Ressourcennamen (ARN) der Lösungsversion, die Sie im vorherigen Schritt erstellt haben, und einen Namen für die Kampagne. Die Methode gibt den ARN Ihrer neuen Kampagne zurück. Speichern Sie es für eine spätere Verwendung.

public static String createPersonalCompaign(PersonalizeClient personalizeClient, String solutionVersionArn, String name) { try { CreateCampaignRequest createCampaignRequest = CreateCampaignRequest.builder() .minProvisionedTPS(1) .solutionVersionArn(solutionVersionArn) .name(name) .build(); CreateCampaignResponse campaignResponse = personalizeClient.createCampaign(createCampaignRequest); System.out.println("The campaign ARN is "+campaignResponse.campaignArn()); return campaignResponse.campaignArn(); } catch (PersonalizeException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } }

Weitere Informationen zu Amazon Personalize finden Sie unterBereitstellen einer Amazon Personalize Personalize-Lösungsversion mit einer Kampagne.

Nachdem Sie Ihre Lösungsversion trainiert und bewertet haben, stellen Sie sie mit einer Amazon Personalize Personalize-Kampagne bereit. Verwenden Sie die folgende createPersonalCampaign Methode, um eine Lösungsversion bereitzustellen. Übergeben Sie Folgendes als Parameter: einen Amazon Personalize Personalize-Service-Client, den Amazon-Ressourcennamen (ARN) der Lösungsversion, die Sie im vorherigen Schritt erstellt haben, und einen Namen für die Kampagne. Die Methode gibt den ARN Ihrer neuen Kampagne zurück. Speichern Sie es für eine spätere Verwendung.

public static String createPersonalCompaign(PersonalizeClient personalizeClient, String solutionVersionArn, String name) { try { CreateCampaignRequest createCampaignRequest = CreateCampaignRequest.builder() .minProvisionedTPS(1) .solutionVersionArn(solutionVersionArn) .name(name) .build(); CreateCampaignResponse campaignResponse = personalizeClient.createCampaign(createCampaignRequest); System.out.println("The campaign ARN is "+campaignResponse.campaignArn()); return campaignResponse.campaignArn(); } catch (PersonalizeException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } }

Weitere Informationen zu Amazon Personalize finden Sie unterBereitstellen einer Amazon Personalize Personalize-Lösungsversion mit einer Kampagne.

Nachdem Sie eine Kampagne erstellt haben, verwenden Sie sie, um Empfehlungen zu erhalten. Verwenden Sie die folgende getRecs Methode, um Empfehlungen für einen Benutzer zu erhalten. Übergeben Sie als Parameter einen Amazon Personalize Personalize-Runtime-Client, den Amazon-Ressourcennamen (ARN) der Kampagne, die Sie im vorherigen Schritt erstellt haben, und eine Benutzer-ID (z. B.123) aus den historischen Daten, die Sie importiert haben. Die Methode druckt die Liste der empfohlenen Artikel auf den Bildschirm.

public static void getRecs(PersonalizeRuntimeClient personalizeRuntimeClient, String campaignArn, String userId) { try { GetRecommendationsRequest recommendationsRequest = GetRecommendationsRequest.builder() .campaignArn(campaignArn) .numResults(20) .userId(userId) .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 (AwsServiceException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } }

Nachdem Sie eine Kampagne erstellt haben, verwenden Sie sie, um Empfehlungen zu erhalten. Verwenden Sie die folgende getRecs Methode, um Empfehlungen für einen Benutzer zu erhalten. Übergeben Sie als Parameter einen Amazon Personalize Personalize-Runtime-Client, den Amazon-Ressourcennamen (ARN) der Kampagne, die Sie im vorherigen Schritt erstellt haben, und eine Benutzer-ID (z. B.123) aus den historischen Daten, die Sie importiert haben. Die Methode druckt die Liste der empfohlenen Artikel auf den Bildschirm.

public static void getRecs(PersonalizeRuntimeClient personalizeRuntimeClient, String campaignArn, String userId) { try { GetRecommendationsRequest recommendationsRequest = GetRecommendationsRequest.builder() .campaignArn(campaignArn) .numResults(20) .userId(userId) .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 (AwsServiceException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } }

Schließen Sie das Amazon Personalize-Projekt ab

Ein all-in-one Projekt, das Ihnen zeigt, wie Sie den Amazon Personalize Personalize-Workflow mit dem SDK for Java 2.x abschließen, finden Sie in der Amazon-Personalize-Java-App unter. GitHub Dieses Projekt umfasst das Training mehrerer Lösungsversionen mit unterschiedlichen Rezepten und die Aufzeichnung von Ereignissen im Zusammenhang mit dem Vorgang. PutEvents

Weitere Beispiele finden Sie im Code, den Sie im Ordner „Personalize“ des AWS SDK-Beispiel-Repositorys finden.

DatenschutzNutzungsbedingungen für die WebsiteCookie-Einstellungen
© 2025, Amazon Web Services, Inc. oder Tochtergesellschaften. Alle Rechte vorbehalten.