Gunakan ApplyGuardrail API di aplikasi Anda - Amazon Bedrock

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

Gunakan ApplyGuardrail API di aplikasi Anda

Guardrails digunakan untuk menerapkan perlindungan untuk aplikasi AI generatif Anda yang disesuaikan untuk kasus penggunaan Anda dan selaras dengan kebijakan AI Anda yang bertanggung jawab. Guardrails memungkinkan Anda mengonfigurasi topik yang ditolak, memfilter konten berbahaya, dan menghapus informasi sensitif.

Anda dapat menggunakan ApplyGuardrail API untuk menilai teks apa pun menggunakan Amazon Bedrock Guardrails yang telah dikonfigurasi sebelumnya, tanpa menggunakan model foundation.

Fitur ApplyGuardrail API:

  • Validasi Konten - Anda dapat mengirim input atau output teks apa pun ke ApplyGuardrail API untuk membandingkannya dengan aturan penghindaran topik yang ditentukan, filter konten, detektor PII, dan daftar blok kata. Anda dapat mengevaluasi input pengguna dan output yang dihasilkan FM secara independen.

  • Penerapan Fleksibel - Anda dapat mengintegrasikan ApplyGuardrail API di mana saja dalam alur aplikasi Anda untuk memvalidasi data sebelum memproses atau menyajikan hasil kepada pengguna. Misalnya, jika Anda menggunakan aplikasi RAG, Anda sekarang dapat mengevaluasi input pengguna sebelum melakukan pengambilan, alih-alih menunggu hingga pembuatan respons akhir.

  • Dipisahkan dari. FMs — ApplyGuardrail API dipisahkan dari model dasar. Anda sekarang dapat menggunakan Guardrails tanpa menggunakan Foundation Models. Anda dapat menggunakan hasil penilaian untuk merancang pengalaman pada aplikasi AI generatif Anda.

Memanggil ApplyGuardrail API di alur aplikasi

Permintaan ini memungkinkan pelanggan untuk meneruskan semua konten mereka yang harus dijaga menggunakan pagar pembatas yang ditentukan. Bidang sumber harus disetel ke “INPUT” ketika konten yang akan dievaluasi berasal dari pengguna, biasanya prompt LLM. Sumber harus disetel ke “OUTPUT” ketika model keluaran Guardrails harus ditegakkan, biasanya respons LLM.

Topik

    Mengonfigurasi pagar pembatas untuk digunakan dengan API ApplyGuardrail

    Anda menentukan informasi konfigurasi untuk pagar pembatas dalam parameter guardrailConfig input. Konfigurasi mencakup ID dan versi pagar pembatas yang ingin Anda gunakan. Anda juga dapat mengaktifkan penelusuran untuk pagar pembatas, yang memberikan informasi tentang konten yang diblokir pagar pembatas.

    ApplyGuardrail API Request
    POST /guardrail/{guardrailIdentifier}/version/{guardrailVersion}/apply HTTP/1.1 { "source": "INPUT" | "OUTPUT", "content": [ { "text": { "text": "string", } }, ] }
    ApplyGuardrail API Response
    { "usage": { "topicPolicyUnits": "integer", "contentPolicyUnits": "integer", "wordPolicyUnits": "integer", "sensitiveInformationPolicyUnits": "integer", "sensitiveInformationPolicyFreeUnits": "integer", "contextualGroundingPolicyUnits": "integer" }, "action": "GUARDRAIL_INTERVENED" | "NONE", "output": [ // if guardrail intervened and output is masked we return request in same format // with masking // if guardrail intervened and blocked, output is a single text with canned message // if guardrail did not intervene, output is empty array { "text": "string", }, ], "assessments": [{ "topicPolicy": { "topics": [{ "name": "string", "type": "DENY", "action": "BLOCKED", }] }, "contentPolicy": { "filters": [{ "type": "INSULTS | HATE | SEXUAL | VIOLENCE | MISCONDUCT |PROMPT_ATTACK", "confidence": "NONE" | "LOW" | "MEDIUM" | "HIGH", "filterStrength": "NONE" | "LOW" | "MEDIUM" | "HIGH", "action": "BLOCKED" }] }, "wordPolicy": { "customWords": [{ "match": "string", "action": "BLOCKED" }], "managedWordLists": [{ "match": "string", "type": "PROFANITY", "action": "BLOCKED" }] }, "sensitiveInformationPolicy": { "piiEntities": [{ // for all types see: https://docs.aws.amazon.com/bedrock/latest/APIReference/API_GuardrailPiiEntityConfig.html#bedrock-Type-GuardrailPiiEntityConfig-type "type": "ADDRESS" | "AGE" | ..., "match": "string", "action": "BLOCKED" | "ANONYMIZED" }], "regexes": [{ "name": "string", "regex": "string", "match": "string", "action": "BLOCKED" | "ANONYMIZED" }], "contextualGroundingPolicy": { "filters": [{ "type": "GROUNDING | RELEVANCE", "threshold": "double", "score": "double", "action": "BLOCKED | NONE" }] }, "invocationMetrics": { "guardrailProcessingLatency": "integer", "usage": { "topicPolicyUnits": "integer", "contentPolicyUnits": "integer", "wordPolicyUnits": "integer", "sensitiveInformationPolicyUnits": "integer", "sensitiveInformationPolicyFreeUnits": "integer", "contextualGroundingPolicyUnits": "integer" }, "guardrailCoverage": { "textCharacters": { "guarded":"integer", "total": "integer" } } } }, "guardrailCoverage": { "textCharacters": { "guarded": "integer", "total": "integer" } } ] }

    Contoh kasus penggunaan ApplyGuardrail API

    Output ApplyGuardrail permintaan tergantung pada tindakan pagar pembatas yang diambil pada konten yang diteruskan.

    • Jika pagar pembatas diintervensi di mana konten hanya ditutupi, konten yang tepat dikembalikan dengan masking diterapkan.

    • Jika pagar pembatas mengintervensi dan memblokir konten permintaan, bidang output akan menjadi satu teks, yang merupakan pesan kalengan berdasarkan konfigurasi pagar pembatas.

    • Jika tidak ada tindakan pagar pembatas yang diambil pada konten permintaan, array output kosong.

    No guardrail intervention

    Minta contoh

    { "source": "OUTPUT", "content": [ "text": { "text": "Hi, my name is Zaid. Which car brand is reliable?", } ] }

    Tanggapan jika Pagar Pembatas tidak melakukan intervensi

    { "usage": { "topicPolicyUnitsProcessed": 1, "contentPolicyUnitsProcessed": 1, "wordPolicyUnitsProcessed": 0, "sensitiveInformationPolicyFreeUnits": 0 }, "action": "NONE", "outputs": [], "assessments": [{}] }
    Guardrails intervened with BLOCKED action

    Contoh respons

    { "usage": { "topicPolicyUnitsProcessed": 1, "contentPolicyUnitsProcessed": 1, "wordPolicyUnitsProcessed": 0, "sensitiveInformationPolicyFreeUnits": 0 }, "action": "GUARDRAIL_INTERVENED", "outputs": [{ "text": "Configured guardrial canned message, i.e cannot respond", }], "assessments": [{ "topicPolicy": { "topics": [{ "name": "Cars", "type": "DENY", "action": "BLOCKED" }] }, "sensitiveInformationPolicy": { "piiEntities": [{ "type": "NAME", "match": "ZAID", "action": "ANONYMIZED" }], "regexes": [] } }] }
    Guardrails intervened with MASKED action

    Contoh respons

    Pagar pembatas diintervensi dengan penutup nama (nama bertopeng)

    { "usage": { "topicPolicyUnitsProcessed": 1, "contentPolicyUnitsProcessed": 1, "wordPolicyUnitsProcessed": 0, "sensitiveInformationPolicyFreeUnits": 0 }, "action": "GUARDRAIL_INTERVENED", "outputs": [ { "text": "Hi, my name is {NAME}. Which car brand is reliable?" }, { "text": "Hello {NAME}, ABC Cars are reliable..", } ], "assessments": [{ "sensitiveInformationPolicy": { "piiEntities": [{ "type": "NAME", "match": "ZAID", "action": "MASKED" }], "regexes": [] } }] }
    AWS CLI Example

    Contoh masukan

    # Make sure preview CLI is downloaded and setup aws bedrock-runtime apply-guardrail \ --cli-input-json '{ "guardrailIdentifier": "someGuardrailId", "guardrailVersion": "DRAFT", "source": "INPUT", "content": [ { "text": { "text": "How should I invest for my retirement? I want to be able to generate $5,000 a month" } } ] }' \ --region us-east-1 \ --output json

    Contoh keluaran

    { "usage": { "topicPolicyUnits": 1, "contentPolicyUnits": 1, "wordPolicyUnits": 1, "sensitiveInformationPolicyUnits": 1, "sensitiveInformationPolicyFreeUnits": 0 }, "action": "GUARDRAIL_INTERVENED", "outputs": [ { "text": "I apologize, but I am not able to provide fiduciary advice. =" } ], "assessments": [ { "topicPolicy": { "topics": [ { "name": "Fiduciary Advice", "type": "DENY", "action": "BLOCKED" } ] } } ] }