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) |