Verity - AI Governance Through Enforcement (API + CLI + live audit SDK)
Reason this release was yanked:
outdated
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)
Install provider libraries alongside the package:
pip install "verity-audit[live]"
Set the same upload token and API base URL as for CLI uploads:
export VERITY_UPLOAD_TOKEN=your_project_upload_token
export VERITY_API_URL=https://verityai-production.up.railway.app
Use Verity-prefixed clients instead of the vendor SDK entrypoints. They forward every call to the real client, capture prompts and completions, and POST them to POST /v1/live-audits (fail-open: if the upload fails, your app still gets the model response).
OpenAI
from verity_live import VerityOpenAI
client = VerityOpenAI(api_key="...")
resp = client.chat.completions.create(
model="gpt-4o-mini",
messages=[{"role": "user", "content": "Hello"}],
)
Async: from verity_live import VerityAsyncOpenAI.
Anthropic
from verity_live import VerityAnthropic
client = VerityAnthropic(api_key="...")
resp = client.messages.create(
model="claude-3-5-sonnet-20241022",
max_tokens=1024,
messages=[{"role": "user", "content": "Hello"}],
)
Google Gemini (google.genai)
from verity_live import VerityGenaiClient
client = VerityGenaiClient(api_key="...")
resp = client.models.generate_content(model="gemini-2.0-flash", contents="Hello")
Optional per-client overrides: verity_upload_token=..., verity_api_url=... (constructor kwargs are stripped before the real SDK sees them).
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.0.tar.gz.
File metadata
- Download URL: verity_audit-1.4.0.tar.gz
- Upload date:
- Size: 138.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
25c1ac25eb578f441c37a819f30f6472a3152309f02f6202fe46188a4e13b73a
|
|
| MD5 |
8596d7012aecef578c539b5fff4039ad
|
|
| BLAKE2b-256 |
fe6785dc46ea5e2416da4579a758cb8630a51ad067c8ac9845a9fbb81a87e459
|
File details
Details for the file verity_audit-1.4.0-py3-none-any.whl.
File metadata
- Download URL: verity_audit-1.4.0-py3-none-any.whl
- Upload date:
- Size: 152.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 |
580df618d6654f75ba256348d1fa36ae4911034013b1f684e15aded20e554fa8
|
|
| MD5 |
159d06fa312b51205dc4da4529e752ab
|
|
| BLAKE2b-256 |
0e00a8bec689f85cba13a85775d346e0e2d8816b7d83ce1c680aa5874a0f6b3d
|