paulinusjua's picture
Update app.py
b1db959 verified
raw
history blame
1.1 kB
import gradio as gr
import os
import json
from google.cloud import storage
from fastai.vision.all import load_learner, PILImage
#Setting up GCP client
credentials_content = os.environ['gcp_cam']
with open('gcp_key.json', 'w') as f:
f.write(credentials_content)
os.environ['GOOGLE_APPLICATION_CREDENTIALS'] = 'gcp_key.json'
bucket_name = os.environ['gcp_bucket']
pkl_blob = 'paulinus/cameroon_food.pkl'
local_pkl = 'cameroon_food.pkl'
client = storage.Client()
bucket = client.bucket(bucket_name)
blob = bucket.blob(pkl_blob)
blob.download_to_filename(local_pkl)
#Load model
learn = load_learner(local_pkl)
def predict(img):
pred_class, pred_idx, outputs = learn.predict(PILImage.create(img))
prob = outputs[pred_idx].item()
return f"Class: {pred_class}, Probability: {prob:.4f}"
#Build Gradio interface
iface = gr.Interface(
fn=predict,
inputs=gr.Image(type="file"),
outputs=gr.Textbox(),
title="Cameroonian Meal Identifier",
description="Upload a meal image and get the predicted class."
)
# Launch the app
if __name__ == "__main__":
iface.launch()