Improve AI daily report operations and dedupe observability

This commit is contained in:
Ubuntu
2026-06-10 21:55:29 +08:00
parent b46cef2c7b
commit 2159ee733b
23 changed files with 761 additions and 57 deletions

View File

@@ -0,0 +1,34 @@
import json
import unittest
from ai_daily_report.observability import LlmCallObserver, summarize_observed_calls
class ObservabilityTests(unittest.TestCase):
def test_records_prompt_and_response_hashes(self):
observer = LlmCallObserver(lambda prompt: json.dumps({"ok": True}), stage="stage3")
response = observer("prompt")
self.assertEqual(response, '{"ok": true}')
self.assertEqual(len(observer.records), 1)
self.assertEqual(observer.records[0]["stage"], "stage3")
self.assertEqual(observer.records[0]["prompt_chars"], 6)
self.assertEqual(observer.records[0]["response_chars"], len(response))
self.assertRegex(observer.records[0]["prompt_hash"], r"^[0-9a-f]{64}$")
self.assertRegex(observer.records[0]["response_hash"], r"^[0-9a-f]{64}$")
def test_summarizes_observed_calls(self):
left = LlmCallObserver(lambda prompt: "a", stage="stage3")
right = LlmCallObserver(lambda prompt: "b", stage="stage4")
left("x")
right("y")
right("z")
report = summarize_observed_calls([left, right])
self.assertEqual(report["total_calls"], 3)
self.assertEqual(report["by_stage"], {"stage3": 1, "stage4": 2})
if __name__ == "__main__":
unittest.main()