Spaces:
Sleeping
Sleeping
| 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) | |