Verity - AI Governance Through Enforcement (API + CLI + live audit SDK)
Project description
Verity - AI Governance Through Enforcement
Complete AI model audit system with CI/CD integration, evidence storage, and regulator-ready exports.
Quick Start
Install Dependencies
# Install root dependencies (concurrently)
npm install
# Install website and dashboard dependencies
npm run install:all
Run Everything
# Run website, dashboard, and API together
npm run dev:all
This will start:
- Website: http://localhost:3000
- Dashboard: http://localhost:3001
- API: http://localhost:8000
Run Individual Services
# Just the website
npm run dev:website
# Just the dashboard
npm run dev:dashboard
# Just the API
npm run dev:api
Project Structure
ai-audit-ci/
├── audit/ # CLI audit tool
│ ├── cli.py # Main CLI interface
│ ├── metrics.py # Fairness metrics
│ ├── evidence.py # Report generation
│ └── export.py # PDF/JSON exports
├── api/ # FastAPI backend
│ ├── main.py # API server
│ ├── database.py # Database models
│ ├── routes/ # API routes
│ └── manage.py # Management CLI
├── website/ # Marketing website (React)
│ └── src/
│ ├── pages/ # Website pages
│ └── components/
└── dashboard/ # Dashboard app (React)
└── src/
├── pages/ # Dashboard pages
└── components/
Features
Core Audit Tool
- ✅ Fairness metrics (demographic parity, equal opportunity, disparate impact)
- ✅ SHA-256 hashing for all artifacts
- ✅ Immutable audit reports
- ✅ GitHub Actions integration
- ✅ Regulator-ready PDF/JSON exports
API & Evidence Store
- ✅ User authentication
- ✅ Organization & project management
- ✅ API key management
- ✅ Append-only audit storage
- ✅ Commit context tracking
- ✅ Policy versioning
Dashboard
- ✅ Project overview with statistics
- ✅ Audit timeline visualization
- ✅ Trend charts
- ✅ Policy management
- ✅ Regulator portal (Enterprise)
Website
- ✅ Dark, professional design
- ✅ Responsive layout
- ✅ Animated interactions
- ✅ Enterprise messaging
Development
Prerequisites
- Python 3.11+
- Node.js 18+
- npm or yarn
Setup
- Install Python dependencies:
cd ai-audit-ci
pip install -r requirements.txt
- Install Node dependencies:
npm run install:all
- Initialize database:
cd api
python -m api.main
- Run all services:
npm run dev:all
Usage
Run an Audit
cd ai-audit-ci
python -m audit.cli run --config examples/tabular/config.yml
Upload Audit Evidence
Set environment variables:
export VERITY_UPLOAD_TOKEN=your_project_upload_token
export VERITY_API_URL=https://verityai-production.up.railway.app
Then run with upload:
python -m audit.cli run --config config.yml --upload
GitHub Actions
Add to .github/workflows/audit.yml:
name: AI Governance Audit (Verity)
on: [pull_request]
jobs:
audit:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.11"
- run: |
pip install verity-audit
verity run --config config.yml --upload
env:
VERITY_UPLOAD_TOKEN: ${{ secrets.VERITY_UPLOAD_TOKEN }}
DATASET_URL: ${{ secrets.DATASET_URL }} # For datasets not in repo
GITHUB_SHA: ${{ github.sha }}
GITHUB_REF_NAME: ${{ github.ref_name }}
GITHUB_REPOSITORY: ${{ github.repository }}
Note: For datasets stored outside the repository (S3, GCS, etc.), see CI/CD Dataset Patterns for configuration options.
Live audit SDK (production LLM calls)
Live audits are automatic via swap-in clients only: install the package, set env vars, replace the vendor client with a Verity wrapper.
There is no separate “send audit” call — prompts and completions are captured on a non-blocking side channel to POST /v1/live-audits.
pip install "verity-audit[live]"
Use your project upload token (same as CLI uploads). You can set either name:
export VERITY_API_KEY=your_project_upload_token
# or: export VERITY_UPLOAD_TOKEN=...
export VERITY_API_URL=https://verityai-production.up.railway.app
Public facade (verity package)
from verity import VerityOpenAI
client = VerityOpenAI(
openai_api_key="...",
verity_api_key="...", # or rely on VERITY_API_KEY / VERITY_UPLOAD_TOKEN in the environment
)
resp = client.chat.completions.create(
model="gpt-4o-mini",
messages=[{"role": "user", "content": "Hello"}],
)
Async: from verity import VerityAsyncOpenAI. Anthropic: VerityAnthropic / VerityAsyncAnthropic. Gemini (google.genai): VerityGemini.
Lower-level module (verity_live) — same behavior with api_key + optional verity_upload_token / verity_api_url (or env vars above).
API Endpoints
POST /v1/audits- Upload audit evidenceGET /v1/audits/{audit_id}- Retrieve auditPOST /auth/signup- Create accountPOST /auth/login- Sign inGET /dashboard/orgs/{org_id}/projects- List projectsGET /dashboard/projects/{project_id}/audits- Get audit historyGET /dashboard/projects/{project_id}/trends- Get trend data
See api/README.md for full API documentation.
License
Proprietary - All rights reserved
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 verity_audit-1.4.1.tar.gz.
File metadata
- Download URL: verity_audit-1.4.1.tar.gz
- Upload date:
- Size: 139.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a72cfa7d28c390af317558aaf20f3ad8fff13044da7ad9147389af76843b44be
|
|
| MD5 |
60ad4cc507796ffa921e63b1d35ec5fd
|
|
| BLAKE2b-256 |
b0abc2535693aabc5052a5b8cce1687eb0e1accaa17688356f76939ae02fa66c
|
File details
Details for the file verity_audit-1.4.1-py3-none-any.whl.
File metadata
- Download URL: verity_audit-1.4.1-py3-none-any.whl
- Upload date:
- Size: 153.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b18f5bdca5fbc2017bacf98d38a88a9cb89575c32060262a56fd941b3f347485
|
|
| MD5 |
b05adb31b25fef6a98b8908a9a28d834
|
|
| BLAKE2b-256 |
090ca4c64e7b25d4b4db29840fa5fe484457c89ab107f046a63566f89c9a8cf0
|