Download inference.py from aigovdev/governance-risk-classifier: direct link, hf CLI and curl.
- Browser
- Download file 1.77 kB
-
https://huggingface.co/aigovdev/governance-risk-classifier/resolve/main/inference.py
- Command line
-
hf download hf://aigovdev/governance-risk-classifier/inference.py
-
curl -L -o inference.py https://huggingface.co/aigovdev/governance-risk-classifier/resolve/main/inference.py
1.77 kB
| import argparse | |
| import json | |
| from pathlib import Path | |
| import joblib | |
| import pandas as pd | |
| MODEL_PATH = Path(__file__).parent / "model.joblib" | |
| FEATURES = [ | |
| "sector", | |
| "impact", | |
| "decision_autonomy", | |
| "human_oversight", | |
| "monitoring", | |
| "traceability", | |
| "technical_documentation", | |
| ] | |
| def load_model(): | |
| if not MODEL_PATH.exists(): | |
| raise FileNotFoundError( | |
| f"Model artifact not found: {MODEL_PATH}" | |
| ) | |
| return joblib.load(MODEL_PATH) | |
| def validate_input(data: dict) -> None: | |
| missing = [feature for feature in FEATURES if feature not in data] | |
| if missing: | |
| raise ValueError( | |
| "Missing required features: " + ", ".join(missing) | |
| ) | |
| def predict_governance_risk(data: dict) -> dict: | |
| validate_input(data) | |
| model = load_model() | |
| frame = pd.DataFrame( | |
| [{feature: data[feature] for feature in FEATURES}] | |
| ) | |
| prediction = model.predict(frame)[0] | |
| result = { | |
| "risk_tier": str(prediction), | |
| } | |
| if hasattr(model, "predict_proba"): | |
| probabilities = model.predict_proba(frame)[0] | |
| classes = model.classes_ | |
| result["class_probabilities"] = { | |
| str(label): round(float(probability), 6) | |
| for label, probability in zip(classes, probabilities) | |
| } | |
| return result | |
| def main(): | |
| parser = argparse.ArgumentParser( | |
| description="Run the AIGov governance risk classifier." | |
| ) | |
| parser.add_argument( | |
| "--json", | |
| required=True, | |
| help="Governance scenario encoded as JSON.", | |
| ) | |
| args = parser.parse_args() | |
| data = json.loads(args.json) | |
| result = predict_governance_risk(data) | |
| print(json.dumps(result, indent=2)) | |
| if __name__ == "__main__": | |
| main() | |