全部产品
Search
文档中心

Platform For AI:Layanan inferensi enkripsi aman

更新时间:Nov 26, 2025

Di Elastic Algorithm Service (EAS), Anda dapat menyiapkan lingkungan enkripsi aman untuk menerapkan dan menjalankan inferensi model terenkripsi secara aman. Lingkungan ini menyediakan perlindungan berlapis bagi data dan model sepanjang siklus hidupnya, cocok untuk skenario yang melibatkan data sensitif seperti layanan keuangan, pemerintahan, dan aplikasi perusahaan. Topik ini menjelaskan cara menyiapkan model terenkripsi serta melakukan penerapan dan inferensi terenkripsi.

Ikhtisar

Ikuti langkah-langkah berikut untuk penerapan dan inferensi terenkripsi:

  1. Langkah 1: Siapkan model terenkripsi

    • Enkripsi model: Gunakan Gocryptfs atau Sam untuk mengenkripsi model, lalu unggah model terenkripsi tersebut ke sumber data (misalnya Object Storage Service (OSS)) guna pemasangan dan penerapan selanjutnya di EAS.

    • Simpan kunci dekripsi: Saat ini, EAS mendukung layanan attestation jarak jauh Trustee buatan sendiri yang dihosting oleh Alibaba Cloud. Terapkan layanan attestation jarak jauh Trustee di Alibaba Cloud Container Service for Kubernetes (ACK) Serverless untuk memverifikasi lingkungan penerapan dan inferensi, serta gunakan Key Management Service (KMS) sebagai backend penyimpanan kunci dekripsi.

  2. Langkah 2: Terapkan model terenkripsi di PAI-EAS

    Saat menerapkan model terenkripsi menggunakan PAI-EAS, sistem secara otomatis terhubung ke layanan attestation jarak jauh Trustee untuk memverifikasi lingkungan penerapan. Setelah verifikasi berhasil, sistem menggunakan kunci di KMS untuk mendekripsi dan memasang model, lalu menerapkannya sebagai layanan EAS.

  3. Langkah 3: Panggil layanan untuk inferensi aman

    Setelah penerapan selesai, pengguna dapat mengakses layanan inferensi untuk mengirim permintaan inferensi.

Langkah 1: Siapkan model terenkripsi

Sebelum menerapkan model, Anda perlu mengenkripsi model tersebut dan mengunggahnya ke penyimpanan cloud. Kunci untuk mendekripsi model akan dihosting oleh KMS dan dikendalikan oleh layanan attestation jarak jauh. Lakukan operasi enkripsi model di lingkungan lokal atau tepercaya. Solusi ini menunjukkan cara menerapkan Qwen2.5-3B-Instruct sebagai contoh.

1. Siapkan model (opsional)

Catatan

Jika Anda sudah memiliki model sendiri, lewati bagian ini dan langsung menuju 2. Enkripsi model.

Jalankan perintah berikut di terminal menggunakan tool ModelScope untuk mengunduh Qwen2.5-3B-Instruct (memerlukan Python 3.9 atau lebih tinggi).

pip3 install modelscope importlib-metadata
modelscope download --model Qwen/Qwen2.5-3B-Instruct

Perintah tersebut akan mengunduh model ke ~/.cache/modelscope/hub/models/Qwen/Qwen2.5-3B-Instruct/.

2. Enkripsi model

PAI-EAS mendukung metode enkripsi berikut. Solusi ini menggunakan Sam sebagai contoh.

  • Gocryptfs: Mode enkripsi berbasis AES256-GCM yang sesuai dengan standar open-source Gocryptfs.

  • Sam: Format enkripsi model AI tepercaya dari Alibaba Cloud yang melindungi kerahasiaan model dan mencegah konten lisensi dimanipulasi atau digunakan secara ilegal.

Opsi 1: Enkripsi Sam

  1. Unduh modul enkripsi Sam RAI_SAM_SDK_2.1.0-20240731.tgz, lalu jalankan perintah berikut untuk mengekstrak paket tersebut.

    # Ekstrak modul enkripsi Sam
    tar xvf RAI_SAM_SDK_2.1.0-20240731.tgz
  2. Gunakan modul enkripsi Sam untuk mengenkripsi model.

    # Masuk ke direktori enkripsi modul enkripsi Sam
    cd RAI_SAM_SDK_2.1.0-20240731/tools
    
    # Enkripsi model
    ./do_content_packager.sh <model_directory> <plaintext_key> <key_ID>

    Keterangan:

    • <model_directory>: Direktori tempat model yang akan dienkripsi berada. Anda dapat menggunakan jalur relatif atau absolut, misalnya ~/.cache/modelscope/hub/models/Qwen/Qwen2.5-3B-Instruct/.

    • <plaintext_key>: Kunci enkripsi kustom dengan panjang 4 hingga 128 byte, misalnya 0Bn4Q1wwY9fN3P. Plaintext key ini adalah kunci dekripsi model yang akan diunggah ke Trustee.

    • <key_ID>: Identifier kunci kustom dengan panjang 8 hingga 48 byte, misalnya LD_Demo_0001.

    Setelah enkripsi, model akan disimpan dalam bentuk terenkripsi di direktori <key_ID> pada path saat ini.image

Opsi 2: Enkripsi Gocryptfs

  1. Instal tool Gocryptfs (saat ini hanya mendukung versi Gocryptfs v2.4.0 dengan parameter default). Pilih salah satu metode instalasi berikut:

    Metode 1: (Direkomendasikan) Instal dari sumber yum

    Jika Anda menggunakan sistem operasi Alinux3 atau AnolisOS 23, Anda dapat langsung menginstal gocryptfs menggunakan sumber yum.

    Alinux 3
    sudo yum install gocryptfs -y
    AnolisOS 23
    sudo yum install anolis-epao-release -y
    sudo yum install gocryptfs -y

    Metode 2: Unduh binary prakompilasi langsung

    # Unduh paket Gocryptfs prakompilasi
    wget https://github.jobcher.com/gh/https://github.com/rfjakob/gocryptfs/releases/download/v2.4.0/gocryptfs_v2.4.0_linux-static_amd64.tar.gz
    
    # Ekstrak dan instal
    tar xf gocryptfs_v2.4.0_linux-static_amd64.tar.gz
    sudo install -m 0755 ./gocryptfs /usr/local/bin
  2. Buat file kunci Gocryptfs sebagai kunci untuk enkripsi model. Pada langkah selanjutnya, Anda perlu mengunggah kunci ini ke Trustee.

    Pada solusi ini, 0Bn4Q1wwY9fN3P adalah kunci untuk enkripsi, dan akan disimpan dalam file cachefs-password. Anda juga dapat menyesuaikan kunci tersebut. Namun dalam praktiknya, gunakan kunci kuat yang dihasilkan secara acak.

    cat << EOF > ~/cachefs-password
    0Bn4Q1wwY9fN3P
    EOF
  3. Gunakan kunci tersebut untuk mengenkripsi model.

    1. Konfigurasikan path model plaintext.

      Catatan

      Konfigurasikan path model plaintext yang baru saja diunduh, atau ganti dengan path model Anda sendiri.

      PLAINTEXT_MODEL_PATH=~/.cache/modelscope/hub/models/Qwen/Qwen2.5-3B-Instruct/
    2. Gunakan Gocryptfs untuk mengenkripsi struktur direktori model.

      Setelah enkripsi, model akan disimpan dalam bentuk terenkripsi di direktori ./cipher.

      mkdir -p ~/mount
      cd ~/mount
      mkdir -p cipher plain
      
      # Instal dependensi runtime Gocryptfs
      sudo yum install -y fuse
      
      # Inisialisasi gocryptfs
      cat ~/cachefs-password | gocryptfs -init cipher
      
      # Pasang ke plain
      cat ~/cachefs-password | gocryptfs cipher plain
      
      # Pindahkan model AI ke ~/mount/plain
      cp -r ${PLAINTEXT_MODEL_PATH}/. ~/mount/plain

3. Unggah model

EAS mendukung beberapa layanan penyimpanan untuk model terenkripsi dan dapat memuat model yang didekripsi ke instans layanan melalui pemasangan selama penerapan. Untuk informasi lebih lanjut, lihat Mount storage.

Sebagai contoh, ambil Object Storage Service (OSS). Rujuk ke Quick start for the console untuk membuat ruang penyimpanan (Bucket) dan direktori bernama qwen-encrypted (misalnya, oss://examplebucket/qwen-encrypted/). Karena ukuran file model cukup besar, disarankan untuk menggunakan ossbrowser untuk mengunggah model terenkripsi ke direktori ini.

Catatan

Jika Anda perlu menggunakan tool baris perintah ossutil, multipart upload direkomendasikan.

Tangkapan layar berikut menunjukkan model yang diunggah menggunakan enkripsi Sam. Jika Anda menggunakan enkripsi Gocryptfs, nama file akan dienkripsi menjadi teks acak.image

4. Siapkan layanan attestation jarak jauh dan unggah kunci

Host kunci di layanan attestation jarak jauh. Layanan attestation jarak jauh adalah layanan verifikasi yang dikelola pengguna dan bertanggung jawab untuk memverifikasi lingkungan eksekusi model dan layanan inferensi. Ketika keandalan lingkungan penerapan EAS memenuhi kondisi yang diharapkan, kunci akan disuntikkan untuk mendekripsi dan memasang model.

Saat ini, EAS mendukung layanan attestation jarak jauh Trustee buatan sendiri yang dihosting oleh Alibaba Cloud. Anda dapat menggunakan ACK Serverless untuk menerapkan Trustee guna memverifikasi lingkungan penerapan dan inferensi model. Sementara itu, Anda dapat menggunakan KMS untuk memberikan perlindungan profesional bagi kunci dekripsi model. Lakukan langkah-langkah berikut:

Penting
  • Wilayah kluster ACK tidak harus sama dengan wilayah penerapan layanan EAS.

  • Instans KMS harus berada di wilayah yang sama dengan kluster ACK tempat Trustee diterapkan.

  • Sebelum membuat instans KMS dan kluster ACK, buat virtual private network (VPC) dan dua vSwitch. Untuk informasi lebih lanjut, lihat Create and manage a VPC.

  1. Pertama, buat instans KMS untuk menyimpan kunci.

    1. Buka Konsol KMS, pilih Resource > Instances di panel navigasi kiri. Lalu, buat dan mulai instans pada tab Software Key Management. Saat memulai instans, pilih VPC yang sama dengan kluster ACK. Untuk informasi lebih lanjut, lihat Purchase and enable a KMS instance.

      Tunggu sekitar 10 menit hingga instans dimulai.

    2. Setelah instans dimulai, pilih Resource > Keys di panel navigasi kiri. Lalu, buat customer master key untuk instans tersebut di halaman Keys. Untuk informasi lebih lanjut, lihat Step 1: Create a software-protected key.

    3. Pilih Application Access > AAPs di panel navigasi kiri. Lalu, buat application access point (AAP) untuk instans tersebut di halaman AAPs. Atur Scope ke instans KMS yang telah dibuat. Untuk informasi lebih lanjut, lihat Mode 1: Quick creation.

      Setelah AAP dibuat, browser Anda secara otomatis mengunduh file ClientKey***.zip. File zip ini berisi file-file berikut setelah diekstrak:

      • ClientKeyContent: Nama file default adalah clientKey_****.json.

      • ClientKeyPassword: Nama file default adalah clientKey_****_Password.txt.

    4. Buka Resource > Instances, klik nama instans KMS. Lalu, di bagian Basic Information, klik Download di samping Instance CA Certificate untuk mengekspor file sertifikat kunci publik PrivateKmsCA_***.pem dari instans KMS.

  2. Buat kluster layanan ACK dan instal komponen csi-provisioner.

    1. Buka halaman Create Cluster untuk membuat kluster ACK Serverless. Perhatikan parameter berikut. Untuk pengaturan parameter lainnya, lihat Create an ACK Serverless cluster.

      1. Cluster Configurations: Konfigurasikan parameter berikut lalu klik Next: Component Configurations.

        Key item

        Description

        VPC

        Pilih Use Existing dan pilih Configure SNAT For VPC. Jika tidak, Anda tidak dapat menarik citra Trustee.

        vSwitch

        Pastikan setidaknya dua vSwitch telah dibuat di VPC yang ada. Jika tidak, Anda tidak dapat mengekspos ALB publik.

      2. Component Configurations: Konfigurasikan parameter berikut lalu klik Next: Confirm.

        Key item

        Description

        Service Discovery

        Pilih CoreNDS.

        Ingress

        Pilih ALB Ingress. Untuk Gateway Source, pilih New dan pilih dua vSwitch.

      3. Confirm: Konfirmasi informasi konfigurasi dan ketentuan layanan, lalu klik Create Cluster.

    2. Setelah kluster dibuat, instal komponen csi-provisioner (Managed). Untuk informasi lebih lanjut, lihat Manage components.

  3. Terapkan Trustee di kluster ACK.

    1. Pertama, hubungkan ke kluster melalui Internet atau jaringan internal. Untuk informasi lebih lanjut, lihat Connect to a cluster.

    2. Unggah konten kunci client yang diunduh (clientKey_****.json), kata sandi kunci (clientKey_****_Password.txt), dan sertifikat CA (PrivateKmsCA_***.pem) ke lingkungan yang terhubung ke kluster ACK Serverless, lalu jalankan perintah berikut untuk menerapkan Trustee menggunakan Alibaba Cloud KMS sebagai backend penyimpanan kunci.

      # Instal plugin
      helm plugin install https://github.com/AliyunContainerService/helm-acr
      
      helm repo add trustee acr://trustee-chart.cn-hangzhou.cr.aliyuncs.com/trustee/trustee
      helm repo update
      
      export DEPLOY_RELEASE_NAME=trustee
      export DEPLOY_NAMESPACE=default
      export TRUSTEE_CHART_VERSION=1.0.0
      
      # Atur informasi wilayah kluster ACK, misalnya cn-hangzhou
      export REGION_ID=cn-hangzhou
      
      # Informasi instans KMS yang diekspor sebelumnya 
      # Ganti dengan ID instans KMS Anda
      export KMS_INSTANCE_ID=kst-hzz66a0*******e16pckc
      # Ganti dengan path ke secret identitas aplikasi instans KMS Anda 
      export KMS_CLIENT_KEY_FILE=/path/to/clientKey_KAAP.***.json
      # Ganti dengan path ke token keamanan secret instans KMS Anda 
      export KMS_PASSWORD_FILE=/path/to/clientKey_KAAP.***_Password.txt
      # Ganti dengan path ke sertifikat CA instans KMS Anda
      export KMS_CERT_FILE=/path/to/PrivateKmsCA_kst-***.pem
      
      helm install ${DEPLOY_RELEASE_NAME} trustee/trustee \
        --version ${TRUSTEE_CHART_VERSION} \
        --set regionId=${REGION_ID} \
        --set kbs.aliyunKms.enabled=true \
        --set kbs.aliyunKms.kmsIntanceId=${KMS_INSTANCE_ID} \
        --set-file kbs.aliyunKms.clientKey=${KMS_CLIENT_KEY_FILE} \
        --set-file kbs.aliyunKms.password=${KMS_PASSWORD_FILE} \
        --set-file kbs.aliyunKms.certPem=${KMS_CERT_FILE} \
        --namespace ${DEPLOY_NAMESPACE}
      Catatan

      Perintah pertama (helm plugin install...) mungkin memerlukan waktu lama untuk dieksekusi. Jika instalasi gagal, Anda dapat terlebih dahulu menguninstal plugin dengan menjalankan helm plugin uninstall cm-push, lalu jalankan kembali perintah instalasi plugin.

      Contoh output:

      NAME: trustee
      LAST DEPLOYED: Tue Feb 25 18:55:33 2025
      NAMESPACE: default
      STATUS: deployed
      REVISION: 1
      TEST SUITE: None
    3. Jalankan perintah berikut di lingkungan yang terhubung ke kluster ACK Serverless untuk mendapatkan alamat akses Trustee.

      export TRUSTEE_URL=http://$(kubectl get AlbConfig alb -o jsonpath='{.status.loadBalancer.dnsname}')/${DEPLOY_RELEASE_NAME}
      echo ${TRUSTEE_URL}

      Contoh output: http://alb-ppams74szbwg2f****.cn-shanghai.alb.aliyuncsslb.com/trustee.

    4. Jalankan perintah berikut di lingkungan yang terhubung ke kluster ACK Serverless untuk menguji konektivitas layanan Trustee.

      cat << EOF | curl -k -X POST ${TRUSTEE_URL}/kbs/v0/auth -H 'Content-Type: application/json' -d @-
      {
          "version":"0.1.0",
          "tee": "tdx",
          "extra-params": "foo"
      }
      EOF

      Jika Trustee berjalan normal, output yang diharapkan adalah:

      {"nonce":"PIDUjUxQdBMIXz***********IEysXFfUKgSwk=","extra-params":""}
  4. Konfigurasikan daftar putih jaringan Trustee.

    Catatan

    Tujuannya adalah untuk mengizinkan lingkungan penerapan PAI-EAS mengakses layanan attestation jarak jauh secara aktif guna pemeriksaan keamanan.

    1. Buka Konsol ALB, buat access control list (ACL), lalu tambahkan alamat/segmen alamat dengan izin akses Trustee sebagai entri IP. Untuk informasi lebih lanjut, lihat Access control. Segmen alamat yang perlu ditambahkan:

      • Alamat IP publik VPC yang terikat dengan layanan EAS.

      • Alamat IP egress klien inferensi.

    2. Jalankan perintah berikut untuk mendapatkan ID instans ALB yang digunakan oleh instans trustee di kluster:

      kubectl get ing --namespace ${DEPLOY_NAMESPACE} kbs-ingress -o jsonpath='{.status.loadBalancer.ingress[0].hostname}' | cut -d'.' -f1 | sed 's/[^a-zA-Z0-9-]//g'

      Output yang diharapkan:

      alb-llcdzbw0qivhk0****
    3. Di panel navigasi kiri Konsol ALB, pilih ALB > Instances. Di wilayah tempat kluster berada, cari instans ALB yang diperoleh pada langkah sebelumnya. Klik ID instans untuk membuka halaman detail instans. Lalu, di bagian bawah halaman pada bagian Instance Information, klik Disable Configuration Read-only Mode.

    4. Beralih ke tab Listeners, klik Enable di kolom Access Control pada instans listener target, lalu konfigurasikan daftar putih sebagai ACL yang dibuat pada langkah sebelumnya.

  5. Buat rahasia untuk menyimpan kunci dekripsi model.

    Kunci dekripsi model yang dihosting oleh trustee disimpan di KMS. Kunci tersebut hanya dapat diakses setelah layanan attestation jarak jauh memverifikasi lingkungan tujuan.

    Buka Konsol KMS, pilih Resource > Secrets di panel navigasi kiri. Lalu, pilih Generic Secrets dan klik Create a secret. Perhatikan parameter berikut:

    • Secret Name: Nama rahasia kustom yang digunakan untuk mengindeks kunci, misalnya model-decryption-key.

    • Secret Value: Masukkan kunci yang digunakan untuk mengenkripsi model. Misalnya, 0Bn4Q1wwY9fN3P. Gunakan kunci aktual Anda.

    • CMK: Pilih kunci master yang dibuat pada langkah sebelumnya.

Langkah 2: Terapkan model terenkripsi di PAI-EAS

  1. Login ke Konsol PAI. Pilih wilayah di bagian atas halaman. Lalu, pilih ruang kerja yang diinginkan dan klik Elastic Algorithm Service (EAS).

  2. Di halaman Elastic Algorithm Service (EAS), klik Deploy Service. Lalu, klik Custom Deployment di bagian Custom Model Deployment.

  3. Di halaman Custom Deployment, konfigurasikan parameter kunci berikut. Untuk informasi parameter lebih lanjut, lihat Custom deployment.

    Parameter

    Description

    Environment Information

    Deployment Method

    Pilih Image-based Deployment.

    Image Configuration

    Pilih citra. Dalam solusi ini, pilih Alibaba Cloud Image > chat-llm-webui:3.0-vllm.

    Mount storage

    Klik + OSS dan konfigurasikan parameter berikut:

    • Uri: Pilih direktori tempat model terenkripsi berada. Misalnya, oss://examplebucket/qwen-encrypted/. Gunakan path aktual Anda.

    • Mount Path: Konfigurasikan direktori tempat model plaintext dipasang, misalnya /mnt/model.

    Command

    Contoh konfigurasi: python webui/webui_server.py --port=8000 --model-path=/mnt/model --backend=vllm. Perhatikan bahwa --model-path harus sama dengan mount path agar dapat membaca model yang didekripsi.

    Port Number

    Dalam solusi ini, atur ke 8000.

    Environment Variables

    Anda dapat menambahkan variabel lingkungan untuk verifikasi Trustee. Dalam solusi ini, atur: kunci eas-test: nilai 123.

    Resource Information

    Deployment Resources

    Dalam solusi ini, gunakan ml.gu7i.c32m188.1-gu30.

    VPC

    VPC

    Konfigurasikan VPC dan atur IP egress jaringan publik SNAT untuk VPC agar EAS dapat mengakses jaringan publik, sehingga dapat mengakses layanan attestation jarak jauh dan melakukan pemeriksaan keamanan lingkungan.

    vSwitch

    Security Group Name

    Features

    Configure Secure Encryption Environment

    Aktifkan sakelar Configure Secure Encryption Environment dan konfigurasikan parameter berikut:

    • Encryption Method: Metode enkripsi yang digunakan untuk mengenkripsi model. Mendukung Sam dan Gocryptfs. Solusi ini memilih Sam.

    • System Trust Management Service Address: Alamat layanan Trustee yang telah diterapkan. Misalnya, http://alb-ppams74szbwg2f****.cn-shanghai.alb.aliyuncsslb.com/trustee.

    • KBS URI of Decryption Key: URI KBS dari kunci dekripsi model yang digunakan, dalam format kbs:///default/aliyun/<secret_name_of_the_key>. Ganti <secret_name_of_the_key> dengan nama rahasia yang dibuat pada langkah sebelumnya.

    Contoh konfigurasi JSON akhir adalah sebagai berikut:

    Klik di sini untuk melihat konfigurasi JSON

    {
        "cloud": {
            "computing": {
                "instances": [
                    {
                        "type": "ml.gu7i.c32m188.1-gu30"
                    }
                ]
            },
            "networking": {
                "security_group_id": "sg-2vcbmhs3puagy23k****",
                "vpc_id": "vpc-2vctxcm4qncgriz0j****",
                "vswitch_id": "vsw-2vc0tdylfux849zb7****"
            }
        },
        "confidential": {
            "decryption_key": "kbs:///default/aliyun/model-decryption-key",
            "trustee_endpoint": "http://alb-ppams74szbwg2f****.cn-shanghai.alb.aliyuncsslb.com/trustee"
        },
        "containers": [
            {
                "env": [
                    {
                        "name": "eas-test",
                        "value": "1234"
                    }
                ],
                "image": "eas-registry-vpc.cn-hangzhou.cr.aliyuncs.com/pai-eas/chat-llm-webui:3.0.5-vllm",
                "port": 8000,
                "script": "python webui/webui_server.py --port=8000 --model-path=--model-path=/mnt/data/model --backend=vllm"
            }
        ],
        "metadata": {
            "cpu": 8,
            "gpu": 1,
            "instance": 1,
            "memory": 30000,
            "name": "xynnn_eas_test_gpu"
        },
        "storage": [
            {
                "encryption": {
                    "method": "sam"
                },
                "mount_path": "/mnt/data/model",
                "oss": {
                    "path": "oss://examplebucket/qwen-encrypted/"
                },
                "properties": {
                    "resource_type": "model"
                }
            }
        ]
    }
  4. Klik Deploy.

    Ketika Status Layanan menjadi Berjalan, layanan telah berhasil diterapkan. Pada titik ini, buka halaman Clusters, klik nama kluster, lalu di halaman Pods, ikuti panduan operasi pada tangkapan layar di bawah untuk melihat log kontainer attestation-service-*. Log tersebut akan menunjukkan apakah Trustee telah memverifikasi lingkungan penerapan model dan menampilkan informasi detail lingkungan eksekusi.image

Langkah 3: Panggil layanan untuk inferensi aman

1. Lihat titik akhir layanan

Di halaman Model Online Service (EAS), klik Invocation Method di kolom Service Type layanan target untuk mendapatkan titik akhir layanan dan token.image

2. Panggil layanan

  1. Anda dapat menjalankan perintah cURL berikut untuk mengirim permintaan inferensi ke layanan.

curl <Service_URL> \
  -H "Content-type: application/json" \
  --data-binary @openai_chat_body.json \
  -v \
  -H "Connection: close" \
  -H "Authorization: <Token>"

Di mana:

  • <Service_URL>: Titik akhir layanan EAS.

  • <Token>: Token layanan EAS.

  • openai_chat_body.json adalah permintaan inferensi asli. Contoh isi permintaan adalah sebagai berikut:

    {
        "max_new_tokens": 4096,
        "use_stream_chat": false,
        "prompt": "What is the capital of Canada?",
        "system_prompt": "Act like you are a knowledgeable assistant who can provide information on geography and related topics.",
        "history": [
            [
                "Can you tell me what's the capital of France?",
                "The capital of France is Paris."
            ]
        ],
        "temperature": 0.8,
        "top_k": 10,
        "top_p": 0.8,
        "do_sample": true,
        "use_cache": true
    }

Tanggapan berikut dikembalikan untuk contoh di atas:

{
    "response": "The capital of Canada is Ottawa.",
    "history": [
        [
            "Can you tell me what's the capital of France?",
            "The capital of France is Paris."
        ],
        [
            "What is the capital of Canada?",
            "The capital of Canada is Ottawa."
        ]
    ]
}