musk12 commited on
Commit
7700f48
·
verified ·
1 Parent(s): 07c49c7

Update stream_api.py

Browse files
Files changed (1) hide show
  1. stream_api.py +32 -5
stream_api.py CHANGED
@@ -12,6 +12,7 @@ from fastapi.responses import JSONResponse, StreamingResponse
12
  import uvicorn
13
  import asyncio
14
  import time
 
15
 
16
 
17
  # Config
@@ -29,16 +30,41 @@ app = FastAPI(title="Custom FastVLM onnx gguf API",
29
  # Load ONNX session once at startup
30
  ort_session = None
31
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
32
  @app.on_event("startup")
33
  async def load_models():
34
  global ort_session
 
 
 
 
 
 
 
 
 
35
  print("Loading ONNX vision encoder...")
36
 
37
- session_options = ort.SessionOptions()
38
- session_options.enable_mem_pattern = False
39
- session_options.add_session_config_entry("session.use_ort_model_bytes_for_initializers", "0")
40
 
41
- ort_session = ort.InferenceSession(ONNX_PATH, sess_options=session_options, providers=["CPUExecutionProvider"])
 
42
 
43
  print("Providers:", ort_session.get_providers())
44
 
@@ -46,6 +72,7 @@ async def load_models():
46
 
47
  await start_llm_server()
48
 
 
49
  @app.on_event("shutdown")
50
  async def shutdown():
51
  if llm_process:
@@ -308,4 +335,4 @@ async def predict(image: UploadFile = File(...), prompt: str = Form(default="De
308
  return JSONResponse(status_code=500, content={"status": "error", "message": str(e)})
309
 
310
  if __name__ == "__main__":
311
- uvicorn.run("api:app", host="0.0.0.0", port=8000, reload=False)
 
12
  import uvicorn
13
  import asyncio
14
  import time
15
+ import zipfile
16
 
17
 
18
  # Config
 
30
  # Load ONNX session once at startup
31
  ort_session = None
32
 
33
+ # @app.on_event("startup")
34
+ # async def load_models():
35
+ # global ort_session
36
+ # print("Loading ONNX vision encoder...")
37
+
38
+ # session_options = ort.SessionOptions()
39
+ # session_options.enable_mem_pattern = False
40
+ # session_options.add_session_config_entry("session.use_ort_model_bytes_for_initializers", "0")
41
+
42
+ # ort_session = ort.InferenceSession(ONNX_PATH, sess_options=session_options, providers=["CPUExecutionProvider"])
43
+
44
+ # print("Providers:", ort_session.get_providers())
45
+
46
+ # print("ONNX session ready ✅")
47
+
48
+ # await start_llm_server()
49
+
50
  @app.on_event("startup")
51
  async def load_models():
52
  global ort_session
53
+
54
+ ZIPPED_PATH = "vision_projector.zip"
55
+ ONNX_PATH = "vision_projector_v1_standalone.onnx"
56
+
57
+ if not os.path.exists(ONNX_PATH):
58
+ with zipfile.ZipFile(ZIPPED_PATH, "r") as zip_ref:
59
+ zip_ref.extractall()
60
+ print("Extraction complete!")
61
+
62
  print("Loading ONNX vision encoder...")
63
 
64
+ ort_session = ort.InferenceSession(ONNX_PATH, providers=["CPUExecutionProvider"])
 
 
65
 
66
+ print(f"intra_op_num_threads: {ort_session.get_session_options().intra_op_num_threads}")
67
+ print(f"inter_op_num_threads: {ort_session.get_session_options().inter_op_num_threads}")
68
 
69
  print("Providers:", ort_session.get_providers())
70
 
 
72
 
73
  await start_llm_server()
74
 
75
+
76
  @app.on_event("shutdown")
77
  async def shutdown():
78
  if llm_process:
 
335
  return JSONResponse(status_code=500, content={"status": "error", "message": str(e)})
336
 
337
  if __name__ == "__main__":
338
+ uvicorn.run("stream_api:app", host="0.0.0.0", port=8000, reload=False)