Skip to main content

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

  • AuditConfig
  • AuditResult
  • MitigationResult
  • PipelineResult
  • audit_predictions(...)
  • audit_model(...)
  • mitigate_model(...)
  • run_pipeline(...)
  • VeritasClassifier
  • BiasDetector as a thin compatibility adapter over audit_model

Testing

veritas_venv/bin/python -m unittest discover -v

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

veritas_ml-1.0.3.tar.gz (405.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

veritas_ml-1.0.3-py3-none-any.whl (414.9 kB view details)

Uploaded Python 3

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

Hashes for veritas_ml-1.0.3.tar.gz
Algorithm Hash digest
SHA256 0f18cccd4e9faca21dceb4a82561174bc2ca42c8a9b11948aba54a8631d0a037
MD5 721c35ccaf39f4426d2b2ff3dd2e872a
BLAKE2b-256 52092dcf51e471ac4d01e8ab427b37f538d096981781fba1d63b6ca75871c5a5

See more details on using hashes here.

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

Hashes for veritas_ml-1.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 0e320e931a457d8696c2bec99a8ad5ee6d5407a50c89bf7497c50b3852b7dd9f
MD5 28792f62afb441f4a94d67a2545dae41
BLAKE2b-256 8cc08549cbb2ee1cb670a93aa9b9fec0747a3b0ddd8077c8f7a1664bb7ab737a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page