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 :
  • CONTENT_MODERATION
  • PROMPT_ATTACKS_PREVENTION
  • PII_DETECTION
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 :
  • USER_REQUEST
  • AGENT_RESPONSE
  • BOTH
ENUM  
action No Action à effectuer en cas de violation de la stratégie
Les valeurs autorisées sont les suivantes :
  • INFORM
  • BLOCK
  • ALLOW MASK

    (uniquement pour PII_DETECTION)

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 :
  • PERSON
  • ADDRESS
  • TELEPHONE_NUMBER
  • EMAIL
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 :
  • True
  • False
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 :
  • INFORM
  • BLOCK
  • ALLOW
  • MASK
Chaîne  

Exemple : configuration complète des garde-corps

Dans ce cas, nous appliquons les trois politiques suivantes :
  • 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" 
      } ] 
    } ] 
  }