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.0.tar.gz (400.2 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.0-py3-none-any.whl (409.0 kB view details)

Uploaded Python 3

File details

Details for the file veritas_ml-1.0.0.tar.gz.

File metadata

  • Download URL: veritas_ml-1.0.0.tar.gz
  • Upload date:
  • Size: 400.2 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.0.tar.gz
Algorithm Hash digest
SHA256 ee2b498d46af286739523d6b78ecf3742194cf3d9ceee356408043471d9d38d5
MD5 d6bd081fdbbe22eec2437914c8db4803
BLAKE2b-256 c9d8dfab87347ed4c7bf6c47aecd575974699eb014825dc22630f04e22218ea8

See more details on using hashes here.

File details

Details for the file veritas_ml-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: veritas_ml-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 409.0 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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e27fa3bda56e400ae72078d0db0d9e8d4438a60bb9cc1d6854a6ebd021c57ce5
MD5 a162c8929cd1402a0abc07f584558801
BLAKE2b-256 3995b2336cc067aa32b7bdf7676f46476aff01a42c414db486776034ca4858d8

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