AI Bias Detection and Ethics Compliance Agent
Project description
Veritas - AI Bias Detection and Ethics Compliance
Veritas audits sklearn-compatible models for group fairness issues, applies AIF360 mitigation when requested, retrieves AI ethics context from bundled knowledge bases, and produces deterministic or LLM-assisted markdown reports.
Features
- Canonical audit API for models and predictions
- AIF360 fairness metrics and threshold-based issue detection
- AIF360 mitigation registry with automatic strategy selection
- sklearn-compatible
VeritasClassifier - Bundled RAG knowledge bases with Chroma search and lexical fallback
- Import-time knowledge-base auto-initialization through
_bootstrap.py - CLI for knowledge-base init, status, and query
Installation
pip install veritas-ml
For local development:
pip install -e .
Create bias_params.json beside your script or in the working directory:
{
"protected_attributes": ["sex", "race"]
}
Quick Start
Audit Predictions
from veritas import AuditConfig, audit_predictions
config = AuditConfig(protected_attributes=["sex"])
result = audit_predictions(
y_true=[0, 1, 1, 0],
y_pred=[0, 1, 0, 0],
sensitive=[0, 1, 1, 0],
config=config,
X=[[1.0], [2.0], [3.0], [4.0]],
)
print(result.to_dict()["bias_issues"])
Audit a Trained Model
from sklearn.linear_model import LogisticRegression
from veritas import AuditConfig, audit_model
model = LogisticRegression(max_iter=500).fit(X_train, y_train)
config = AuditConfig(protected_attributes=["sex"])
audit = audit_model(model, X_test, y_test, sensitive_test, config)
print(audit.to_dict()["dataset_metrics"])
Run the Full Pipeline
from sklearn.linear_model import LogisticRegression
from veritas import AuditConfig, run_pipeline
config = AuditConfig(
protected_attributes=["sex", "race"],
dataset_name="training dataset",
)
result = run_pipeline(
LogisticRegression(max_iter=500),
X_train,
y_train,
sensitive_train,
config,
strategy="auto",
generate_report=True,
)
print(result.to_dict()["final_report"])
Use the sklearn Wrapper
from sklearn.ensemble import RandomForestClassifier
from veritas import VeritasClassifier
clf = VeritasClassifier(
base_estimator=RandomForestClassifier(n_estimators=100),
protected_attributes=["sex"],
run_audit=True,
apply_mitigation=True,
generate_report=True,
)
clf.fit(X_train, y_train, sensitive_features=sensitive_train)
print(clf.get_bias_summary())
print(clf.get_compliance_report())
Knowledge Bases
Veritas keeps import-time auto-initialization in _bootstrap.py. If ~/.veritas/vector_store/ does not exist, import-time bootstrap attempts to ingest the bundled knowledge assets. Search still works through bundled lexical fallback when Chroma is unavailable.
CLI:
veritas init --laws src/veritas/knowledge/ai_ethics_knowledge_base.pdf \
--algorithms src/veritas/knowledge/aif360_algorithms_documentation.txt
veritas status
veritas query --db laws "gender discrimination in hiring algorithms"
veritas query --db algorithms "reweighing disparate impact"
Public API
AuditConfigAuditResultMitigationResultPipelineResultaudit_predictions(...)audit_model(...)mitigate_model(...)run_pipeline(...)VeritasClassifierBiasDetectoras a thin compatibility adapter overaudit_model
Testing
veritas_venv/bin/python -m unittest discover -v
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 veritas_ml-1.0.3.tar.gz.
File metadata
- Download URL: veritas_ml-1.0.3.tar.gz
- Upload date:
- Size: 405.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.19
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0f18cccd4e9faca21dceb4a82561174bc2ca42c8a9b11948aba54a8631d0a037
|
|
| MD5 |
721c35ccaf39f4426d2b2ff3dd2e872a
|
|
| BLAKE2b-256 |
52092dcf51e471ac4d01e8ab427b37f538d096981781fba1d63b6ca75871c5a5
|
File details
Details for the file veritas_ml-1.0.3-py3-none-any.whl.
File metadata
- Download URL: veritas_ml-1.0.3-py3-none-any.whl
- Upload date:
- Size: 414.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.19
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0e320e931a457d8696c2bec99a8ad5ee6d5407a50c89bf7497c50b3852b7dd9f
|
|
| MD5 |
28792f62afb441f4a94d67a2545dae41
|
|
| BLAKE2b-256 |
8cc08549cbb2ee1cb670a93aa9b9fec0747a3b0ddd8077c8f7a1664bb7ab737a
|