import osfrom enkryptai_sdk import *from dotenv import load_dotenvload_dotenv()ENKRYPT_API_KEY = os.getenv("ENKRYPTAI_API_KEY")ENKRYPT_BASE_URL = os.getenv("ENKRYPTAI_BASE_URL") or "https://api.enkryptai.com"guardrails_client = GuardrailsClient(api_key=ENKRYPT_API_KEY, base_url=ENKRYPT_BASE_URL)test_guardrails_policy_name = "Test Guardrails Policy"sample_detectors = { "pii": { "enabled": False, "entities": [ "pii", "secrets", "ip_address", "url" ] }, "nsfw": { "enabled": True }, "toxicity": { "enabled": False }, "topic_detector": { "topic": ["science"], "enabled": False }, "injection_attack": { "enabled": True }, "keyword_detector": { "enabled": False, "banned_keywords": [] }, "policy_violation": { "enabled": True, "need_explanation": True, "policy_text": "Do not allow any illegal or immoral activities." # Or we can also give coc_policy_name of a saved Code of Conduct Policy # Instead of policy_text # "coc_policy_name": "Test CoC Policy"" }, "bias": { "enabled": False }, "sponge_attack": { "enabled": False } }# Create a policy with a dictionaryadd_policy_response = guardrails_client.add_policy( policy_name=test_guardrails_policy_name, config=copy.deepcopy(sample_detectors), description="Sample custom security policy")# Or create a policy with GuardrailsConfig objectinjection_config = GuardrailsConfig.injection_attack()add_policy_response = guardrails_client.add_policy( policy_name=test_guardrails_policy_name, config=injection_config, description="Detects prompt injection attacks")print(add_policy_response)assert add_policy_response.message == "Policy details added successfully"# Print as a dictionaryprint(add_policy_response.to_dict())
Get Policy
Retrieve existing policies by name.
Option to refresh the cache if current data is outdated.
Copy
Ask AI
# Retrieve policy configurationpolicy = guardrails_client.get_policy(policy_name=test_guardrails_policy_name)print(policy)# Get other fieldsprint(policy.name)print(policy.detectors)# Print as a dictionaryprint(policy.to_dict())print(policy.detectors.to_dict())
Modify Policy
Modify existing policies.
Update name, description, and detector configurations.
Copy
Ask AI
# Update policy with new configuration# Similar to add, we can use a dictionary or GuardrailsConfig objectnew_detectors_dict = copy.deepcopy(sample_detectors)# Modify the detectors as needed# Example: Enable bias detectionnew_detectors_dict["bias"]["enabled"] = Truenew_config = new_detectors_dict or GuardrailsConfig.bias() # Switch to bias detectionmodify_policy_response = guardrails_client.modify_policy( policy_name=test_guardrails_policy_name, guardrails_config=new_config, description="Updated to detect bias")print(modify_policy_response)assert modify_policy_response.message == "Policy details updated successfully"# Print as a dictionaryprint(modify_policy_response.to_dict())
Delete Policy
Remove policies that are no longer needed.
Copy
Ask AI
# Remove a policydelete_policy_response = guardrails_client.delete_policy(policy_name=test_guardrails_policy_name)print(delete_policy_response)assert delete_policy_response.message == "Policy details deleted successfully"# Print as a dictionaryprint(delete_policy_response.to_dict())
List Policies
Retrieve a list of all policies.
Copy
Ask AI
# List all policiespolicies = guardrails_client.get_policy_list()print(policies)# Get the first policyprint(policies.policies[0])print(policies.policies[0].name)# Print as a dictionaryprint(policies.to_dict())
Apply a specific policy to detect and filter content.
Utilize custom configurations for various use cases.
Copy
Ask AI
# Use policy to detectpolicy_detect_response = guardrails_client.policy_detect( policy_name=test_guardrails_policy_name, text="Check this text for policy violations")print(policy_detect_response)# Print as a dictionaryprint(policy_detect_response.to_dict())