Installing FutureAGI SDK
Copy
Ask AI
pip install futureagi
Initializing FutureAGI Protect
Copy
Ask AI
from fi.evals import Protect
protector = Protect(fi_api_key="<your_api_key>",
fi_secret_key="<your_api_secret>") # Optional, if you want to set the API key and secret key manually
Click here to learn how to access your API keys.
It’s recommended to set the API key and secret key as environment variables.
Define Protect Rules and the Action to take
Copy
Ask AI
# Example Ruleset
rules = [
{
"metric": "Tone",
"contains": ["anger", "fear"],
"type": "any"
},
{
"metric": "Toxicity"
}
]
action = "This message cannot be displayed"
Apply Protect on a text
Copy
Ask AI
# Apply the rules to a text
response = protector.protect("Hello, world!",
protect_rules=rules,
action=action,
reason=True,
timeout=25)
print(response)
Example Script using Anthropic Client and FutureAGI Protect
Copy
Ask AI
# Define the environment variables
# export ANTHROPIC_API_KEY=<your_api_key>
# export FI_API_KEY=<your_api_key>
# export FI_SECRET_KEY=<your_api_secret>
from anthropic import Anthropic
from fi.evals import Protect
anthropic = Anthropic()
protector = Protect()
response = anthropic.messages.create(
max_tokens=1000,
model="claude-3-5-sonnet-20240620",
messages=[
{"role": "user", "content": "Hi, I am a student, Can you help me with my homework?"}
]
)
rules = [
{
"metric": "Tone",
"contains": ["anger", "fear"],
"type": "any"
},
{
"metric": "Toxicity"
}
]
action = "This message cannot be displayed"
response_to_protect = response.content[0].text
protect_response = protector.protect(response_to_protect,
protect_rules=rules,
action=action,
reason=True,
timeout=25)
print(protect_response)
print(response_to_protect)
Optionally you can just use the
protect function from the FutureAGI SDK, without initializing the Protect class.Copy
Ask AI
from fi.evals import protect
rules = [
{
"metric": "Tone",
"contains": ["anger", "fear"],
"type": "any"
},
]
action = "This message cannot be displayed"
protected_response = protect("Hello, world!",
protect_rules=rules,
action=action,
reason=True,
timeout=25)
print(protected_response)