Spaces:
Running
Running
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:
|
|
|
|
| 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:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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()
|