rairo commited on
Commit
4299d4f
Β·
verified Β·
1 Parent(s): f1bfe42

Update main.py

Browse files
Files changed (1) hide show
  1. main.py +17 -4
main.py CHANGED
@@ -3,7 +3,7 @@ from contextlib import contextmanager
3
  from datetime import date
4
  from flask import Flask, request, jsonify
5
  from flask_cors import CORS
6
-
7
  # ---- Optional Google GenAI (Gemini) ----
8
  from google import genai
9
  from google.genai import types
@@ -127,6 +127,19 @@ def embed_text_to_vec1536(text: str):
127
  )[0].tolist()
128
  return _pad(vec, VEC_DIM)
129
 
 
 
 
 
 
 
 
 
 
 
 
 
 
130
  # ───────────────────────────────────────────────────────────────────────────────
131
  # GEMINI (explanations / descriptions)
132
  # ───────────────────────────────────────────────────────────────────────────────
@@ -202,7 +215,7 @@ def build_graph_from_events(obj_row, events):
202
  actor = ev.get("actor")
203
  place = ev.get("place")
204
  etype = ev.get("event_type") or "UNKNOWN"
205
- d_iso = (ev.get("date_from") or "")[:10] if ev.get("date_from") else None
206
 
207
  actor_id = add_node("actor", actor) if actor else None
208
  place_id = add_node("place", place) if place else None
@@ -238,8 +251,8 @@ def build_timeline_from_events_and_sentences(events, sentences):
238
  items = []
239
  s_by_seq = {s["seq"]: s["sentence"] for s in sentences}
240
  for ev in events:
241
- start = ev.get("date_from")
242
- end = ev.get("date_to")
243
  title = ev.get("event_type") or "Event"
244
  txt = None
245
  # Try to pull the nearest sentence by seq if present
 
3
  from datetime import date
4
  from flask import Flask, request, jsonify
5
  from flask_cors import CORS
6
+ from datetime import date, datetime
7
  # ---- Optional Google GenAI (Gemini) ----
8
  from google import genai
9
  from google.genai import types
 
127
  )[0].tolist()
128
  return _pad(vec, VEC_DIM)
129
 
130
+ def to_iso(d):
131
+ """Return YYYY-MM-DD for date/datetime/str; None for empty."""
132
+ if d is None:
133
+ return None
134
+ if isinstance(d, (date, datetime)):
135
+ return d.isoformat()[:10]
136
+ if isinstance(d, str):
137
+ return d[:10] if d else None
138
+ # fallback
139
+ try:
140
+ return str(d)[:10]
141
+ except Exception:
142
+ return None
143
  # ───────────────────────────────────────────────────────────────────────────────
144
  # GEMINI (explanations / descriptions)
145
  # ───────────────────────────────────────────────────────────────────────────────
 
215
  actor = ev.get("actor")
216
  place = ev.get("place")
217
  etype = ev.get("event_type") or "UNKNOWN"
218
+ d_iso = to_iso(ev.get("date_from"))
219
 
220
  actor_id = add_node("actor", actor) if actor else None
221
  place_id = add_node("place", place) if place else None
 
251
  items = []
252
  s_by_seq = {s["seq"]: s["sentence"] for s in sentences}
253
  for ev in events:
254
+ start = to_iso(ev.get("date_from"))
255
+ end = to_iso(ev.get("date_to"))
256
  title = ev.get("event_type") or "Event"
257
  txt = None
258
  # Try to pull the nearest sentence by seq if present