Spaces:
Sleeping
Sleeping
| from fastapi import FastAPI, UploadFile, File | |
| from transformers import pipeline | |
| from fastai.vision.all import * | |
| from PIL import Image | |
| import os | |
| access_token = os.getenv("access_token") | |
| # NOTE - we configure docs_url to serve the interactive Docs at the root path | |
| # of the app. This way, we can use the docs as a landing page for the app on Spaces. | |
| app = FastAPI(docs_url="/") | |
| pipe = pipeline("text2text-generation", model="google/flan-t5-small") | |
| categories = ('Heart', 'Oblong', 'Oval', 'Round', 'Square') | |
| learn = load_learner('model.pkl') | |
| def generate(text: str): | |
| """ | |
| Using the text2text-generation pipeline from `transformers`, generate text | |
| from the given input text. The model used is `google/flan-t5-small`, which | |
| can be found [here](https://huggingface.co/google/flan-t5-small). | |
| """ | |
| output = pipe(text) | |
| return {"output": output[0]["generated_text"]} | |
| async def face_analyse(file: UploadFile = File(...)): | |
| # Read the uploaded file content | |
| request_object_content = await file.read() | |
| try: | |
| # Attempt to open the image | |
| img = Image.open(io.BytesIO(request_object_content)) | |
| except Exception as e: | |
| return {"error": "Failed to open the image file. Make sure it is a valid image file."} | |
| # Check if img is None or not | |
| if img is None: | |
| return {"error": "Failed to open the image file."} | |
| try: | |
| # Resize the image to 300x300 pixels | |
| img = img.resize((300, 300)) | |
| except Exception as e: | |
| return {"error": "Failed to resize the image."} | |
| try: | |
| # Assuming 'learn' is your image classifier model | |
| pred, idx, probs = learn.predict(img) | |
| except Exception as e: | |
| return {"error": "Failed to make predictions."} | |
| # Assuming categories is a list of category labels | |
| return dict(zip(categories, map(float, probs))) | |