Spaces:
Runtime error
Runtime error
import os | |
import json | |
from transformers import AutoTokenizer, AutoModel | |
import uvicorn | |
from fastapi import FastAPI, Request | |
import datetime | |
from model import process_image | |
import torch | |
tokenizer = AutoTokenizer.from_pretrained("THUDM/visualglm-6b", trust_remote_code=True) | |
model = AutoModel.from_pretrained("THUDM/visualglm-6b", trust_remote_code=True).half().cuda() | |
app = FastAPI() | |
async def visual_glm(request: Request): | |
json_post_raw = await request.json() | |
print("Start to process request") | |
json_post = json.dumps(json_post_raw) | |
request_data = json.loads(json_post) | |
history = request_data.get("history") | |
image_encoded = request_data.get("image") | |
query = request_data.get("text") | |
image_path = process_image(image_encoded) | |
with torch.no_grad(): | |
result = model.stream_chat(tokenizer, image_path, query, history=history) | |
last_result = None | |
for value in result: | |
last_result = value | |
answer = last_result[0] | |
if os.path.isfile(image_path): | |
os.remove(image_path) | |
now = datetime.datetime.now() | |
time = now.strftime("%Y-%m-%d %H:%M:%S") | |
response = { | |
"result": answer, | |
"history": history, | |
"status": 200, | |
"time": time | |
} | |
return response | |
if __name__ == "__main__": | |
uvicorn.run(app, host='0.0.0.0', port=8080, workers=1) |