Memulai (AWS SDK for Python (Boto3)) - Amazon Kendra

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Memulai (AWS SDK for Python (Boto3))

Program berikut adalah contoh penggunaan Amazon Kendra dalam program Python. Program melakukan tugas berikut:

  1. Membuat indeks baru menggunakan CreateIndexoperasi.

  2. Menunggu pembuatan indeks selesai. Ini menggunakan DescribeIndexoperasi untuk memantau status indeks.

  3. Setelah indeks aktif, ia menciptakan sumber data menggunakan CreateDataSourceoperasi.

  4. Menunggu pembuatan sumber data selesai. Ini menggunakan DescribeDataSourceoperasi untuk memantau status sumber data.

  5. Ketika sumber data aktif, itu menyinkronkan indeks dengan konten sumber data menggunakan StartDataSourceSyncJoboperasi.

import boto3 from botocore.exceptions import ClientError import pprint import time kendra = boto3.client("kendra") print("Create an index.") # Provide a name for the index index_name = "python-getting-started-index" # Provide an optional decription for the index description = "Getting started index" # Provide the IAM role ARN required for indexes index_role_arn = "arn:aws:iam::${accountId}:role/KendraRoleForGettingStartedIndex" try: index_response = kendra.create_index( Description = description, Name = index_name, RoleArn = index_role_arn ) pprint.pprint(index_response) index_id = index_response["Id"] print("Wait for Amazon Kendra to create the index.") while True: # Get the details of the index, such as the status index_description = kendra.describe_index( Id = index_id ) # When status is not CREATING quit. status = index_description["Status"] print(" Creating index. Status: "+status) time.sleep(60) if status != "CREATING": break print("Create an S3 data source.") # Provide a name for the data source data_source_name = "python-getting-started-data-source" # Provide an optional description for the data source data_source_description = "Getting started data source." # Provide the IAM role ARN required for data sources data_source_role_arn = "arn:aws:iam::${accountId}:role/KendraRoleForGettingStartedDataSource" # Provide the data source connection information S3_bucket_name = "S3-bucket-name" data_source_type = "S3" # Configure the data source configuration = {"S3Configuration": { "BucketName": S3_bucket_name } } """ If you connect to your data source using a template schema, configure the template schema configuration = {"TemplateConfiguration": { "Template": {JSON schema} } } """ data_source_response = kendra.create_data_source( Name = data_source_name, Description = data_source_name, RoleArn = data_source_role_arn, Type = data_source_type, Configuration = configuration, IndexId = index_id ) pprint.pprint(data_source_response) data_source_id = data_source_response["Id"] print("Wait for Amazon Kendra to create the data source.") while True: # Get the details of the data source, such as the status data_source_description = kendra.describe_data_source( Id = data_source_id, IndexId = index_id ) # If status is not CREATING, then quit status = data_source_description["Status"] print(" Creating data source. Status: "+status) time.sleep(60) if status != "CREATING": break print("Synchronize the data source.") sync_response = kendra.start_data_source_sync_job( Id = data_source_id, IndexId = index_id ) pprint.pprint(sync_response) print("Wait for the data source to sync with the index.") while True: jobs = kendra.list_data_source_sync_jobs( Id = data_source_id, IndexId = index_id ) # For this example, there should be one job status = jobs["History"][0]["Status"] print(" Syncing data source. Status: "+status) if status != "SYNCING": break time.sleep(60) except ClientError as e: print("%s" % e) print("Program ends.")