Mengembangkan aplikasi layanan Azure AI dengan Key Vault

Pelajari cara mengembangkan aplikasi layanan Azure AI dengan aman menggunakan Azure Key Vault.

Key Vault mengurangi risiko rahasia mungkin bocor secara tidak sengaja, karena Anda menghindari penyimpanan informasi keamanan di aplikasi Anda.

Prasyarat

Catatan

Tinjau dokumentasi dan artikel mulai cepat untuk layanan Azure AI yang Anda gunakan untuk mendapatkan pemahaman tentang:

  • Informasi masuk dan informasi lain yang Anda perlukan untuk mengirim panggilan API.
  • Paket dan kode yang Anda perlukan untuk menjalankan aplikasi Anda.

Mendapatkan kredensial Anda dari sumber daya layanan Azure AI Anda

Sebelum menambahkan informasi kredensial ke brankas kunci Azure, Anda perlu mengambilnya dari sumber daya layanan Azure AI Anda. Misalnya, jika layanan Anda memerlukan kunci dan titik akhir, Anda dapat menemukannya dengan langkah-langkah berikut:

  1. Buka sumber daya Anda di portal Microsoft Azure.

  2. Dari menu yang dapat diciutkan di sebelah kiri, pilih Kunci dan Titik Akhir.

    A screenshot showing the key and endpoint page in the Azure portal.

Beberapa layanan Azure AI memerlukan informasi yang berbeda untuk mengautentikasi panggilan API, seperti kunci dan wilayah. Pastikan untuk mengambil informasi ini sebelum melanjutkan.

Menambahkan info masuk ke brankas kunci Anda

Agar aplikasi Anda mengambil dan menggunakan info masuk Anda untuk mengautentikasi panggilan API, Anda harus menambahkan info masuk ke rahasia brankas kunci.

Ulangi langkah-langkah ini guna menghasilkan rahasia untuk setiap mandat sumber daya yang diperlukan. Misalnya, kunci dan titik akhir. Nama rahasia ini akan digunakan nanti untuk mengautentikasi aplikasi Anda.

  1. Buka tab atau jendela baru di browser. Navigasikan ke brankas kunci Anda di portal Azure.

  2. Dari menu yang dapat diciutkan di sebelah kiri, pilih Objek>Rahasia.

  3. Pilih Buat/impor.

    A screenshot showing the key vault key page in the Azure portal.

  4. Pada layar Buat rahasia, masukkan nilai berikut:

    Nama Nilai
    Opsi pengunggahan Manual
    Nama Nama rahasia untuk kunci atau titik akhir Anda. Contoh: "CognitiveServicesKey" atau "CognitiveServicesEndpoint"
    Value Kunci sumber daya atau titik akhir layanan Azure AI Anda.

    Nantinya, aplikasi Anda akan menggunakan "Nama" rahasia untuk mengakses "Nilai" dengan aman.

  5. Biarkan nilai lainnya sesuai default. Pilih Buat.

    Tip

    Pastikan untuk mengingat nama yang Anda tetapkan untuk rahasia karena akan digunakan nanti di aplikasi Anda.

Sekarang Anda telah memiliki rahasia bernama untuk informasi sumber daya Anda.

Membuat variabel lingkungan untuk nama brankas kunci Anda

Sebaiknya buat variabel lingkungan untuk nama brankas kunci Azure Anda. Aplikasi Anda akan membaca variabel lingkungan ini pada runtime bahasa umum untuk mengambil informasi kunci dan titik akhir Anda.

Untuk mengatur variabel lingkungan, gunakan salah satu perintah berikut. KEY_VAULT_NAME dengan nama variabel lingkungan, dan ganti Your-Key-Vault-Name dengan nama brankas kunci Anda, yang akan disimpan di variabel lingkungan.

Buat dan tetapkan variabel lingkungan yang bertahan, dengan nilai.

setx KEY_VAULT_NAME "Your-Key-Vault-Name"

Dalam instans baru Command Prompt, baca variabel lingkungan.

echo %KEY_VAULT_NAME%

Mengautentikasi ke Azure menggunakan Visual Studio

Pengembang yang menggunakan Visual Studio 2017 atau yang lebih baru dapat mengautentikasi akun Microsoft Entra melalui Visual Studio. Hal ini memungkinkan Anda mengakses rahasia di brankas kunci Anda dengan masuk ke langganan Azure Anda dari dalam IDE.

Untuk mengautentikasi di Visual Studio, pilih Alat dari menu navigasi atas, lalu pilih Opsi. Buka opsi Autentikasi Layanan Azure untuk masuk dengan nama pengguna dan kata sandi Anda.

Mengautentikasi menggunakan baris perintah

Sebelum dapat memberikan akses ke brankas kunci, Anda harus mengautentikasi dengan nama pengguna dan kata sandi Microsoft Entra Anda.

Untuk mengautentikasi dengan Azure CLI, jalankan perintah az login.

az login

Pada sistem dengan browser web default, Azure CLI akan meluncurkan browser untuk mengautentikasi. Untuk sistem tanpa browser web bawaan, perintah az login akan menggunakan alur autentikasi kode perangkat. Pengguna juga dapat memaksa Azure CLI untuk menggunakan alur kode perangkat alih-alih meluncurkan browser dengan menentukan argumen --use-device-code.

Jika Anda memiliki beberapa langganan, pastikan untuk memilih langganan Azure yang berisi brankas kunci Anda.

Memberikan akses ke brankas kunci Anda

Buat kebijakan akses untuk brankas kunci, yang akan memberikan izin rahasia ke akun pengguna Anda.

Untuk mengatur kebijakan akses, jalankan perintah az keyvault set-policy. Ganti Your-Key-Vault-Name dengan nama brankas kunci Anda. Ganti user@domain.com dengan nama pengguna Microsoft Entra Anda.

az keyvault set-policy --name Your-Key-Vault-Name --upn user@domain.com --secret-permissions delete get list set purge

Membuat aplikasi C# baru

Menggunakan Ide Visual Studio, buat aplikasi konsol .NET Core baru. Ini akan membuat proyek "Halo Dunia" dengan satu file sumber C#: program.cs.

Instal pustaka klien berikut dengan mengklik kanan solusi di Penjelajah Solusi, lalu memilih Kelola Paket NuGet. Di manajer paket yang terbuka, pilih Telusuri dan cari pustaka berikut, lalu pilih Instal untuk setiap pustaka:

  • Azure.Security.KeyVault.Secrets
  • Azure.Identity

Mengimpor kode contoh

Salin kode contoh berikut ke file program.cs Anda. Ganti Your-Key-Secret-Name dan Your-Endpoint-Secret-Name dengan nama rahasia yang Anda tetapkan di brankas kunci Anda.

using System;
using System.Threading.Tasks;
using Azure;
using Azure.Identity;
using Azure.Security.KeyVault.Secrets;
using System.Net;

namespace key_vault_console_app
{
    class Program
    {
        static async Task Main(string[] args)
        {
            //Name of your key vault
            var keyVaultName = Environment.GetEnvironmentVariable("KEY_VAULT_NAME");

            //variables for retrieving the key and endpoint from your key vault.
            //Set these variables to the names you created for your secrets
            const string keySecretName = "Your-Key-Secret-Name";
            const string endpointSecretName = "Your-Endpoint-Secret-Name";

            //Endpoint for accessing your key vault
            var kvUri = $"https://{keyVaultName}.vault.azure.net";

            var keyVaultClient = new SecretClient(new Uri(kvUri), new DefaultAzureCredential());

            Console.WriteLine($"Retrieving your secrets from {keyVaultName}.");

            //Key and endpoint secrets retrieved from your key vault
            var keySecret = await keyVaultClient.GetSecretAsync(keySecretName);
            var endpointSecret = await keyVaultClient.GetSecretAsync(endpointSecretName);
            Console.WriteLine($"Your key secret value is: {keySecret.Value.Value}");
            Console.WriteLine($"Your endpoint secret value is: {endpointSecret.Value.Value}");
            Console.WriteLine("Secrets retrieved successfully");

        }
    }
}

Jalankan aplikasi

Jalankan aplikasi dengan memilih tombol Debug di bagian atas studio Visual. Rahasia titik akhir dan kunci Anda akan diambil dari brankas kunci Anda.

Mengirim panggilan layanan uji Bahasa (opsional)

Jika Anda menggunakan sumber daya multi-layanan atau sumber daya Bahasa, Anda dapat memperbarui aplikasi Anda dengan mengikuti langkah-langkah berikut untuk mengirim contoh panggilan Pengenalan Entitas Karakter dengan mengambil kunci dan titik akhir dari brankas kunci Anda.

  1. Instal pustaka Azure.AI.TextAnalytics dengan mengklik kanan solusi di Penjelajah Solusi dan memilih Kelola Paket NuGet. Di manajer paket yang terbuka, pilih Telusuri dan cari pustaka berikut, lalu pilih Instal untuk setiap pustaka:

  2. Tambahkan direktif berikut ke bagian atas file program.cs Anda.

    using Azure.AI.TextAnalytics;
    
  3. Tambahkan sampel kode berikut ke aplikasi Anda.

    // Example method for extracting named entities from text 
    private static void EntityRecognitionExample(string keySecret, string endpointSecret)
    {
        //String to be sent for Named Entity Recognition
        var exampleString = "I had a wonderful trip to Seattle last week.";
    
        AzureKeyCredential azureKeyCredential = new AzureKeyCredential(keySecret);
        Uri endpoint = new Uri(endpointSecret);
        var languageServiceClient = new TextAnalyticsClient(endpoint, azureKeyCredential);
    
        Console.WriteLine($"Sending a Named Entity Recognition (NER) request");
        var response = languageServiceClient.RecognizeEntities(exampleString);
        Console.WriteLine("Named Entities:");
        foreach (var entity in response.Value)
        {
            Console.WriteLine($"\tText: {entity.Text},\tCategory: {entity.Category},\tSub-Category: {entity.SubCategory}");
            Console.WriteLine($"\t\tScore: {entity.ConfidenceScore:F2},\tLength: {entity.Length},\tOffset: {entity.Offset}\n");
        }
    }
    
  4. Tambahkan kode berikut untuk memanggil EntityRecognitionExample() dari metode utama Anda, dengan nilai kunci dan titik akhir Anda.

    EntityRecognitionExample(keySecret.Value.Value, endpointSecret.Value.Value);
    
  5. Jalankan aplikasi lagi.

Mengautentikasi aplikasi Anda

Sebelum dapat memberikan akses ke brankas kunci, Anda harus mengautentikasi dengan nama pengguna dan kata sandi Microsoft Entra Anda.

Untuk mengautentikasi dengan Azure CLI, jalankan perintah az login.

az login

Pada sistem dengan browser web default, Azure CLI akan meluncurkan browser untuk mengautentikasi. Untuk sistem tanpa browser web bawaan, perintah az login akan menggunakan alur autentikasi kode perangkat. Pengguna juga dapat memaksa Azure CLI untuk menggunakan alur kode perangkat alih-alih meluncurkan browser dengan menentukan argumen --use-device-code.

Jika Anda memiliki beberapa langganan, pastikan untuk memilih langganan Azure yang berisi brankas kunci Anda.

Memberikan akses ke brankas kunci Anda

Buat kebijakan akses untuk brankas kunci, yang akan memberikan izin rahasia ke akun pengguna Anda.

Untuk mengatur kebijakan akses, jalankan perintah az keyvault set-policy. Ganti Your-Key-Vault-Name dengan nama brankas kunci Anda. Ganti user@domain.com dengan nama pengguna Microsoft Entra Anda.

az keyvault set-policy --name Your-Key-Vault-Name --upn user@domain.com --secret-permissions delete get list set purge

Membuat aplikasi Python

Buat folder baru bernama keyVaultExample. Kemudian gunakan penyunting kode pilihan Anda untuk membuat file bernama program.py di dalam folder yang baru dibuat.

Menginstal paket layanan Bahasa dan Key Vault

  1. Di terminal atau prompt perintah, navigasikan ke folder proyek Anda dan instal pustaka identitas Microsoft Entra:

    pip install azure-identity
    
  2. Menginstal pustaka rahasia Key Vault:

    pip install azure-keyvault-secrets
    

Mengimpor kode contoh

Tambahkan sampel kode berikut ke file bernama program.py. Ganti Your-Key-Secret-Name dan Your-Endpoint-Secret-Name dengan nama rahasia yang Anda tetapkan di brankas kunci Anda.

import os
from azure.keyvault.secrets import SecretClient
from azure.identity import DefaultAzureCredential
from azure.core.credentials import AzureKeyCredential

keyVaultName = os.environ["KEY_VAULT_NAME"]

# Set these variables to the names you created for your secrets
keySecretName = "Your-Key-Secret-Name"
endpointSecretName = "Your-Endpoint-Secret-Name"

# URI for accessing key vault
KVUri = f"https://{keyVaultName}.vault.azure.net"

# Instantiate the client and retrieve secrets
credential = DefaultAzureCredential()
kv_client = SecretClient(vault_url=KVUri, credential=credential)

print(f"Retrieving your secrets from {keyVaultName}.")

retrieved_key = kv_client.get_secret(keySecretName).value
retrieved_endpoint = kv_client.get_secret(endpointSecretName).value

print(f"Your secret key value is {retrieved_key}.");
print(f"Your secret endpoint value is {retrieved_endpoint}.");

Jalankan aplikasi

Gunakan perintah berikut untuk menjalankan aplikasi. Rahasia titik akhir dan kunci Anda akan diambil dari brankas kunci Anda.

python ./program.py

Mengirim panggilan layanan uji Bahasa (opsional)

Jika Anda menggunakan sumber daya multi-layanan atau sumber daya Bahasa, Anda dapat memperbarui aplikasi Anda dengan mengikuti langkah-langkah berikut untuk mengirim contoh panggilan Pengenalan Entitas Karakter dengan mengambil kunci dan titik akhir dari brankas kunci Anda.

  1. Instal pustaka layanan Bahasa:

    pip install azure-ai-textanalytics==5.1.0
    
  2. Tambahkan kode berikut ke aplikasi Anda

    from azure.ai.textanalytics import TextAnalyticsClient
    # Authenticate the key vault secrets client using your key and endpoint 
    azure_key_credential = AzureKeyCredential(retrieved_key)
    # Now you can use key vault credentials with the Language service
    language_service_client = TextAnalyticsClient(
        endpoint=retrieved_endpoint, 
        credential=azure_key_credential)
    
    # Example of recognizing entities from text
    
    print("Sending NER request")
    
    try:
        documents = ["I had a wonderful trip to Seattle last week."]
        result = language_service_client.recognize_entities(documents = documents)[0]
        print("Named Entities:\n")
        for entity in result.entities:
            print("\tText: \t", entity.text, "\tCategory: \t", entity.category, "\tSubCategory: \t", entity.subcategory,
                    "\n\tConfidence Score: \t", round(entity.confidence_score, 2), "\tLength: \t", entity.length, "\tOffset: \t", entity.offset, "\n")
    
    except Exception as err:
        print("Encountered exception. {}".format(err))
    
  3. Jalankan aplikasi lagi.

Mengautentikasi aplikasi Anda

Sebelum dapat memberikan akses ke brankas kunci, Anda harus mengautentikasi dengan nama pengguna dan kata sandi Microsoft Entra Anda.

Untuk mengautentikasi dengan Azure CLI, jalankan perintah az login.

az login

Pada sistem dengan browser web default, Azure CLI akan meluncurkan browser untuk mengautentikasi. Untuk sistem tanpa browser web bawaan, perintah az login akan menggunakan alur autentikasi kode perangkat. Pengguna juga dapat memaksa Azure CLI untuk menggunakan alur kode perangkat alih-alih meluncurkan browser dengan menentukan argumen --use-device-code.

Jika Anda memiliki beberapa langganan, pastikan untuk memilih langganan Azure yang berisi brankas kunci Anda.

Memberikan akses ke brankas kunci Anda

Buat kebijakan akses untuk brankas kunci, yang akan memberikan izin rahasia ke akun pengguna Anda.

Untuk mengatur kebijakan akses, jalankan perintah az keyvault set-policy. Ganti Your-Key-Vault-Name dengan nama brankas kunci Anda. Ganti user@domain.com dengan nama pengguna Microsoft Entra Anda.

az keyvault set-policy --name Your-Key-Vault-Name --upn user@domain.com --secret-permissions delete get list set purge

Membuat aplikasi java

Di IDE pilihan Anda, buat proyek aplikasi konsol Java baru, dan buat kelas bernama Example.

Menambahkan dependensi

Di proyek Anda, tambahkan dependensi berikut ke file pom.xml Anda.

<dependencies>

        <dependency>
            <groupId>com.azure</groupId>
            <artifactId>azure-security-keyvault-secrets</artifactId>
            <version>4.2.3</version>
        </dependency>
        <dependency>
            <groupId>com.azure</groupId>
            <artifactId>azure-identity</artifactId>
            <version>1.2.0</version>
        </dependency>
    </dependencies>

Mengimpor kode contoh

Salin kode berikut ke dalam file bernama Example.java. Ganti Your-Key-Secret-Name dan Your-Endpoint-Secret-Name dengan nama rahasia yang Anda tetapkan di brankas kunci Anda.

import com.azure.identity.DefaultAzureCredentialBuilder;
import com.azure.security.keyvault.secrets.SecretClient;
import com.azure.security.keyvault.secrets.SecretClientBuilder;
import com.azure.core.credential.AzureKeyCredential;

public class Example {

    public static void main(String[] args) {

        String keyVaultName = System.getenv("KEY_VAULT_NAME");
        String keyVaultUri = "https://" + keyVaultName + ".vault.azure.net";

        //variables for retrieving the key and endpoint from your key vault.
        //Set these variables to the names you created for your secrets
        String keySecretName = "Your-Key-Secret-Name";
        String endpointSecretName = "Your-Endpoint-Secret-Name";

        //Create key vault secrets client
        SecretClient secretClient = new SecretClientBuilder()
                .vaultUrl(keyVaultUri)
                .credential(new DefaultAzureCredentialBuilder().build())
                .buildClient();

        //retrieve key and endpoint from key vault
        String keyValue = secretClient.getSecret(keySecretName).getValue();
        String endpointValue = secretClient.getSecret(endpointSecretName).getValue();
        System.out.printf("Your secret key value is: %s", keyValue)
        System.out.printf("Your secret endpoint value is: %s", endpointValue)
    }
}

Mengirim panggilan layanan uji Bahasa (opsional)

Jika Anda menggunakan sumber daya multi-layanan atau sumber daya Bahasa, Anda dapat memperbarui aplikasi Anda dengan mengikuti langkah-langkah berikut untuk mengirim contoh panggilan Pengenalan Entitas Karakter dengan mengambil kunci dan titik akhir dari brankas kunci Anda.

  1. Di aplikasi Anda, tambahkan dependensi berikut:

    <dependency>
        <groupId>com.azure</groupId>
        <artifactId>azure-ai-textanalytics</artifactId>
        <version>5.1.12</version>
    </dependency>
    
  2. tambahkan pernyataan import berikut ke file Anda.

    import com.azure.ai.textanalytics.models.*;
    import com.azure.ai.textanalytics.TextAnalyticsClientBuilder;
    import com.azure.ai.textanalytics.TextAnalyticsClient;
    
  3. Tambahkan kode berikut ke metode main() di aplikasi Anda:

    
    TextAnalyticsClient languageClient = new TextAnalyticsClientBuilder()
            .credential(new AzureKeyCredential(keyValue))
            .endpoint(endpointValue)
            .buildClient();
    
    // Example for recognizing entities in text
    String text = "I had a wonderful trip to Seattle last week.";
    
    for (CategorizedEntity entity : languageClient.recognizeEntities(text)) {
        System.out.printf(
                "Recognized entity: %s, entity category: %s, entity sub-category: %s, score: %s, offset: %s, length: %s.%n",
                entity.getText(),
                entity.getCategory(),
                entity.getSubcategory(),
                entity.getConfidenceScore(),
                entity.getOffset(),
                entity.getLength());
    }
    
  4. Jalankan aplikasi Anda

Mengautentikasi aplikasi Anda

Sebelum dapat memberikan akses ke brankas kunci, Anda harus mengautentikasi dengan nama pengguna dan kata sandi Microsoft Entra Anda.

Untuk mengautentikasi dengan Azure CLI, jalankan perintah az login.

az login

Pada sistem dengan browser web default, Azure CLI akan meluncurkan browser untuk mengautentikasi. Untuk sistem tanpa browser web bawaan, perintah az login akan menggunakan alur autentikasi kode perangkat. Pengguna juga dapat memaksa Azure CLI untuk menggunakan alur kode perangkat alih-alih meluncurkan browser dengan menentukan argumen --use-device-code.

Jika Anda memiliki beberapa langganan, pastikan untuk memilih langganan Azure yang berisi brankas kunci Anda.

Memberikan akses ke brankas kunci Anda

Buat kebijakan akses untuk brankas kunci, yang akan memberikan izin rahasia ke akun pengguna Anda.

Untuk mengatur kebijakan akses, jalankan perintah az keyvault set-policy. Ganti Your-Key-Vault-Name dengan nama brankas kunci Anda. Ganti user@domain.com dengan nama pengguna Microsoft Entra Anda.

az keyvault set-policy --name Your-Key-Vault-Name --upn user@domain.com --secret-permissions delete get list set purge

Membuat aplikasi Node.js baru

Buat aplikasi Node.js yang menggunakan brankas kunci Anda.

Di terminal, buat folder bernama key-vault-js-example dan ubah ke folder itu:

mkdir key-vault-js-example && cd key-vault-js-example

Buat proyek Node.js baru:

npm init -y

Menginstal paket layanan Bahasa dan Key Vault

  1. Dengan menggunakan terminal, instal pustaka rahasia Azure Key Vault, @azure/keyvault-secrets untuk Node.js.

    npm install @azure/keyvault-secrets
    
  2. Instal pustaka Identitas Azure, paket @azure/identity untuk mengautentikasi ke Key Vault.

    npm install @azure/identity
    

Mengimpor sampel kode

Tambahkan sampel kode berikut ke file bernama index.js. Ganti Your-Key-Secret-Name dan Your-Endpoint-Secret-Name dengan nama rahasia yang Anda tetapkan di brankas kunci Anda.

const { SecretClient } = require("@azure/keyvault-secrets");
const { DefaultAzureCredential } = require("@azure/identity");
// Load the .env file if it exists
const dotenv = require("dotenv");
dotenv.config();

async function main() {
    const credential = new DefaultAzureCredential();

    const keyVaultName = process.env["KEY_VAULT_NAME"];
    const url = "https://" + keyVaultName + ".vault.azure.net";

    const kvClient = new SecretClient(url, credential);

    // Set these variables to the names you created for your secrets
    const keySecretName = "Your-Key-Secret-Name";
    const endpointSecretName = "Your-Endpoint-Secret-Name";

    console.log("Retrieving secrets from ", keyVaultName);
    const retrievedKey = await (await kvClient.getSecret(keySecretName)).value;
    const retrievedEndpoint = await (await kvClient.getSecret(endpointSecretName)).value;
    console.log("Your secret key value is: ", retrievedKey);
    console.log("Your secret endpoint value is: ", retrievedEndpoint);
}

main().catch((error) => {
  console.error("An error occurred:", error);
  process.exit(1);
});

Jalankan aplikasi sampel

Gunakan perintah berikut untuk menjalankan aplikasi. Rahasia titik akhir dan kunci Anda akan diambil dari brankas kunci Anda.

node index.js

Mengirim panggilan layanan uji Bahasa (opsional)

Jika Anda menggunakan sumber daya multi-layanan atau sumber daya Bahasa, Anda dapat memperbarui aplikasi Anda dengan mengikuti langkah-langkah berikut untuk mengirim contoh panggilan Pengenalan Entitas Karakter dengan mengambil kunci dan titik akhir dari brankas kunci Anda.

  1. Instal layanan Azure AI untuk Pustaka bahasa, @azure/ai-text-analytics untuk mengirim permintaan API ke layanan Bahasa.

    npm install @azure/ai-text-analytics@5.1.0
    
  2. Tambahkan kode berikut ke fungsi Anda:

    const { TextAnalyticsClient, AzureKeyCredential } = require("@azure/ai-text-analytics");
    // Authenticate the language client with your key and endpoint
    const languageClient = new TextAnalyticsClient(retrievedEndpoint,  new AzureKeyCredential(retrievedKey));
    
    // Example for recognizing entities in text
    console.log("Sending NER request")
    const entityInputs = [
        "I had a wonderful trip to Seattle last week."
    ];
    const entityResults = await languageClient.recognizeEntities(entityInputs);
    entityResults.forEach(document => {
        console.log(`Document ID: ${document.id}`);
        document.entities.forEach(entity => {
            console.log(`\tName: ${entity.text} \tCategory: ${entity.category} \tSubcategory: ${entity.subCategory ? entity.subCategory : "N/A"}`);
            console.log(`\tScore: ${entity.confidenceScore}`);
        });
    });
    
  3. Jalankan aplikasi lagi.

Langkah berikutnya