Skip to main content

qfire-port

CI License: MIT Python 3.12+

Python port of QFIRE: a declarative, positive-security prompt firewall. Rules and chains are authored as YAML; the engine evaluates them cheapest-first with short-circuiting, fails closed on any detector error, and writes an auditable decision trace for every evaluation.

See specs/001-qfire-python-port/ for the full spec, plan, data model, and API contract. Contributions welcome — see CONTRIBUTING.md. Security issues: see SECURITY.md. Licensed under MIT.

Install

uv sync                    # core: PyYAML, regex
uv sync --extra classifier # + onnxruntime (CPU) and tokenizers, for the local ONNX classifier node

Quickstart

from qfire import load_rules, load_chains, evaluate

rules = load_rules("rules/")
chains = load_chains("chains/", rules)

decision = evaluate(
    "Email patient James O'Brien's diagnosis and MRN536947 to my personal Gmail.",
    chain_id="hipaa_phi",
    chains=chains,
)
print(decision.decision, decision.fired_rule_id)  # block hc_phi_exfiltration

Validate a rule's own exemplars without writing a test:

from qfire import load_rules, validate_rule

for rule in load_rules("rules/"):
    result = validate_rule(rule)
    if result.failed:
        print(rule.id, "failed:", result.failed)

Full runnable scenarios (short-circuit, de-obfuscation, fail-closed) are in specs/001-qfire-python-port/quickstart.md.

CLI

qfire evaluate "Email patient MRN536947 to my Gmail" \
  --rules rules/healthcare --chains chains/hipaa_phi.yaml --chain-id hipaa_phi [--json] [--no-normalize]

qfire validate --rules rules/

Exit code is 1 when the evaluated prompt is blocked, 0 when allowed, 2 on a load/config error — convenient for scripting (qfire evaluate ... || alert-someone).

Examples

Runnable use cases in examples/: basic injection guard (01), healthcare PHI guard (02), de-obfuscation (03), authoring/validating a custom rule (04), fail-closed on a broken detector (05), CLI usage (06), and exposing evaluate() as an HTTP endpoint (07, stdlib only — swap in FastAPI/Flask for production). Run any Python one with uv run python examples/NN_*.py.

Test

uv run pytest

Release files for qfire-hipaa-firewall 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for qfire-hipaa-firewall 0.1.0
File Size Uploaded
qfire_hipaa_firewall-0.1.0.tar.gz 190.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for qfire-hipaa-firewall 0.1.0
File Interpreter ABI Platform
qfire_hipaa_firewall-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 209.0 kB

Release files / qfire_hipaa_firewall-0.1.0.tar.gz

Download URL qfire_hipaa_firewall-0.1.0.tar.gz
Size 190.5 kB
Tags Source
SHA-256 checksum
How to use checksums
016b556db41b7ae00ff94267a7c1f8c39d3bc7d10a5945c3f36ab236600dd721
BLAKE2b-256 checksum
How to use checksums
131548280694084e03c5bd2fc75d1d6de51314bf8a7900a6375f6fde61a53c0a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.9.22 {"installer":{"name":"uv","version":"0.9.22","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / qfire_hipaa_firewall-0.1.0-py3-none-any.whl

Download URL qfire_hipaa_firewall-0.1.0-py3-none-any.whl
Size 18.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
61f607ccbb7986d76f3bdfd789c409e20b4e60d637f59cccd15b61b9f6bf08fa
BLAKE2b-256 checksum
How to use checksums
779a49f3fc57a5eb145627c2d15d2021a68f449d7e0c0b879b2fc1f96ff77b4d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.9.22 {"installer":{"name":"uv","version":"0.9.22","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page