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.2.tar.gz (27.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.2-py3-none-any.whl (27.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: veritas_ml-1.0.2.tar.gz
  • Upload date:
  • Size: 27.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.2.tar.gz
Algorithm Hash digest
SHA256 f92cd99e16e38c4c1c1982040ec63941866f9758f7aa135a59d01c16330d5256
MD5 d162a62e975aacbe5abfd5a1b81ab8d1
BLAKE2b-256 bcd0d3f3ff3ff262791e8ac9cb1e6f071ce47a5116561d429be631fc9f6aadf3

See more details on using hashes here.

File details

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

File metadata

  • Download URL: veritas_ml-1.0.2-py3-none-any.whl
  • Upload date:
  • Size: 27.5 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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 6d6368170764e522b1f3ad99f79b64ffaeb2f237bd803d16a0a258d0b56a2396
MD5 4dd9b976c4ae556f4fac006787376beb
BLAKE2b-256 6b42f4155d33e40370ab10bbf7445174bdf20b5ae16a174d0126de86163763e3

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