abhinavvvvv commited on
Commit
4c55ce6
·
0 Parent(s):

Initial commit with Git LFS

Browse files
.gitattributes ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ *.7z filter=lfs diff=lfs merge=lfs -text
2
+ *.arrow filter=lfs diff=lfs merge=lfs -text
3
+ *.bin filter=lfs diff=lfs merge=lfs -text
4
+ *.bz2 filter=lfs diff=lfs merge=lfs -text
5
+ *.ckpt filter=lfs diff=lfs merge=lfs -text
6
+ *.ftz filter=lfs diff=lfs merge=lfs -text
7
+ *.gz filter=lfs diff=lfs merge=lfs -text
8
+ *.h5 filter=lfs diff=lfs merge=lfs -text
9
+ *.joblib filter=lfs diff=lfs merge=lfs -text
10
+ *.lfs.* filter=lfs diff=lfs merge=lfs -text
11
+ *.mlmodel filter=lfs diff=lfs merge=lfs -text
12
+ *.model filter=lfs diff=lfs merge=lfs -text
13
+ *.msgpack filter=lfs diff=lfs merge=lfs -text
14
+ *.npy filter=lfs diff=lfs merge=lfs -text
15
+ *.npz filter=lfs diff=lfs merge=lfs -text
16
+ *.onnx filter=lfs diff=lfs merge=lfs -text
17
+ *.ot filter=lfs diff=lfs merge=lfs -text
18
+ *.parquet filter=lfs diff=lfs merge=lfs -text
19
+ *.pb filter=lfs diff=lfs merge=lfs -text
20
+ *.pickle filter=lfs diff=lfs merge=lfs -text
21
+ *.pkl filter=lfs diff=lfs merge=lfs -text
22
+ *.pt filter=lfs diff=lfs merge=lfs -text
23
+ *.pth filter=lfs diff=lfs merge=lfs -text
24
+ *.rar filter=lfs diff=lfs merge=lfs -text
25
+ *.safetensors filter=lfs diff=lfs merge=lfs -text
26
+ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
27
+ *.tar.* filter=lfs diff=lfs merge=lfs -text
28
+ *.tar filter=lfs diff=lfs merge=lfs -text
29
+ *.tflite filter=lfs diff=lfs merge=lfs -text
30
+ *.tgz filter=lfs diff=lfs merge=lfs -text
31
+ *.wasm filter=lfs diff=lfs merge=lfs -text
32
+ *.xz filter=lfs diff=lfs merge=lfs -text
33
+ *.zip filter=lfs diff=lfs merge=lfs -text
34
+ *.zst filter=lfs diff=lfs merge=lfs -text
35
+ *tfevents* filter=lfs diff=lfs merge=lfs -text
36
+ models/cluster_data.json filter=lfs diff=lfs merge=lfs -text
Dockerfile ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ FROM python:3.10
2
+
3
+ WORKDIR /app
4
+
5
+ COPY requirements.txt .
6
+
7
+ RUN pip install --no-cache-dir -r requirements.txt
8
+
9
+ COPY . .
10
+
11
+ EXPOSE 7860
12
+
13
+ CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "7860"]
README.md ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ title: Rtl Log Intelligence Api
3
+ emoji: 📚
4
+ colorFrom: purple
5
+ colorTo: red
6
+ sdk: docker
7
+ pinned: false
8
+ ---
9
+
10
+ Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
app/cluster_metadata.py ADDED
@@ -0,0 +1,62 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ cluster_info = {
2
+
3
+ 0:{
4
+ "name":"Clock Domain Crossing Issues",
5
+ "description":"Failures related to clock synchronization, CDC bridges and timing violations",
6
+ "subsystem":"CLOCK_MANAGER"
7
+ },
8
+
9
+ 1:{
10
+ "name":"Memory Controller Operations",
11
+ "description":"General memory controller operations, refresh cycles and scheduling",
12
+ "subsystem":"MEM_CTRL"
13
+ },
14
+
15
+ 2:{
16
+ "name":"AXI Protocol Errors",
17
+ "description":"AXI transaction failures including burst violations and timeouts",
18
+ "subsystem":"AXI_CTRL"
19
+ },
20
+
21
+ 3:{
22
+ "name":"DMA Engine Failures",
23
+ "description":"DMA transfer problems and arbitration issues",
24
+ "subsystem":"DMA_ENGINE"
25
+ },
26
+
27
+ 4:{
28
+ "name":"Power Management Events",
29
+ "description":"Voltage rail monitoring and regulator stability events",
30
+ "subsystem":"POWER_CTRL"
31
+ },
32
+
33
+ 5:{
34
+ "name":"FIFO Buffer Errors",
35
+ "description":"FIFO overflow, underflow and parity failures",
36
+ "subsystem":"FIFO_BUF"
37
+ },
38
+
39
+ 6:{
40
+ "name":"PCIe Link Events",
41
+ "description":"PCIe link training and protocol layer issues",
42
+ "subsystem":"PCIE_CTRL"
43
+ },
44
+
45
+ 7:{
46
+ "name":"Voltage Sensor Issues",
47
+ "description":"Voltage sensor calibration or measurement failures",
48
+ "subsystem":"POWER_CTRL"
49
+ },
50
+
51
+ 8:{
52
+ "name":"DDR Signal Integrity Problems",
53
+ "description":"DDR chip select or signal glitch issues",
54
+ "subsystem":"DDR_CTRL"
55
+ },
56
+
57
+ 9:{
58
+ "name":"DVFS Management",
59
+ "description":"Dynamic voltage frequency scaling state transitions",
60
+ "subsystem":"POWER_CTRL"
61
+ }
62
+ }
app/main.py ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from fastapi import FastAPI
2
+ from pydantic import BaseModel
3
+
4
+ from app.predictor import predict_cluster
5
+
6
+ app = FastAPI()
7
+
8
+ class LogInput(BaseModel):
9
+ log_text: str
10
+
11
+
12
+ @app.get("/")
13
+ def root():
14
+ return {"status": "RTL Log API running"}
15
+
16
+
17
+ @app.post("/analyze_log")
18
+ def analyze_log(data: LogInput):
19
+
20
+ result = predict_cluster(data.log_text)
21
+
22
+ return {
23
+ "input_log": data.log_text,
24
+ "analysis": result
25
+ }
app/model_loader.py ADDED
@@ -0,0 +1,17 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import json
2
+ import numpy as np
3
+ from sentence_transformers import SentenceTransformer
4
+
5
+ print("Loading embedding model from HuggingFace...")
6
+ embedding_model = SentenceTransformer("all-MiniLM-L6-v2")
7
+
8
+ print("Loading cluster data...")
9
+
10
+ with open("models/cluster_data.json") as f:
11
+ data = json.load(f)
12
+
13
+ core_samples = np.array(data["core_samples"])
14
+ labels = np.array(data["labels"])
15
+ eps = data["eps"]
16
+
17
+ print("Models loaded successfully.")
app/predictor.py ADDED
@@ -0,0 +1,42 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import numpy as np
2
+ from sklearn.metrics.pairwise import cosine_distances
3
+
4
+ from app.model_loader import embedding_model, core_samples, labels, eps
5
+ from app.cluster_metadata import cluster_info
6
+
7
+
8
+ def predict_cluster(log_text):
9
+
10
+ emb = embedding_model.encode([log_text])
11
+
12
+ distances = cosine_distances(emb, core_samples)
13
+
14
+ nearest = np.argmin(distances)
15
+
16
+ similarity = 1 - distances[0][nearest]
17
+
18
+ if distances[0][nearest] <= eps:
19
+
20
+ cluster_id = int(labels[nearest])
21
+
22
+ info = cluster_info.get(cluster_id, {})
23
+
24
+ return {
25
+ "cluster_id": cluster_id,
26
+ "cluster_name": info.get("name","Unknown Cluster"),
27
+ "subsystem": info.get("subsystem","unknown"),
28
+ "description": info.get("description","No description"),
29
+ "similarity_score": float(similarity),
30
+ "anomaly": False
31
+ }
32
+
33
+ else:
34
+
35
+ return {
36
+ "cluster_id": -1,
37
+ "cluster_name": "Unknown Bug Pattern",
38
+ "subsystem": "unknown",
39
+ "description": "Log does not match known clusters",
40
+ "similarity_score": float(similarity),
41
+ "anomaly": True
42
+ }
data/clustered_logs.csv ADDED
The diff for this file is too large to render. See raw diff
 
models/cluster_data.json ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:8a720f60adb255e2a001dec6f70e0b7e022d681eaa8b858f57afae858b091ea7
3
+ size 62870705
models/cluster_model.pkl ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:4786844168112dda4a687d7ddf62cd2ec3f1a7abec0f6da24d123286f3cbdfd3
3
+ size 11580588
models/embedding_model.pkl ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:ee2474d5a6eff8995c75c8d8991c1518443daf0b643dc12fac409c05ee6faf98
3
+ size 91395176
requirements.txt ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ fastapi==0.110.0
2
+ uvicorn==0.27.0
3
+ numpy==1.26.4
4
+ pandas==2.2.1
5
+ scikit-learn==1.4.1.post1
6
+ sentence-transformers==2.6.1
7
+ torch==2.2.1