Spaces:
Sleeping
Sleeping
Rajan Sharma
commited on
Update session_rag.py
Browse files- session_rag.py +20 -3
session_rag.py
CHANGED
|
@@ -1,4 +1,3 @@
|
|
| 1 |
-
|
| 2 |
# session_rag.py
|
| 3 |
from __future__ import annotations
|
| 4 |
import logging, hashlib
|
|
@@ -59,6 +58,7 @@ class SessionRAG:
|
|
| 59 |
- register_artifacts(arts)
|
| 60 |
- retrieve(query, k=5)
|
| 61 |
- get_latest_csv_columns()
|
|
|
|
| 62 |
- clear()
|
| 63 |
"""
|
| 64 |
def __init__(self, model_name: str = "all-MiniLM-L6-v2"):
|
|
@@ -133,14 +133,31 @@ class SessionRAG:
|
|
| 133 |
top_idx = np.argsort(-sims)[: min(k, len(self.texts))]
|
| 134 |
return [self.texts[i] for i in top_idx]
|
| 135 |
|
| 136 |
-
# ---------- helpers for structured
|
| 137 |
def get_latest_csv_columns(self) -> List[str]:
|
| 138 |
-
# scan artifacts in reverse insertion order
|
| 139 |
for a in reversed(self.artifacts):
|
| 140 |
if a.get("kind") == "csv" and a.get("columns"):
|
| 141 |
return list(map(str, a["columns"]))
|
| 142 |
return []
|
| 143 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 144 |
def clear(self) -> None:
|
| 145 |
self.texts = []
|
| 146 |
self.embeddings = None
|
|
|
|
|
|
|
| 1 |
# session_rag.py
|
| 2 |
from __future__ import annotations
|
| 3 |
import logging, hashlib
|
|
|
|
| 58 |
- register_artifacts(arts)
|
| 59 |
- retrieve(query, k=5)
|
| 60 |
- get_latest_csv_columns()
|
| 61 |
+
- get_csv_summaries()
|
| 62 |
- clear()
|
| 63 |
"""
|
| 64 |
def __init__(self, model_name: str = "all-MiniLM-L6-v2"):
|
|
|
|
| 133 |
top_idx = np.argsort(-sims)[: min(k, len(self.texts))]
|
| 134 |
return [self.texts[i] for i in top_idx]
|
| 135 |
|
| 136 |
+
# ---------- helpers for structured data ----------
|
| 137 |
def get_latest_csv_columns(self) -> List[str]:
|
|
|
|
| 138 |
for a in reversed(self.artifacts):
|
| 139 |
if a.get("kind") == "csv" and a.get("columns"):
|
| 140 |
return list(map(str, a["columns"]))
|
| 141 |
return []
|
| 142 |
|
| 143 |
+
def get_csv_summaries(self) -> List[Dict[str, Any]]:
|
| 144 |
+
"""
|
| 145 |
+
Return a list of dicts with keys:
|
| 146 |
+
- file (str)
|
| 147 |
+
- digest (str)
|
| 148 |
+
- summary (dict)
|
| 149 |
+
newest-first
|
| 150 |
+
"""
|
| 151 |
+
out: List[Dict[str, Any]] = []
|
| 152 |
+
for a in reversed(self.artifacts):
|
| 153 |
+
if a.get("kind") == "csv_summary":
|
| 154 |
+
out.append({
|
| 155 |
+
"file": a.get("name"),
|
| 156 |
+
"digest": a.get("digest"),
|
| 157 |
+
"summary": a.get("summary"),
|
| 158 |
+
})
|
| 159 |
+
return out
|
| 160 |
+
|
| 161 |
def clear(self) -> None:
|
| 162 |
self.texts = []
|
| 163 |
self.embeddings = None
|