import gradio as gr from transformers import pipeline import re def anomalies_detector(logs: str) -> list[str]: """ Detect anomalies in software logs using a Hugging Face transformer model. This function uses a specialized model trained to identify unusual patterns in system logs, such as: - Error messages - Unusual system states - Security-related events - Performance anomalies - Unexpected behavior patterns Args: logs (str): The input text containing log entries Returns: list[tuple[int, str]]: List of tuples containing (line_number, anomalous_text) """ # Initialize the text classification pipeline with a proper classification model classifier = pipeline("text-classification", model="distilbert/distilbert-base-uncased-finetuned-sst-2-english") # Split logs into lines log_lines = logs.split('\n') anomalies = [] # Process each line for line_num, line in enumerate(log_lines, 1): if not line.strip(): # Skip empty lines continue # Get classification result results = classifier(line) for log, res in zip(logs, results): anomalies.append(f"{log} => {res}") return anomalies # Create a standard Gradio interface demo = gr.Interface( fn=anomalies_detector, inputs="textbox", outputs="text", title="Log Anomaly Detector", description="Enter log entries to detect anomalous patterns using BERT Model. The system will identify unusual patterns, errors, and potential issues in your logs." ) # Launch both the Gradio web interface and the MCP server if __name__ == "__main__": demo.launch(mcp_server=True, share=True)