feat: reorder first/latency in seconds, add effort column
- logs columns are now Key | Account | Model | Effort | Type | Tokens | Cost | First | Latency | Tok/s | Time - First and Latency render in seconds (5.3s) instead of milliseconds - Effort shows the request reasoning_effort (- when absent) and is filterable; the detail line appends it to the model as model (effort) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
+24
-6
@@ -341,6 +341,7 @@ def sample_logs_payload() -> dict:
|
||||
"user": {"id": 1, "name": "shujakuin"},
|
||||
"model": "gpt-5.5",
|
||||
"upstream_model": "gpt-5.5-codex",
|
||||
"reasoning_effort": "high",
|
||||
"request_type": "stream",
|
||||
"stream": True,
|
||||
"input_tokens": 1200,
|
||||
@@ -454,8 +455,21 @@ class Sub2APILogsTests(unittest.TestCase):
|
||||
oldest = rows[-1]
|
||||
self.assertEqual(oldest["first_token_ms"], 800)
|
||||
self.assertAlmostEqual(oldest["tokens_per_second"], 340 * 1000.0 / 4521)
|
||||
self.assertIn("first 800ms", mod.log_detail_line(oldest))
|
||||
self.assertIn("75.2/s", mod.log_detail_line(oldest))
|
||||
self.assertEqual(oldest["effort"], "high")
|
||||
self.assertEqual(rows[0]["effort"], "-")
|
||||
detail = mod.log_detail_line(oldest)
|
||||
self.assertIn("first 0.8s latency 5.3s", detail)
|
||||
self.assertIn("(high)", detail)
|
||||
self.assertIn("75.2/s", detail)
|
||||
|
||||
def test_format_seconds_converts_ms(self) -> None:
|
||||
mod = load_module()
|
||||
|
||||
self.assertEqual(mod.format_seconds(5321), "5.3s")
|
||||
self.assertEqual(mod.format_seconds(800), "0.8s")
|
||||
self.assertEqual(mod.format_seconds(200735), "200.7s")
|
||||
self.assertEqual(mod.format_seconds(0), "-")
|
||||
self.assertEqual(mod.format_seconds(None), "-")
|
||||
|
||||
def test_key_color_is_stable_and_from_palette(self) -> None:
|
||||
mod = load_module()
|
||||
@@ -483,10 +497,14 @@ class Sub2APILogsTests(unittest.TestCase):
|
||||
self.assertIn("stream", text)
|
||||
self.assertIn("5.7K", text)
|
||||
self.assertIn("$0.012", text)
|
||||
self.assertIn("5321ms", text)
|
||||
self.assertIn("first", text)
|
||||
self.assertIn("tok/s", text)
|
||||
self.assertIn("800ms", text)
|
||||
header = text.splitlines()[1]
|
||||
self.assertLess(header.index("model"), header.index("effort"))
|
||||
self.assertLess(header.index("effort"), header.index("type"))
|
||||
self.assertLess(header.index("first"), header.index("latency"))
|
||||
self.assertIn("tok/s", header)
|
||||
self.assertIn("high", text)
|
||||
self.assertIn("5.3s", text)
|
||||
self.assertIn("0.8s", text)
|
||||
self.assertIn("75.2/s", text)
|
||||
self.assertIn("total 2.3K records", text)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user