Skip to content

Releases: anulum/director-ai

v1.2.0

Choose a tag to compare

@anulum anulum released this 27 Feb 15:06

What's New

Score Caching

LRU cache with blake2b key hashing and configurable TTL — eliminates redundant NLI/embedding computation during streaming.

scorer = CoherenceScorer(threshold=0.6, cache_size=1024, cache_ttl=300)

Framework Integrations

  • LangGraphdirector_ai_node() factory + director_ai_conditional_edge() for state graph routing
  • Haystack 2.xDirectorAIChecker component with run(query, replies) interface
  • CrewAIDirectorAITool for agent-based workflows

Quantized NLI

8-bit model loading via bitsandbytes for <80ms GPU inference:

pip install director-ai[quantize]
scorer = CoherenceScorer(nli_quantize_8bit=True, nli_device="cuda")

Upgraded Embeddings

SentenceTransformerBackend with BAAI/bge-large-en-v1.5 (default) for higher-quality vector retrieval:

pip install director-ai[embeddings]

MkDocs Documentation Site

Full documentation at anulum.github.io/director-ai:

  • User guides (scoring, streaming, evidence, config)
  • 6 integration pages (SDK, LangChain, LlamaIndex, LangGraph, Haystack, CrewAI)
  • API reference (mkdocstrings)
  • Production deployment guides (scaling, Docker, Prometheus)
  • Domain cookbooks (legal, medical, finance)

Enhanced Demo

Side-by-side comparison tab with token-level HTML highlighting (green/yellow/red + strikethrough for halted tokens).

Community

  • GitHub issue templates (bug report, feature request)
  • PR template
  • Good first issues — 10 starter tasks for contributors

Stats

  • 374 tests passing across Python 3.10/3.11/3.12
  • 50 files changed, 2,464 insertions
  • CI: lint, format, mypy, security audit — all green

Install

pip install director-ai==1.2.0

Full Changelog: v1.1.0...v1.2.0

v1.1.0

Choose a tag to compare

@anulum anulum released this 26 Feb 22:33

What's New

Pluggable NLI Backends

  • NLIScorer(backend="minicheck") — MiniCheck-DeBERTa-L as alternative to default DeBERTa
  • Graceful fallback to heuristic when backend package not installed

Native LLM Providers

  • CoherenceAgent(provider="openai") — reads OPENAI_API_KEY from env
  • CoherenceAgent(provider="anthropic") — reads ANTHROPIC_API_KEY from env
  • Backward-compatible: llm_api_url= and default mock still work

CLI Benchmark Runner

  • director-ai eval --dataset aggrefact --max-samples 100 --output results.json
  • Delegates to benchmark suite with comparison table output

Streaming Halt Callbacks

  • StreamingKernel(on_halt=callback) — fires with StreamSession on halt
  • SafetyKernel(on_halt=callback) — fires with score on halt

SQLite Usage Dashboard

  • GET /v1/stats — summary statistics
  • GET /v1/stats/hourly — hourly breakdown
  • GET /v1/dashboard — inline HTML dashboard
  • Auto-records all reviews via the API server

Fixes

  • CI type check now excludes benchmarks directory from mypy
  • Docs workflow no longer requires deleted [research] extra

Full Changelog: v1.0.0...v1.1.0

v1.0.0 — Production Stable Release

Choose a tag to compare

@anulum anulum released this 26 Feb 02:07

v1.0.0 — Production Stable Release

Director-Class AI is a real-time LLM hallucination guardrail.

Highlights

  • Enterprise modules: Policy, AuditLogger, TenantRouter, InputSanitizer
  • Async scorer: CoherenceScorer.areview()
  • LangChain + LlamaIndex integrations
  • Optional extras: [langchain], [llamaindex], [server], [train], [nli], [vector]
  • CLI: director-ai serve | score | batch | ingest
  • Backfire Kernel: 6-crate Rust workspace (PyO3 FFI, UPDE, SEC, L16, SSGF, observers)

Research Purge (complete)

All research modules permanently removed from the package:

  • src/director_ai/research/ deleted
  • core/bridge.py deleted
  • [research] extra deleted
  • All research docs, notebooks, and Rust "consciousness" naming purged
  • Proof: find . -name "*research*" -o -name "*consciousness*" returns zero results

Test Results

  • Python: 290 passed, 8 skipped
  • Rust: 152 passed
pip install director-ai

v0.9.0

Choose a tag to compare

@anulum anulum released this 25 Feb 14:28

v0.9.0

Added

  • DeBERTa fine-tuning pipeline — data pipeline, training scripts, GPU/chunked scoring
  • AggreFact benchmark suite — 5 result files (baseline, fine-tuned base/large, comparison)
  • Core hardening — 24 test-enforced items: lazy torch import, thread safety, _clamp utility, singular metric guard, 1-D eigvecs fallback, history cap, NLI RuntimeError, etc.
  • Test count: 144 → 375 (2.6x increase)

Changed

  • CI: switched formatter from black to ruff format
  • Backfire-kernel FFI refactored, slop cleanup

Fixed

  • NLI data pipeline: ClassLabel cast for stratified split
  • NLI scorer: None guards for mypy attr-defined errors
  • 24 hardening test failures resolved

v0.8.2

Choose a tag to compare

@anulum anulum released this 25 Feb 14:27

Real benchmark results, code quality cleanup

v0.8.1

Choose a tag to compare

@anulum anulum released this 23 Feb 13:36

What's Changed

Added

  • Semantic off-topic gate: _semantic_divergence() in CoherenceScorer uses sentence-transformers cosine similarity to detect off-topic responses before falling through to string-match for value accuracy
  • Directory ingestion: VectorGroundTruthStore.ingest_from_directory(path, glob) recursively reads .txt, .md, and .jsonl files

Changed

  • ChromaBackend now requires sentence-transformers (raises ImportError instead of silent fallback)
  • Factual scoring cascade: NLI → semantic gate (off-topic detection) → string match
  • README: removed pending benchmark placeholders, condensed research section

Details

  • 397 tests passing, ruff clean
  • Full changelog: CHANGELOG.md

v0.8.0 — Credibility Release

Choose a tag to compare

@anulum anulum released this 22 Feb 20:13

Highlights

  • Configurable GroundTruthStore — no more hardcoded demo facts; pass facts= to constructor or use SAMPLE_FACTS for the original data
  • Real semantic retrievalChromaBackend now uses SentenceTransformerEmbeddingFunction (all-MiniLM-L6-v2) with graceful fallback
  • Streaming coherence fixprocess_streaming() evaluates accumulated text, not individual tokens
  • Bulk ingestionVectorGroundTruthStore.ingest(texts, metadatas) + CLI director-ai ingest command (.txt / .jsonl)
  • Backfire Kernel — Rust safety gate: 6,429 LOC, 153 tests, 29 Criterion benchmarks, 7,609x gradient speedup via analytic Jacobian
  • LangChain integrationCoherenceCallbackHandler (optional [langchain] extra)
  • Consumer-focused README — "drop-in coherence guardrail" positioning; SCPN research in collapsible section

Breaking Changes

  • GroundTruthStore() now starts empty. Use GroundTruthStore(facts=SAMPLE_FACTS) for the old behaviour.

Install

pip install director-ai==0.8.0

Stats

  • 397 tests passing (Python 3.10–3.12)
  • ruff + black + mypy clean
  • ~6,429 Rust LOC in backfire-kernel (not included in PyPI wheel — separate release)

Full changelog: https://github.com/anulum/director-ai/blob/v0.8.0/CHANGELOG.md