Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| from transformers import AutoModelForSequenceClassification, AutoTokenizer, pipeline | |
| import logging | |
| # Set up logging to capture detailed errors | |
| logging.basicConfig(level=logging.INFO) | |
| logger = logging.getLogger(__name__) | |
| # Load the model and tokenizer | |
| model_id = "Ct1tz/Codebert-Base-B2D4G5" | |
| try: | |
| logger.info("Loading tokenizer...") | |
| tokenizer = AutoTokenizer.from_pretrained( | |
| model_id, | |
| use_fast=False, # Explicitly use slow tokenizer (RobertaTokenizer) | |
| force_download=True, # Force redownload to avoid corrupted cache | |
| cache_dir=None # Use default cache | |
| ) | |
| logger.info("Tokenizer loaded successfully.") | |
| except Exception as e: | |
| logger.error(f"Failed to load tokenizer: {str(e)}") | |
| raise | |
| try: | |
| logger.info("Loading model...") | |
| model = AutoModelForSequenceClassification.from_pretrained(model_id) | |
| logger.info("Model loaded successfully.") | |
| except Exception as e: | |
| logger.error(f"Failed to load model: {str(e)}") | |
| raise | |
| # Create a text classification pipeline | |
| classifier = pipeline("text-classification", model=model, tokenizer=tokenizer) | |
| # Define the prediction function for Gradio | |
| def predict(text): | |
| try: | |
| # Get prediction | |
| result = classifier(text) | |
| # Format the output | |
| return f"Label: {result[0]['label']}, Score: {result[0]['score']:.4f}" | |
| except Exception as e: | |
| return f"Prediction error: {str(e)}" | |
| # Create Gradio interface | |
| iface = gr.Interface( | |
| fn=predict, | |
| inputs=gr.Textbox(lines=2, placeholder="Enter text here (e.g., 'I like you. I love you')"), | |
| outputs="text", | |
| title="Text Classification with Codebert", | |
| description="Enter text to classify using the Ct1tz/Codebert-Base-B2D4G5 model." | |
| ) | |
| # Launch the app | |
| if __name__ == "__main__": | |
| logger.info("Launching Gradio interface...") | |
| iface.launch() |