tinyvla-microduck-stage25 / example_client.py
AlexWortega's picture
Add files using upload-large-folder tool
5d7d734 verified
Raw History Blame Contribute Delete
1.29 kB
#!/usr/bin/env python3
from __future__ import annotations
import argparse
import base64
import json
import urllib.request
from pathlib import Path
def main() -> None:
parser = argparse.ArgumentParser()
parser.add_argument("--url", default="http://127.0.0.1:8080")
parser.add_argument("--image", type=Path, required=True)
parser.add_argument(
"--state",
type=Path,
required=True,
help="JSON file containing a 61-float array.",
)
parser.add_argument("--instruction", required=True)
parser.add_argument("--control-index", type=int, default=0)
args = parser.parse_args()
payload = {
"image_jpeg_base64": base64.b64encode(args.image.read_bytes()).decode(),
"state": json.loads(args.state.read_text()),
"instruction": args.instruction,
"control_index": args.control_index,
"autonomous_recovery": True,
}
request = urllib.request.Request(
f"{args.url.rstrip('/')}/predict",
data=json.dumps(payload).encode(),
headers={"Content-Type": "application/json"},
method="POST",
)
with urllib.request.urlopen(request) as response:
result = json.load(response)
print(json.dumps(result, indent=2))
if __name__ == "__main__":
main()