import dspy
import json
import os
from datetime import datetime
def log_dspy_history_to_file() -> None:
log_dir = "ai_payloads"
"""
Logs only the output of dspy.inspect_history(n=1) to a timestamped JSON file.
"""
os.makedirs(log_dir, exist_ok=True)
timestamp = datetime.now().strftime("%Y-%m-%d_%H-%M-%S")
filename = os.path.join(log_dir, f"dspy_history_{timestamp}.json")
# Capture the DSPy history by redirecting stdout
from io import StringIO
import sys
# Create a string buffer to capture the output
old_stdout = sys.stdout
sys.stdout = history_capture = StringIO()
# Inspect the last interaction
dspy.inspect_history(n=1)
# Restore stdout
sys.stdout = old_stdout
# Get the captured history and clean it up
dspy_history = history_capture.getvalue().strip()
log_data = {
"dspy_history": dspy_history
}
try:
with open(filename, "w", encoding="utf-8") as f:
json.dump(log_data, f, indent=4)
print(f"[LOG] DSPy history saved to {filename}")
except IOError as e:
print(f"[ERROR] Failed to write log file {filename}: {e}")