API Client for Tumeryk_Guardrails
Project description
Tumeryk Guardrails Client
The Tumeryk Guardrails Client is a Python package that provides an interface to the Tumeryk Guardrails API. The client allows you to easily use the API from your Python code.
Setup
To install the Tumeryk Guardrails Client, use pip:
pip install tumeryk_guardrails
Example .env File
TUMERYK_USERNAME=sample_username
TUMERYK_PASSWORD=sample_password
TUMERYK_POLICY=hr_policy
Simple Usage
You can use the Tumeryk Guardrails Client with minimal setup. The client will automatically load the configuration from the .env file if it exists. Here's an example of simple usage:
from dotenv import load_dotenv
load_dotenv()
import tumeryk_guardrails
messages = [{"role": "user", "content": "hi"}]
response = tumeryk_guardrails.tumeryk_completions(messages=messages)
print(response)
Manual Usage
The Tumeryk Guardrails Client uses chat.tmryk.com as the default base URL. However, you can change this URL if required. Here's how you can set a custom base URL:
import tumeryk_guardrails
# Set a custom base URL
tumeryk_guardrails.set_base_url("https://your-custom-url.com")
Configuration
The Tumeryk Guardrails Client uses environment variables to store credentials and policy. Here's an example of how to use environment variables:
import tumeryk_guardrails
import os
from dotenv import load_dotenv
# Load environment variables
load_dotenv()
# Retrieve credentials and policy from environment variables
username = os.getenv("TUMERYK_USERNAME")
password = os.getenv("TUMERYK_PASSWORD")
policy = os.getenv("TUMERYK_POLICY")
# Authenticate with Tumeryk Guardrails
tumeryk_guardrails.login(username, password)
# Retrieve available policies
policies = tumeryk_guardrails.get_policies()
print("Available Policies:", policies)
# Set the chosen policy
tumeryk_guardrails.set_policy(policy)
# Prepare a message for the guard service
messages = [{"role": "user", "content": "Example input to guard"}]
# Send a request to the guard service
response = tumeryk_guardrails.tumeryk_completions(messages)
print("Guard Response:")
print(response)
Response Structure
The guard service returns a structured response with comprehensive security metrics and detailed logging. Here's an example:
{
"messages": [
{
"role": "assistant",
"content": "Physics has no single founder. Ancient Greek philosophers like Aristotle, and later scientists such as Galileo, Newton, and Einstein all made foundational contributions.",
"stats": {
"total_calls": 1,
"total_time": 5.176722764968872,
"total_tokens": 64,
"total_prompt_tokens": 28,
"total_completion_tokens": 36,
"latencies": [
2.5881643295288086,
2.5885584354400635
],
"llm_process_time": 1.9073486328125e-06
}
}
],
"metrics": {
"violation": false,
"jailbreak_detection": false,
"topic_relevance": 1000,
"trust_score": 773,
"model_score": 739,
"real_time_score": 824,
"hallucination_score": -1.0,
"bias_score": {
"input": 990,
"output": 522
},
"toxicity_scores": {
"input": "Safe",
"output": "Safe"
},
"llama_guard_allowed": {
"input": true,
"output": true
},
"llama_guard_categories": {
"input": "Safe",
"output": "Safe"
},
"information": {
"300": "Low Prompt Injection Score",
"301": "Low Security Score"
},
"jailbreak_score": 991,
"moderation_score_input": 1000,
"moderation_score_output": 1000
},
"log": "\n# General stats\n\n- Total time: 4.45s\n - [1.17s][26.3%]: INPUT Rails\n - [2.60s][58.47%]: DIALOG Rails\n - [0.66s][14.79%]: OUTPUT Rails\n - [0.02s][0.44%]: Processing overhead \n- 2 LLM calls, 5.18s total duration, 56 total prompt tokens, 72 total completion tokens, 128 total tokens.\n\n# Detailed stats\n\n- [0.05s] INPUT (jailbreak detection heuristics): 3 actions (jailbreak_detection_heuristics, record_jailbreak_score, get_jailbreak_threshold), 0 llm calls []\n- [0.57s] INPUT (aegis guard check input): 2 actions (aegis_guard_check, record_guard_allowed), 0 llm calls []\n- [0.42s] INPUT (topic guard check input): 2 actions (topic_guard_check_input, record_topic_relevance), 0 llm calls []\n- [0.04s] INPUT (check bias input): 3 actions (check_bias, record_input_bias_score, get_input_fairness_threshold), 0 llm calls []\n- [0.08s] INPUT (mask sensitive data on input): 1 actions (mask_sensitive_data), 0 llm calls []\n- [2.60s] DIALOG (generate user intent): 1 actions (generate_user_intent), 2 llm calls [2.59s, 2.59s]\n- [0.51s] OUTPUT (aegis guard check output): 2 actions (aegis_guard_check, record_guard_allowed), 0 llm calls []\n- [0.05s] OUTPUT (check bias output): 3 actions (check_bias, record_output_bias_score, get_output_fairness_threshold), 0 llm calls []\n- [0.07s] OUTPUT (mask sensitive data on output): 1 actions (mask_sensitive_data), 0 llm calls []\n\n\n"
}
Key Response Components
Messages: Contains the assistant's response with detailed statistics including token usage, processing time, and latencies.
Metrics: Comprehensive security and quality metrics including:
trust_score: Overall trust rating (0-1000)model_score: Model-specific quality scorereal_time_score: Real-time processing scorejailbreak_score: Protection against jailbreak attemptsbias_score: Bias detection for input and outputtoxicity_scores: Safety classificationstopic_relevance: Relevance to intended topicshallucination_score: Detection of AI hallucinationsviolation: Boolean indicating policy violationsinformation: Additional security insights
Log: Detailed processing statistics showing:
- Processing time breakdown by rail type (INPUT, DIALOG, OUTPUT)
- LLM call statistics and token usage
- Individual action execution times and details
- Performance metrics for each processing stage
Available Methods
The Tumeryk Guardrails Client provides the following methods to interact with the Tumeryk Guardrails API:
login(username, password): Authenticate and store access token.get_policies(): Fetch available policies and return a list.set_policy(config_id): Set the configuration/policy to be used by the user.tumeryk_completions(messages): Send user input to the Guard service.get_base_url(): Get the current base URL.set_base_url(base_url): Set a new base URL.
Dependencies
- requests: Used for making HTTP requests to the API.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file tumeryk_guardrails-0.2.2.tar.gz.
File metadata
- Download URL: tumeryk_guardrails-0.2.2.tar.gz
- Upload date:
- Size: 4.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
84cfe40337dcf5b457c6d19b0bf072eacdbd5391d87cd3643655d4b4041341a2
|
|
| MD5 |
448b69f3bd727f4b428f79eb5c25c00d
|
|
| BLAKE2b-256 |
492c53bdf9288f5976a6bb1bd5faebbf667d6ff38dc3a7563b7e185bc618ccd6
|
File details
Details for the file tumeryk_guardrails-0.2.2-py3-none-any.whl.
File metadata
- Download URL: tumeryk_guardrails-0.2.2-py3-none-any.whl
- Upload date:
- Size: 3.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e4460cbc1b85c2ee8f7c27a08b430eed2d1586efb5e44130526a03e4e81a9387
|
|
| MD5 |
85f3ad17e491218e8941f18681bdd25f
|
|
| BLAKE2b-256 |
f0ba4e63459b62179d79cad3af9c9c7032b66d8e207e62527e992cdccdaef01d
|