Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Gunakan ApplyGuardrail API dalam 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 memanggil model dasar.
Fitur ApplyGuardrail API meliputi:
-
Validasi konten — Anda dapat mengirim input atau output teks apa pun ke ApplyGuardrail API untuk membandingkannya dengan aturan penghindaran topik yang Anda tentukan, 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 model pondasi — ApplyGuardrail API dipisahkan dari model dasar. Anda sekarang dapat menggunakan Guardrails tanpa memanggil Model Foundation. Anda dapat menggunakan hasil penilaian untuk merancang pengalaman pada aplikasi AI generatif Anda.
Panggil ApplyGuardrail alur aplikasi Anda
Permintaan 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 input ke LLM). Sumber harus diatur ke OUTPUT kapan pagar pembatas keluaran model harus diterapkan (biasanya respons LLM).
Saat menggunakanApplyGuardrail, Anda menentukan pag guardrailIdentifier ar guardrailVersion pembatas dan yang ingin Anda gunakan. Anda juga dapat mengaktifkan pelacakan pagar pembatas, yang menyediakan 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: 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
Output dari ApplyGuardrail permintaan tergantung pada tindakan pagar pembatas yang diambil pada konten yang diteruskan.
-
Jika pagar pembatas campur tangan di mana konten hanya ditutupi, konten yang tepat dikembalikan dengan masking diterapkan.
-
Jika pagar pembatas mengintervensi dan memblokir konten permintaan, bidang output akan menjadi teks tunggal, yang merupakan pesan yang dikalengkan berdasarkan konfigurasi pagar pembatas.
-
Jika tidak ada tindakan pagar pembatas yang diambil pada konten permintaan, array output kosong.
- Guardrails takes no action
-
Minta contoh
{
"source": "OUTPUT",
"content": [
"text": {
"text": "Hi, my name is Zaid. Which car brand is reliable?"
}
]
}
Contoh tanggapan
{
"usage": {
"topicPolicyUnitsProcessed": 1,
"contentPolicyUnitsProcessed": 1,
"wordPolicyUnitsProcessed": 0,
"sensitiveInformationPolicyFreeUnits": 0
},
"action": "NONE",
"outputs": [],
"assessments": [{}]
}
- Guardrails blocks content
-
Contoh tanggapan
{
"usage": {
"topicPolicyUnitsProcessed": 1,
"contentPolicyUnitsProcessed": 1,
"wordPolicyUnitsProcessed": 0,
"sensitiveInformationPolicyFreeUnits": 0
},
"action": "GUARDRAIL_INTERVENED",
"outputs": [{
"text": "Configured guardrail canned message (i.e., can't respond)"
}],
"assessments": [{
"topicPolicy": {
"topics": [{
"name": "Cars",
"type": "DENY",
"action": "BLOCKED"
}]
},
"sensitiveInformationPolicy": {
"piiEntities": [{
"type": "NAME",
"match": "ZAID",
"action": "ANONYMIZED"
}],
"regexes": []
}
}]
}
- Guardrails masks content
-
Contoh tanggapan
Pagar pembatas mengintervensi dengan menutupi nama. ZAID
{
"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": "ANONYMIZED"
}],
"regexes": []
}
}]
}
- AWS CLI example
-
Contoh masukan
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 (blok konten)
{
"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"
}
]
}
}
]
}
Kembalikan output penuh sebagai tang ApplyGuardrail gapan
Konten dianggap terdeteksi jika melanggar konfigurasi pagar pembatas Anda. Misalnya, landasan kontekstual dianggap terdeteksi jika landasan atau skor relevansi kurang dari ambang batas yang sesuai.
Secara default, ApplyGuardrail operasi hanya mengembalikan konten yang terdeteksi dalam respons. Anda dapat menentukan outputScope bidang dengan FULL nilai untuk mengembalikan output penuh. Dalam hal ini, respons juga akan menyertakan entri yang tidak terdeteksi untuk debugging yang ditingkatkan.
Anda dapat mengonfigurasi perilaku yang sama ini di Converse operasi Invoke dan dengan menyetel pelacakan ke opsi penuh yang diaktifkan.
Cakupan keluaran lengkap tidak berlaku untuk filter kata atau regex di filter informasi sensitif. Ini berlaku untuk semua kebijakan penyaringan lainnya, termasuk informasi sensitif dengan filter yang dapat mendeteksi informasi identitas pribadi (PII).