blckrvrfx's picture
Upload edge_multimodal_embeddings/cli.py with huggingface_hub
5efa04d verified
Raw History Blame Contribute Delete
1.56 kB
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()