Configuração de Guardrails
Você pode configurar guardrails usando aidputils como parte da seleção de um modelo básico usando OCIAIConf().
A configuração do Guardrails é fornecida ao selecionar um modelo básico no serviço OCI Generative AI. Neste exemplo, selecionamos o modelo xai.grok-4:
from aidputils.agents.toolkit.configs import OCIAIConf
guardrails_config = {
"name" : "<guardrailsName>",
"description" : "<guardrailsDescription>",
"policies" : [ ]
}
model_args = {}
llm_conf = OCIAIConf(model_provider='generic',
compartment_id='<compartment_ocid>',
model_args=model_args,
endpoint='https://inference.generativeai.<oci-region>.oci.oraclecloud.com',
model_id='xai.grok-4',
guardrails_config=guardrails_config)A configuração de guardrails é uma string semelhante a JSON que consiste em um array de políticas. No exemplo acima, ele é definido neste bloco de código em que <guardrailsName> e <guardrailsDescription> são um nome e uma descrição definidos pelo usuário:
guardrails_config = {
"name" : "<guardrailsName>",
"description" : "<guardrailsDescription>",
"policies" : [ ]
}Cada política tem as seguintes chaves:
| Key | Obrigatório | Descrição | Tipo de Dados | Valor padrão |
|---|---|---|---|---|
policyName
|
No | Nome personalizado da política | String | N/D |
policyType
|
Sim | Tipo de política de guardrail a ser aplicada.
Os valores permitidos incluem:
|
ENUM | |
policyDescription
|
No | Uma descrição para a política | String | |
scope
|
No | O escopo define onde os guardrails são aplicados.
Os valores permitidos incluem:
|
ENUM | |
action
|
No | A ação a ser tomada quando a política é violada
Os valores permitidos incluem:
|
ENUM | |
threshold
|
No | Limite para detecção.
Intervalo é uma probabilidade entre 0 e 1. |
flutuante | |
piiCategories
|
Sim | Categoria de dados de PII a serem detectados junto com sua ação e ativação. | Array |
piiCategories também é um array de objetos semelhantes a JSON que usa as seguintes chaves:
| Key | Obrigatório | Descrição | Tipo de Dados | Valor padrão |
|---|---|---|---|---|
category
|
Sim | A categoria PII a ser detectada.
Os valores permitidos incluem:
|
String | N/D |
isEnabled
|
No | Ative a detecção da categoria de PII.
Os valores permitidos incluem:
|
ENUM | |
action
|
No | Ação a ser tomada se a categoria PII for detectada. Substitua a ação acima.
Os valores permitidos incluem:
|
String |
Exemplo: Configuração Completa de Corrimões
- moderação de conteúdo só é aplicada na resposta do agente,
- a injeção do prompt bloqueará solicitações do usuário se detectadas,
- O PII é detectado na resposta do agente e na solicitação do usuário. Cada categoria de PII é tratada de forma diferente.
guardrails_config = {
"policies" : [ {
"policyType" : "CONTENT_MODERATION",
"policyName" : "Content Moderation prevention",
"policyDescription" : "Choose an action to take when hate, sexual, violence, toxic, derogatory, or harassment content is detected in either the user input query or the agent response.",
"scope" : "AGENT_RESPONSE",
"action" : "INFORM",
"threshold" : 0.5,
"categories" : [ ]
}, {
"policyType" : "PROMPT_ATTACKS_PREVENTION",
"policyName" : "Prompt Injection prevention",
"policyDescription" : "Choose action when prompt injection is detected on the user query.",
"scope" : "USER_REQUEST",
"action" : "BLOCK",
"threshold" : 0.5
}, {
"policyType" : "PII_DETECTION",
"policyName" : "Personally Identifiable Information (PII) detection",
"policyDescription" : "Choose an action to take when PII entities are detected in either the user input query or the agent response.",
"scope" : "AGENT_RESPONSE",
"action" : "INFORM",
"threshold" : 0.5,
"piiCategories" : [ {
"category" : "PERSON",
"isEnabled" : False,
"action" : "INFORM"
}, {
"category" : "ADDRESS",
"isEnabled" : False,
"action" : "INFORM"
}, {
"category" : "TELEPHONE_NUMBER",
"isEnabled" : True,
"action" : "MASK"
}, {
"category" : "EMAIL",
"isEnabled" : True,
"action" : "MASK"
} ]
}, {
"policyType" : "PII_DETECTION",
"policyName" : "Personally Identifiable Information (PII) detection",
"policyDescription" : "Choose an action to take when PII entities are detected in either the user input query or the agent response.",
"scope" : "USER_REQUEST",
"action" : "INFORM",
"threshold" : 0.5,
"piiCategories" : [ {
"category" : "PERSON",
"isEnabled" : True,
"action" : "INFORM"
}, {
"category" : "ADDRESS",
"isEnabled" : True,
"action" : "INFORM"
}, {
"category" : "TELEPHONE_NUMBER",
"isEnabled" : True,
"action" : "BLOCK"
}, {
"category" : "EMAIL",
"isEnabled" : False,
"action" : "INFORM"
} ]
} ]
}