Spaces:
Sleeping
Sleeping
| from __future__ import annotations | |
| import argparse | |
| from pathlib import Path | |
| from PIL import Image | |
| from model_service import get_model_config, get_model_service | |
| def build_parser() -> argparse.ArgumentParser: | |
| parser = argparse.ArgumentParser(description="Run local inference with the configured model.") | |
| parser.add_argument("--image", type=Path, default=Path("person.jpg"), help="Input image path.") | |
| parser.add_argument( | |
| "--model", | |
| type=str, | |
| default=None, | |
| help="Optional model name override. Defaults to SECUREML_MODEL or the project default.", | |
| ) | |
| return parser | |
| def main() -> None: | |
| args = build_parser().parse_args() | |
| if not args.image.exists(): | |
| raise SystemExit(f"Image not found: {args.image}") | |
| config = get_model_config(args.model) | |
| service = get_model_service(args.model) | |
| image = Image.open(args.image).convert("RGB") | |
| result = service.predict_image(image) | |
| print(f"[INFO] device={service.device}") | |
| print(f"[INFO] model_name={config.name}") | |
| print(f"[INFO] model_backend={config.backend}") | |
| print(f"[INFO] model_path={config.model_path}") | |
| print(f"[INFO] image={args.image}") | |
| print("========== RESULT ==========") | |
| print(f"prediction: {result['prediction_index']} ({result['label']})") | |
| for label, prob in result["probabilities"].items(): | |
| print(f"P({label}) = {prob:.6f}") | |
| print("============================") | |
| if __name__ == "__main__": | |
| main() | |