Download deployment/model_server/server_policy.py from mmmmmcyaaa/ReTime: direct link, hf CLI and curl.
- Browser
- Download file 2.27 kB
-
https://huggingface.co/mmmmmcyaaa/ReTime/resolve/main/deployment/model_server/server_policy.py
- Command line
-
hf download hf://mmmmmcyaaa/ReTime/deployment/model_server/server_policy.py
-
curl -L -o server_policy.py https://huggingface.co/mmmmmcyaaa/ReTime/resolve/main/deployment/model_server/server_policy.py
2.27 kB
| # Copyright 2025 starVLA community. All rights reserved. | |
| # Licensed under the MIT License, Version 1.0 (the "License"); | |
| # Implemented by [Jinhui YE / HKUST University] in [2025]. | |
| import logging | |
| import socket | |
| import argparse | |
| from deployment.model_server.tools.websocket_policy_server import WebsocketPolicyServer | |
| from deployment.model_server.policy_wrapper import PolicyServerWrapper | |
| import os | |
| def main(args) -> None: | |
| # Example usage: | |
| # policy = YourPolicyClass() # Replace with your actual policy class | |
| # server = WebsocketPolicyServer(policy, host="localhost", port=10091) | |
| # server.serve_forever() | |
| policy = PolicyServerWrapper( | |
| ckpt_path=args.ckpt_path, | |
| device="cuda", | |
| use_bf16=args.use_bf16, | |
| ) | |
| hostname = socket.gethostname() | |
| local_ip = socket.gethostbyname(hostname) | |
| logging.info("Creating server (host: %s, ip: %s)", hostname, local_ip) | |
| # start websocket server | |
| server = WebsocketPolicyServer( | |
| policy=policy, | |
| host="0.0.0.0", | |
| port=args.port, | |
| idle_timeout=args.idle_timeout, | |
| metadata={**policy.metadata, "policy_seed": args.seed}, | |
| ) | |
| logging.info("server running ...") | |
| server.serve_forever() | |
| def build_argparser(): | |
| parser = argparse.ArgumentParser() | |
| parser.add_argument("--ckpt_path", type=str, default="Qwen/Qwen2.5-VL-3B-Instruct") | |
| parser.add_argument("--port", type=int, default=10093) | |
| parser.add_argument("--use_bf16", action="store_true") | |
| parser.add_argument("--seed", type=int, default=0) | |
| parser.add_argument("--idle_timeout" , type=int, default=1800, help="Idle timeout in seconds, -1 means never close") | |
| return parser | |
| def start_debugpy_once(): | |
| """start debugpy once""" | |
| import debugpy | |
| if getattr(start_debugpy_once, "_started", False): | |
| return | |
| debugpy.listen(("0.0.0.0", 10095)) | |
| print("🔍 Waiting for VSCode attach on 0.0.0.0:10095 ...") | |
| debugpy.wait_for_client() | |
| start_debugpy_once._started = True | |
| if __name__ == "__main__": | |
| logging.basicConfig(level=logging.INFO, force=True) | |
| parser = build_argparser() | |
| args = parser.parse_args() | |
| if os.getenv("DEBUG", False): | |
| print("🔍 DEBUGPY is enabled") | |
| start_debugpy_once() | |
| main(args) | |