|
from fastapi import FastAPI, Request, UploadFile |
|
from main import internvl_main |
|
import time |
|
import uvicorn |
|
import asyncio |
|
|
|
app = FastAPI() |
|
|
|
|
|
@app.post("/internvl") |
|
async def index(request: Request, file: UploadFile = None, ): |
|
data = await request.json() |
|
|
|
image = data["image"] |
|
prompt = data["text"] |
|
try: |
|
tic = time.time() |
|
loop = asyncio.get_event_loop() |
|
outer = await loop.run_in_executor(None, internvl_main, image, prompt) |
|
outer = {"answer":outer, "status":"success", "time_cost": time.time() - tic} |
|
print("outer输出的结果为:", outer) |
|
print("生成的长度:", len(outer)) |
|
print("总耗时情况:", time.time() - tic) |
|
except Exception as e: |
|
outer = {"status": "fail", "time_cost": 0} |
|
print("error", e) |
|
|
|
return outer |
|
|
|
if __name__ == "__main__": |
|
uvicorn.run(app, host="0.0.0.0", port=8111) |
|
|
|
|