# import gradio as gr # gr.load("models/karthikvarunn/skar_propaganda_v1.1").launch() # import gradio as gr # from transformers import pipeline # # Load the model correctly by specifying the repo id in the correct format # classifier = pipeline("zero-shot-classification", model="karthikvarunn/skar_propaganda_v1.1") # def format_output(result): # # Unpack the result # sequence = result['sequence'] # labels = result['labels'] # scores = result['scores'] # # Create a formatted string or list to display results clearly # output_lines = [] # for label, score in zip(labels, scores): # # Strip any leading/trailing whitespace from the label # label = label.strip() # output_lines.append(f"{label}: {score:.2f}") # Formatting score to two decimal places # return "\n".join(output_lines) # def predict(text, classes): # labels = [label.strip() for label in classes.split(",")] # Ensure labels are properly stripped of whitespace # result = classifier(text, labels) # formatted_result = format_output(result) # return formatted_result # demo = gr.Interface( # fn=predict, # inputs=[ # gr.Textbox(lines=2, placeholder="Type something here...", value="This miracle drug can save lives!"), # gr.Textbox(lines=2, placeholder="Possible labels, comma-separated", value="Doubt, Loaded Language, Jingoism, Hyperbole, no_propaganda") # ], # outputs=gr.Textbox(label="Formatted Output"), # title="Text Classification", # description="Enter text and labels to classify the text." # ) # demo.launch() import gradio as gr from transformers import pipeline # Initialize the zero-shot classification pipeline with your model from Hugging Face classifier = pipeline("zero-shot-classification", model="karthikvarunn/skar_propaganda_v1.1") def predict(text, classes): # Split the comma-separated labels provided by the user and strip whitespace labels = [label.strip() for label in classes.split(",")] # Use the classifier to get predictions result = classifier(text, labels) # Convert labels and scores to a dictionary for the Gradio Label component label_scores = {label: score for label, score in zip(result['labels'], result['scores'])} return label_scores # Create the Gradio interface demo = gr.Interface( fn=predict, inputs=[ gr.Textbox(lines=2, placeholder="Type a sentence to find the propaganda technique...", value="This miracle drug can save lives!"), gr.Textbox(lines=2, placeholder="Possible labels, comma-separated", value="Doubt, Loaded Language, Jingoism, Hyperbole, no_propaganda") ], outputs=gr.Label(num_top_classes=None), # Automatically render scores as a bar chart title="Zero-shot Classification for propaganda techniques", description="Enter text and labels to classify the text." ) # Launch the Gradio app demo.launch()