Rajan Sharma commited on
Commit
5daa3d4
·
verified ·
1 Parent(s): 7ae997f

Update session_rag.py

Browse files
Files changed (1) hide show
  1. 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 Qs ----------
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