Skip to content

v1.2.0 - Explainability Reporting

Latest
Compare
Choose a tag to compare
@segfly segfly released this 14 Jul 19:44
· 1 commit to main since this release
9331f70

Vulcan v1.2.0 Explainability Reports are Here!

In this release, we're excited to announce Vulcan's latest feature: explainability reporting! 🎉

Vulcan's explainability features allow AI application developers and operators deeper insight into how their AI-powered systems make decisions. Instead of using large complex prompts with opaque LLM models, Vulcan's approach combines rule-based logic with LLM microprompts, allowing for vastly improved traceability in AI-powered decision-making processes.

Enabling explainability reporting is easy! First, create your Facts and Rule definitions:

engine = RuleEngine()

engine.rule(
    name="Order more apples if delicious",
    when=condition(f"Are {Inventory.apple_kind} considered delicious by most people?"),
    then=action(partial(QueuedOrder, apples=50)),
)

Then set your initial Fact state and evaluate your rules with auditing enabled. A report will be available when the evaluation completes.

engine.fact(Inventory(apples=5, apple_kind="fuji"))

engine.evaluate(audit=True)
engine.yaml_report()
report:
  iterations:
  - id: 0
    timestamp: '2025-07-14T16:07:14.742891Z'
    elapsed: 2.441
    matches:
    - rule: 205a7ab3:Order more apples if delicious
      timestamp: '2025-07-14T16:07:14.742920Z'
      elapsed: 2.441
      evaluation: True = Are {Inventory.apple_kind|fuji|} considered delicious by most people?
      consequences:
        QueuedOrder.apples: 50
      rationale: Fuji apples are generally considered delicious by most people due to their sweetness and crisp texture.

Congratulations! 🎉
With Vulcan, you just took your first step towards better AI repeatability and explainability!

→ Learn more about Vulcan Explainability Reports

In addition to new features, several bug and performance improvements coincide with this release. Below is the complete list of changes:

What's Changed

  • Fix for KeyError if some facts are missing by @segfly in #62
  • Fix for AICondition inversion error by @segfly in #69
  • Improved resliency of lambda parsing and argument extraction by @segfly in #70
  • Improve internal prompting techniques for AI rules by @segfly in #72
  • New explainability reporting feature by @segfly in #75
  • Prevent rules interfering with one another in the same iteration by @segfly in #77

Full Changelog: v1.1.5...v1.2.0