Jalankan contoh kode alur Amazon Bedrock Prompt - Amazon Bedrock

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

Jalankan contoh kode alur Amazon Bedrock Prompt

catatan

Alur Amazon Bedrock Prompt sedang dalam pratinjau dan dapat berubah sewaktu-waktu.

Contoh kode berikut mengasumsikan bahwa Anda telah memenuhi prasyarat berikut:

  1. Siapkan peran untuk memiliki izin untuk tindakan Amazon Bedrock. Jika belum, lihatMemulai dengan Amazon Bedrock.

  2. Siapkan kredensyal Anda untuk menggunakan file. AWS API Jika belum, lihatMemulai dengan AWS API.

  3. Buat peran layanan untuk melakukan tindakan terkait aliran cepat atas nama Anda. Jika belum, lihatBuat peran layanan untuk alur Amazon Bedrock Prompt di Amazon Bedrock.

Untuk mencoba beberapa contoh kode untuk alur Amazon Bedrock Prompt, pilih tab yang sesuai dengan metode pilihan Anda dan ikuti langkah-langkahnya:

Python
  1. Buat alur prompt menggunakan CreateFlowpermintaan (lihat tautan untuk format permintaan dan respons serta detail bidang) dengan titik akhir waktu pembuatan Agen untuk Amazon Bedrock dengan node berikut:

    • Sebuah simpul masukan.

    • Node prompt dengan inline yang ditentukan prompt yang membuat daftar putar musik menggunakan dua variabel (genredannumber).

    • Sebuah node output yang mengembalikan penyelesaian model.

    Jalankan cuplikan kode berikut untuk memuat AWS SDK for Python (Boto3), membuat klien Amazon Bedrock Agents, dan buat alur prompt dengan node (ganti executionRoleArn bidang dengan peran layanan yang Anda buat untuk aliran prompt): ARN

    # Import Python SDK and create client import boto3 client = boto3.client(service_name='bedrock-agent') # Replace with the service role that you created. For more information, see https://docs.aws.amazon.com/bedrock/latest/userguide/flows-permissions.html FLOWS_SERVICE_ROLE = "arn:aws:iam::123456789012:role/MyPromptFlowsRole" # Define each node # The input node validates that the content of the InvokeFlow request is a JSON object. input_node = { "type": "Input", "name": "FlowInput", "outputs": [ { "name": "document", "type": "Object" } ] } # This prompt node defines an inline prompt that creates a music playlist using two variables. # 1. {{genre}} - The genre of music to create a playlist for # 2. {{number}} - The number of songs to include in the playlist # It validates that the input is a JSON object that minimally contains the fields "genre" and "number", which it will map to the prompt variables. # The output must be named "modelCompletion" and be of the type "String". prompt_node = { "type": "Prompt", "name": "MakePlaylist", "configuration": { "prompt": { "sourceConfiguration": { "inline": { "modelId": "amazon.titan-text-express-v1", "templateType": "TEXT", "inferenceConfiguration": { "text": { "temperature": 0.8 } }, "templateConfiguration": { "text": { "text": "Make me a {{genre}} playlist consisting of the following number of songs: {{number}}." } } } } } }, "inputs": [ { "name": "genre", "type": "String", "expression": "$.data.genre" }, { "name": "number", "type": "Number", "expression": "$.data.number" } ], "outputs": [ { "name": "modelCompletion", "type": "String" } ] } # The output node validates that the output from the last node is a string and returns it as is. The name must be "document". output_node = { "type": "Output", "name": "FlowOutput", "inputs": [ { "name": "document", "type": "String", "expression": "$.data" } ] } # Create connections between the nodes connections = [] # First, create connections between the output of the flow input node and each input of the prompt node for input in prompt_node["inputs"]: connections.append( { "name": "_".join([input_node["name"], prompt_node["name"], input["name"]]), "source": input_node["name"], "target": prompt_node["name"], "type": "Data", "configuration": { "data": { "sourceOutput": input_node["outputs"][0]["name"], "targetInput": input["name"] } } } ) # Then, create a connection between the output of the prompt node and the input of the flow output node connections.append( { "name": "_".join([prompt_node["name"], output_node["name"]]), "source": prompt_node["name"], "target": output_node["name"], "type": "Data", "configuration": { "data": { "sourceOutput": prompt_node["outputs"][0]["name"], "targetInput": output_node["inputs"][0]["name"] } } } ) # Create the flow from the nodes and connections response = client.create_flow( name="FlowCreatePlaylist", description="A flow that creates a playlist given a genre and number of songs to include in the playlist.", executionRoleArn=FLOWS_SERVICE_ROLE, definition={ "nodes": [input_node, prompt_node, output_node], "connections": connections } ) flow_id = response.get("id")
  2. Buat daftar alur prompt di akun Anda, termasuk yang baru saja Anda buat, dengan menjalankan cuplikan kode berikut untuk membuat ListFlowspermintaan (lihat tautan untuk format permintaan dan respons serta detail bidang) dengan titik akhir waktu pembuatan Agen untuk Amazon Bedrock:

    client.list_flows()
  3. Dapatkan informasi tentang alur prompt yang baru saja Anda buat dengan menjalankan cuplikan kode berikut untuk membuat GetFlowpermintaan (lihat tautan untuk format permintaan dan respons serta detail bidang) dengan titik akhir waktu pembuatan Agen untuk Amazon Bedrock:

    client.get_flow(flowIdentifier=flow_id)
  4. Siapkan alur prompt Anda sehingga perubahan terbaru dari draf kerja diterapkan dan sehingga siap untuk versi. Jalankan cuplikan kode berikut untuk membuat PrepareFlowpermintaan (lihat tautan untuk format permintaan dan respons serta detail bidang) dengan titik akhir waktu pembuatan Agen untuk Amazon Bedrock:

    client.prepare_flow(flowIdentifier=flow_id)
  5. Versi draf kerja alur prompt Anda untuk membuat snapshot statis dari alur prompt Anda dan kemudian mengambil informasi tentangnya dengan tindakan berikut:

    1. Buat versi dengan menjalankan cuplikan kode berikut untuk membuat CreateFlowVersionpermintaan (lihat tautan untuk format permintaan dan respons serta detail bidang) dengan titik akhir waktu pembuatan Agen untuk Amazon Bedrock:

      response = client.create_flow_version(flowIdentifier=flow_id) flow_version = response.get("version")
    2. Buat daftar semua versi alur prompt Anda dengan menjalankan cuplikan kode berikut untuk membuat ListFlowVersionspermintaan (lihat tautan untuk format permintaan dan respons serta detail bidang) dengan titik akhir waktu pembuatan Agen untuk Amazon Bedrock:

      client.list_flow_versions(flowIdentifier=flow_id)
    3. Dapatkan informasi tentang versi dengan menjalankan cuplikan kode berikut untuk membuat GetFlowVersionpermintaan (lihat tautan untuk format permintaan dan respons serta detail bidang) dengan titik akhir waktu pembuatan Agen untuk Amazon Bedrock:

      client.get_flow_version(flowIdentifier=flow_id, flowVersion=flow_version)
  6. Buat alias untuk menunjuk ke versi alur prompt yang Anda buat lalu ambil informasi tentangnya dengan tindakan berikut:

    1. Buat alias dan arahkan ke versi yang baru saja Anda buat dengan menjalankan cuplikan kode berikut untuk membuat CreateFlowAliaspermintaan (lihat tautan untuk format permintaan dan respons serta detail bidang) dengan titik akhir waktu pembuatan Agen untuk Amazon Bedrock:

      response = client.create_flow_alias( flowIdentifier="FLOW123456", name="latest", description="Alias pointing to the latest version of the flow.", routingConfiguration=[ { "flowVersion": flow_version } ] ) flow_alias_id = response.get("id")
    2. Buat daftar semua alias alur prompt Anda dengan menjalankan cuplikan kode berikut untuk membuat ListFlowAliasspermintaan (lihat tautan untuk format permintaan dan respons serta detail bidang) dengan titik akhir waktu pembuatan Agen untuk Amazon Bedrock:

      client.list_flow_aliases(flowIdentifier=flow_id)
    3. Dapatkan informasi tentang alias yang baru saja Anda buat dengan menjalankan cuplikan kode berikut untuk membuat GetFlowAliaspermintaan (lihat tautan untuk format permintaan dan respons serta detail bidang) dengan titik akhir waktu pembuatan Agen untuk Amazon Bedrock:

      client.get_flow_alias(flowIdentifier=flow_id, aliasIdentifier=flow_alias_id)
  7. Jalankan cuplikan kode berikut untuk membuat klien Amazon Bedrock Agents Runtime dan menjalankan alur. Permintaan mengisi variabel dalam prompt dalam alur prompt Anda dan mengembalikan respons dari model untuk membuat InvokeFlowpermintaan (lihat tautan untuk format permintaan dan respons serta detail bidang) dengan titik akhir waktu proses Agen untuk Amazon Bedrock:

    client_runtime = boto3.client('bedrock-agent-runtime') response = client_runtime.invoke_flow( flowIdentifier=flow_id, flowAliasIdentifier=flow_alias_id, inputs=[ { "content": { "document": { "genre": "pop", "number": 3 } }, "nodeName": "FlowInput", "nodeOutputName": "document" } ] ) result = {} for event in response.get("responseStream"): result.update(event) if result['flowCompletionEvent']['completionReason'] == 'SUCCESS': print("Prompt flow invocation was successful! The output of the prompt flow is as follows:\n") print(result['flowOutputEvent']['content']['document']) else: print("The prompt flow invocation completed because of the following reason:", result['flowCompletionEvent']['completionReason'])

    Respons harus mengembalikan daftar putar musik pop dengan tiga lagu.

  8. Hapus alias, versi, dan alur prompt yang Anda buat dengan tindakan berikut:

    1. Hapus alias dengan menjalankan cuplikan kode berikut untuk membuat DeleteFlowAliaspermintaan (lihat tautan untuk format permintaan dan respons serta detail bidang) dengan titik akhir waktu pembuatan Agen untuk Amazon Bedrock:

      client.delete_flow_alias(flowIdentifier=flow_id, aliasIdentifier=flow_alias_id)
    2. Hapus versi dengan menjalankan cuplikan kode berikut untuk membuat DeleteFlowVersionpermintaan (lihat tautan untuk format permintaan dan respons serta detail bidang) dengan titik akhir waktu pembuatan Agen untuk Amazon Bedrock:

      client.delete_flow_version(flowIdentifier=flow_id, flowVersion=flow_version)
    3. Hapus alur dengan menjalankan cuplikan kode berikut untuk membuat DeleteFlowpermintaan (lihat tautan untuk format permintaan dan respons serta detail bidang) dengan titik akhir waktu pembuatan Agen untuk Amazon Bedrock:

      client.delete_flow(flowIdentifier=flow_id)