Configuration des garde-fous
Vous pouvez configurer des garde-corps à l'aide d'aideputils dans le cadre de la sélection d'un modèle de base à l'aide de OCIAIConf().
La configuration Guardrails est fournie lors de la sélection d'un modèle de base à partir du service OCI Generative AI. Dans cet exemple, nous sélectionnons le modèle 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)La configuration des garde-corps est une chaîne de type JSON composée d'un tableau de stratégies. Dans l'exemple ci-dessus, il est défini dans ce bloc de code où <guardrailsName> et <guardrailsDescription> sont un nom et une description définis par l'utilisateur :
guardrails_config = {
"name" : "<guardrailsName>",
"description" : "<guardrailsDescription>",
"policies" : [ ]
}Chaque stratégie possède les clés suivantes :
| Légende | Obligatoire | Description | Type de données | Valeur par défaut |
|---|---|---|---|---|
policyName
|
No | Nom personnalisé de la stratégie | Chaîne | S/O |
policyType
|
Oui | Type de politique de garde-corps à appliquer.
Les valeurs autorisées sont les suivantes :
|
ENUM | |
policyDescription
|
No | Description de la stratégie | Chaîne | |
scope
|
No | La portée définit où les garde-corps sont appliqués.
Les valeurs autorisées sont les suivantes :
|
ENUM | |
action
|
No | Action à effectuer en cas de violation de la stratégie
Les valeurs autorisées sont les suivantes :
|
ENUM | |
threshold
|
No | Seuil de détection.
La plage est une probabilité comprise entre 0 et 1. |
float | |
piiCategories
|
Oui | Catégorie de données d'informations d'identification personnelle à détecter avec leur action et leur activation. | Array |
piiCategories est également un tableau d'objets de type JSON qui utilise les clés suivantes :
| Légende | Obligatoire | Description | Type de données | Valeur par défaut |
|---|---|---|---|---|
category
|
Oui | Catégorie d'informations d'identification personnelle à détecter.
Les valeurs autorisées sont les suivantes :
|
Chaîne | S/O |
isEnabled
|
No | Activez la détection de la catégorie d'informations d'identification personnelle.
Les valeurs autorisées sont les suivantes :
|
ENUM | |
action
|
No | Action à effectuer si la catégorie d'informations d'identification personnelle est détectée. Remplacer l'action ci-dessus.
Les valeurs autorisées sont les suivantes :
|
Chaîne |
Exemple : configuration complète des garde-corps
- la modération de contenu n'est appliquée qu'à la réponse de l'agent,
- l'injection d'invite bloque les demandes utilisateur si elles sont détectées,
- Les informations d'identification personnelle sont détectées sur la réponse de l'agent et sur la demande de l'utilisateur. Chaque catégorie d'IPI est traitée différemment.
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"
} ]
} ]
}