import gradio as gr import torch from transformers import AutoModelForSequenceClassification, AutoTokenizer # Load the model and tokenizer model = AutoModelForSequenceClassification.from_pretrained("smeintadmin/image_intents") tokenizer = AutoTokenizer.from_pretrained("smeintadmin/image_intents") # Define prediction function def predict(text): # Tokenize the text inputs = tokenizer(text, truncation=True, max_length=512, padding='max_length', return_tensors='pt') # Make a prediction outputs = model(**inputs) logits = outputs.logits predicted_class = torch.argmax(logits).item() # Return the label return "Image Intent" if predicted_class == 1 else "Non-Image Intent" # Function to display user history def history_display(history): return "\n".join(f"{data['input']} -> {data['output']}" for data in history) # Custom layout using HTML tags and CSS description_html = "

Description

This app classifies whether the input text represents an image intent or not.

" instructions_html = "

Instructions

Enter a text query and click Submit to see if the intent is related to an image or not.

" # Combine the HTML components to form the final layout iface = gr.Interface( fn=predict, inputs="text", outputs="text", title="Image Intent Classifier", description=description_html, article=instructions_html, # Use 'article' instead of 'inputs' for the instructions examples=[ ["I want to see the picture."], ["Find me some recipes for dinner."], ["Can you tell me the latest news?"], ["Show me cute cat pictures!"], ], theme="huggingface", # Dark mode theme allow_flagging="never", # Disable flagging option (use 'auto' if you want to enable it) history=history_display, # Function to display user history ) # Launch the interface iface.launch()