Spaces:
Runtime error
Runtime error
| ''' | |
| python -m omniparserserver --som_model_path ../../weights/icon_detect/model.pt --caption_model_name florence2 --caption_model_path ../../weights/icon_caption_florence --device cuda --BOX_TRESHOLD 0.05 | |
| ''' | |
| import sys | |
| import os | |
| import time | |
| from fastapi import FastAPI | |
| from pydantic import BaseModel | |
| import argparse | |
| import uvicorn | |
| root_dir = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) | |
| sys.path.append(root_dir) | |
| from util.omniparser import Omniparser | |
| def parse_arguments(): | |
| parser = argparse.ArgumentParser(description='Omniparser API') | |
| parser.add_argument('--som_model_path', type=str, default='../../weights/icon_detect/model.pt', help='Path to the som model') | |
| parser.add_argument('--caption_model_name', type=str, default='florence2', help='Name of the caption model') | |
| parser.add_argument('--caption_model_path', type=str, default='../../weights/icon_caption_florence', help='Path to the caption model') | |
| parser.add_argument('--device', type=str, default='cpu', help='Device to run the model') | |
| parser.add_argument('--BOX_TRESHOLD', type=float, default=0.05, help='Threshold for box detection') | |
| parser.add_argument('--host', type=str, default='0.0.0.0', help='Host for the API') | |
| parser.add_argument('--port', type=int, default=8000, help='Port for the API') | |
| args = parser.parse_args() | |
| return args | |
| args = parse_arguments() | |
| config = vars(args) | |
| app = FastAPI() | |
| omniparser = Omniparser(config) | |
| class ParseRequest(BaseModel): | |
| base64_image: str | |
| async def parse(parse_request: ParseRequest): | |
| print('start parsing...') | |
| start = time.time() | |
| dino_labled_img, parsed_content_list = omniparser.parse(parse_request.base64_image) | |
| latency = time.time() - start | |
| print('time:', latency) | |
| return {"som_image_base64": dino_labled_img, "parsed_content_list": parsed_content_list, 'latency': latency} | |
| async def root(): | |
| return {"message": "Omniparser API ready"} | |
| if __name__ == "__main__": | |
| uvicorn.run("omniparserserver:app", host=args.host, port=args.port, reload=True) |