import argparse, json, time, numpy as np def main(): p = argparse.ArgumentParser(prog="edge-embed") p.add_argument("--profile", default="edge_gpu") p.add_argument("--device", default="auto") sub = p.add_subparsers(dest="cmd") ep = sub.add_parser("embed"); ep.add_argument("input"); ep.add_argument("--modality", default="auto") cp = sub.add_parser("compare"); cp.add_argument("a"); cp.add_argument("b") bp = sub.add_parser("benchmark"); bp.add_argument("-n", type=int, default=50) sub.add_parser("info") args = p.parse_args() if not args.cmd: p.print_help(); return import logging; logging.basicConfig(level=logging.INFO) from edge_multimodal_embeddings.core.config import EmbedderConfig, HardwareProfile from edge_multimodal_embeddings.core.embedder import EdgeMultimodalEmbedder cfg = EmbedderConfig.from_profile(HardwareProfile(args.profile)) if args.device != "auto": cfg.device = args.device emb = EdgeMultimodalEmbedder(cfg) if args.cmd == "embed": t0 = time.time(); e = emb.embed(args.input, modality=args.modality) print(f"Shape: {e.shape} | Norm: {np.linalg.norm(e):.4f} | {(time.time()-t0)*1000:.0f}ms") elif args.cmd == "compare": print(f"Similarity: {emb.similarity(emb.embed(args.a), emb.embed(args.b)):.4f}") elif args.cmd == "benchmark": print(json.dumps(emb.benchmark(args.n), indent=2, default=str)) elif args.cmd == "info": print(json.dumps(emb.get_status(), indent=2, default=str)) emb.unload() if __name__ == "__main__": main()