Marco310 commited on
Commit
fcc5d97
·
1 Parent(s): 4446068

fix: relax database Ref-id checks

Browse files
src/tools/navigation_toolkit.py CHANGED
@@ -3,7 +3,10 @@ import json
3
  from agno.tools import Toolkit
4
  from src.services.googlemap_api_service import GoogleMapAPIService
5
  from src.infra.poi_repository import poi_repo
 
 
6
 
 
7
 
8
  class NavigationToolkit(Toolkit):
9
  def __init__(self, google_maps_api_key: str = None):
@@ -18,6 +21,16 @@ class NavigationToolkit(Toolkit):
18
  """
19
  print(f"🚗 Navigator: Loading Ref {optimization_ref_id}...")
20
  data = poi_repo.load(optimization_ref_id)
 
 
 
 
 
 
 
 
 
 
21
  if not data:
22
  return "❌ Error: Data not found."
23
 
 
3
  from agno.tools import Toolkit
4
  from src.services.googlemap_api_service import GoogleMapAPIService
5
  from src.infra.poi_repository import poi_repo
6
+ from src.infra.context import get_session_id
7
+ from src.infra.logger import get_logger
8
 
9
+ logger = get_logger(__name__)
10
 
11
  class NavigationToolkit(Toolkit):
12
  def __init__(self, google_maps_api_key: str = None):
 
21
  """
22
  print(f"🚗 Navigator: Loading Ref {optimization_ref_id}...")
23
  data = poi_repo.load(optimization_ref_id)
24
+
25
+ if not data:
26
+ logger.warning(f"⚠️ Warning: Ref ID '{optimization_ref_id}' not found.")
27
+ session_id = get_session_id()
28
+ if session_id:
29
+ latest_id = poi_repo.get_last_id_by_session(session_id)
30
+ if latest_id and latest_id != optimization_ref_id and latest_id.startswith("optimization"):
31
+ logger.warning(f"🔄 Auto-Correcting: Switching to latest Session ID: {latest_id}")
32
+ data = poi_repo.load(latest_id)
33
+
34
  if not data:
35
  return "❌ Error: Data not found."
36
 
src/tools/optimizer_toolkit.py CHANGED
@@ -19,7 +19,8 @@ class OptimizationToolkit(Toolkit):
19
  """
20
  print(f"🧮 Optimizer: Fetching data for {ref_id}...")
21
  data = poi_repo.load(ref_id)
22
- if not data: return "❌ Error: Data not found."
 
23
 
24
  tasks = data.get("tasks", [])
25
 
 
19
  """
20
  print(f"🧮 Optimizer: Fetching data for {ref_id}...")
21
  data = poi_repo.load(ref_id)
22
+ if not data:
23
+ return "❌ Error: Data not found."
24
 
25
  tasks = data.get("tasks", [])
26
 
src/tools/weather_toolkit.py CHANGED
@@ -3,6 +3,7 @@ import json
3
  from agno.tools import Toolkit
4
  from src.services.openweather_service import OpenWeatherMapService
5
  from src.infra.poi_repository import poi_repo
 
6
  from src.infra.logger import get_logger
7
 
8
  logger = get_logger(__name__)
@@ -17,7 +18,17 @@ class WeatherToolkit(Toolkit):
17
  def check_weather_for_timeline(self, nav_ref_id: str) -> str:
18
  logger.debug(f"🌤️ Weatherman: Loading Ref {nav_ref_id}...")
19
  data = poi_repo.load(nav_ref_id)
20
- if not data: return "❌ Error: Data not found."
 
 
 
 
 
 
 
 
 
 
21
 
22
  # [CRITICAL] 複製原始數據,確保 global_info, tasks 等不會遺失
23
  final_data = data.copy()
 
3
  from agno.tools import Toolkit
4
  from src.services.openweather_service import OpenWeatherMapService
5
  from src.infra.poi_repository import poi_repo
6
+ from src.infra.context import get_session_id
7
  from src.infra.logger import get_logger
8
 
9
  logger = get_logger(__name__)
 
18
  def check_weather_for_timeline(self, nav_ref_id: str) -> str:
19
  logger.debug(f"🌤️ Weatherman: Loading Ref {nav_ref_id}...")
20
  data = poi_repo.load(nav_ref_id)
21
+ if not data:
22
+ logger.warning(f"⚠️ Warning: Ref ID '{nav_ref_id}' not found.")
23
+ session_id = get_session_id()
24
+ if session_id:
25
+ latest_id = poi_repo.get_last_id_by_session(session_id)
26
+ if latest_id and latest_id != nav_ref_id and latest_id.startswith("navigation"):
27
+ logger.warning(f"🔄 Auto-Correcting: Switching to latest Session ID: {latest_id}")
28
+ data = poi_repo.load(latest_id)
29
+
30
+ if not data:
31
+ return "❌ Error: Data not found."
32
 
33
  # [CRITICAL] 複製原始數據,確保 global_info, tasks 等不會遺失
34
  final_data = data.copy()