Keep partial rewrite results from LLM batches

This commit is contained in:
Mimikko-zeus
2026-06-04 16:51:12 +08:00
parent 6eca615f42
commit dd12755ff1
2 changed files with 31 additions and 4 deletions

View File

@@ -107,6 +107,27 @@ class Stage4RewriteTests(unittest.TestCase):
self.assertEqual([item.title for item in rewritten], ["OpenAI launches GPT-5 API", "OpenAI launches GPT-5 API"])
self.assertEqual(report["fallback_count"], 2)
def test_rewrite_items_keeps_partial_batch_rewrites_when_some_ids_are_missing(self):
items = [news_item("a"), news_item("b"), news_item("c")]
def llm_call(prompt):
return json.dumps(
{
"rewrites": [
{"id": "a", "title": "title a", "summary": "summary a", "flags": []},
{"id": "c", "title": "title c", "summary": "summary c", "flags": []},
]
}
)
rewritten, report = rewrite_items(items, llm_call=llm_call, batch_size=3, max_fallback_ratio=0.5)
self.assertEqual([item.title for item in rewritten], ["title a", "OpenAI launches GPT-5 API", "title c"])
self.assertEqual(report["rewritten_count"], 2)
self.assertEqual(report["fallback_count"], 1)
self.assertEqual(report["missing_rewrite_count"], 1)
self.assertEqual(report["blocking_errors"], [])
def test_rewrite_items_defaults_to_large_batches_to_reduce_llm_requests(self):
items = [news_item(str(index)) for index in range(61)]
batch_sizes = []