import requests import json import os import transformers from transformers import ViTFeatureExtractor, ViTForImageClassification import warnings from PIL import Image from io import BytesIO warnings.filterwarnings('ignore') from dotenv import load_dotenv load_dotenv() api_key = 'Pg4KovXV5JCvaXooRRyxew==4SEE299nmZkw7xBI' import gradio as gr def food_identification(img_path): model_name = "google/vit-base-patch16-224" feature_extractor = ViTFeatureExtractor.from_pretrained(model_name) model = ViTForImageClassification.from_pretrained(model_name) try: image = Image.open(img_path) except FileNotFoundError as e: print('Got an error -> ', e) input = feature_extractor(images= image,return_tensors= 'pt' ) #pt means pytorch outputs = model(**input) logits = outputs.logits # model predicts one of the 1000 ImageNet classes pred_class_idx = logits.argmax(-1).item() ans = f"{model.config.id2label[pred_class_idx]}".split(',')[0] return ans def cal_calculation(fruit_name): api_url = f'https://api.api-ninjas.com/v1/nutrition?query={fruit_name}' Headers = { 'X-Api-Key': api_key} response = requests.get(api_url, headers=Headers) # we are sending api_key through header because header is more secure as compare to body or api_url . if response.status_code == requests.codes.ok: return response.json() else: return f"Error: {response.status_code}, Messages: {response.text}" def json_to_html_table(json_data): # Start the HTML table html = '
{key} | ' html += f'{value} | ' html += '
---|