BayesOptGPT / scripts /serve.py
BlackWizardX11's picture
Redeploying backend
2d3dd8e verified
Raw
History Blame Contribute Delete
2.95 kB
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())