Spaces:
Running
Running
| import json | |
| import uuid | |
| import sqlite3 | |
| from typing import Any, Dict, Optional | |
| class OffloadManager: | |
| """ | |
| 負責管理 Tool 之間傳遞的大數據 (Fat Data)。 | |
| 資料儲存在 SQLite 中,避免污染 LLM Context。 | |
| """ | |
| DB_PATH = "storage/offloaded_data.db" | |
| def __init__(self): | |
| self._init_db() | |
| def _init_db(self): | |
| import os | |
| os.makedirs("storage", exist_ok=True) | |
| with sqlite3.connect(self.DB_PATH) as conn: | |
| conn.execute(""" | |
| CREATE TABLE IF NOT EXISTS data_store ( | |
| ref_id TEXT PRIMARY KEY, | |
| data JSON | |
| ) | |
| """) | |
| def store(self, data: Any) -> str: | |
| """將數據存入 DB,返回引用 ID""" | |
| ref_id = f"ref_{uuid.uuid4().hex[:8]}" | |
| with sqlite3.connect(self.DB_PATH) as conn: | |
| conn.execute( | |
| "INSERT INTO data_store (ref_id, data) VALUES (?, ?)", | |
| (ref_id, json.dumps(data, default=str)) # Handle datetime serialization if needed | |
| ) | |
| return ref_id | |
| def retrieve(self, ref_id: str) -> Optional[Any]: | |
| """根據引用 ID 取回數據""" | |
| with sqlite3.connect(self.DB_PATH) as conn: | |
| cursor = conn.execute("SELECT data FROM data_store WHERE ref_id = ?", (ref_id,)) | |
| row = cursor.fetchone() | |
| if row: | |
| return json.loads(row[0]) | |
| return None | |
| # Global Instance | |
| offload_manager = OffloadManager() |