Spaces:
Sleeping
Sleeping
| from __future__ import annotations | |
| import argparse | |
| import os | |
| from pathlib import Path | |
| from bayes_gp_llmops.cli import run_serve | |
| def parse_args() -> argparse.Namespace: | |
| parser = argparse.ArgumentParser( | |
| description="Start the bundle-driven FastAPI inference service." | |
| ) | |
| parser.add_argument( | |
| "--config", | |
| type=Path, | |
| default=None, | |
| help="Path to serving configuration YAML.", | |
| ) | |
| parser.add_argument( | |
| "--bundle-dir", | |
| type=Path, | |
| default=None, | |
| help="Override bundle directory path.", | |
| ) | |
| parser.add_argument( | |
| "--host", | |
| type=str, | |
| default=None, | |
| help="Override listening host.", | |
| ) | |
| parser.add_argument( | |
| "--port", | |
| type=int, | |
| default=None, | |
| help="Override listening port.", | |
| ) | |
| parser.add_argument( | |
| "--device", | |
| type=str, | |
| default=None, | |
| help="Override device preference (auto, cpu, cuda).", | |
| ) | |
| parser.add_argument( | |
| "--max-batch-size", | |
| type=int, | |
| default=None, | |
| help="Override maximum batch size for /predict/batch.", | |
| ) | |
| parser.add_argument( | |
| "--max-input-length-chars", | |
| type=int, | |
| default=None, | |
| help="Override maximum input text length in characters.", | |
| ) | |
| parser.add_argument( | |
| "--enable-calibration", | |
| action=argparse.BooleanOptionalAction, | |
| default=None, | |
| help="Enable or disable temperature scaling at inference time.", | |
| ) | |
| parser.add_argument( | |
| "--log-level", | |
| type=str, | |
| default=None, | |
| choices=["DEBUG", "INFO", "WARNING", "ERROR", "CRITICAL"], | |
| help="Override service log level.", | |
| ) | |
| return parser.parse_args() | |
| def main() -> int: | |
| args = parse_args() | |
| if args.config is not None: | |
| os.environ["SERVING_CONFIG_PATH"] = str(args.config) | |
| if args.bundle_dir is not None: | |
| os.environ["SERVING_BUNDLE_DIR"] = str(args.bundle_dir) | |
| if args.host is not None: | |
| os.environ["SERVING_HOST"] = args.host | |
| if args.port is not None: | |
| os.environ["SERVING_PORT"] = str(args.port) | |
| if args.device is not None: | |
| os.environ["SERVING_DEVICE_PREFERENCE"] = args.device | |
| if args.max_batch_size is not None: | |
| os.environ["SERVING_MAX_BATCH_SIZE"] = str(args.max_batch_size) | |
| if args.max_input_length_chars is not None: | |
| os.environ["SERVING_MAX_INPUT_LENGTH_CHARS"] = str(args.max_input_length_chars) | |
| if args.enable_calibration is not None: | |
| os.environ["SERVING_ENABLE_CALIBRATION"] = ( | |
| "true" if args.enable_calibration else "false" | |
| ) | |
| if args.log_level is not None: | |
| os.environ["SERVING_LOG_LEVEL"] = args.log_level | |
| run_serve() | |
| return 0 | |
| if __name__ == "__main__": | |
| raise SystemExit(main()) | |