mirror of
https://github.com/linyqh/NarratoAI.git
synced 2026-05-01 14:18:19 +00:00
fix(documentary): keep frames when batch summary is missing
This commit is contained in:
parent
ad02059e5d
commit
df034d104b
@ -135,7 +135,13 @@ JSON 必须包含以下键:
|
||||
}
|
||||
)
|
||||
|
||||
summary = payload["overall_activity_summary"]
|
||||
raw_summary = payload.get("overall_activity_summary", "")
|
||||
if isinstance(raw_summary, str):
|
||||
summary = raw_summary
|
||||
elif raw_summary is None:
|
||||
summary = ""
|
||||
else:
|
||||
summary = str(raw_summary)
|
||||
|
||||
return FrameBatchResult(
|
||||
batch_index=batch_index,
|
||||
@ -160,10 +166,4 @@ JSON 必须包含以下键:
|
||||
f"{len(payload['frame_observations'])} < {expected_frame_count}"
|
||||
)
|
||||
|
||||
if "overall_activity_summary" not in payload:
|
||||
return "Batch response must include overall_activity_summary"
|
||||
|
||||
if not isinstance(payload["overall_activity_summary"], str):
|
||||
return "Batch response overall_activity_summary must be a string"
|
||||
|
||||
return ""
|
||||
|
||||
@ -162,6 +162,31 @@ class DocumentaryFrameAnalysisServiceTests(unittest.TestCase):
|
||||
self.assertEqual("人物从房间走到街道", batch.overall_activity_summary)
|
||||
self.assertEqual("", batch.fallback_summary)
|
||||
|
||||
def test_parse_batch_preserves_frames_when_summary_is_missing(self):
|
||||
service = DocumentaryFrameAnalysisService()
|
||||
raw_response = """
|
||||
{
|
||||
"frame_observations": [
|
||||
{"observation": "第一帧画面"},
|
||||
{"observation": "第二帧画面"}
|
||||
]
|
||||
}
|
||||
""".strip()
|
||||
|
||||
batch = service._parse_batch_response(
|
||||
batch_index=2,
|
||||
raw_response=raw_response,
|
||||
frame_paths=[
|
||||
"/tmp/keyframe_000000_000000000.jpg",
|
||||
"/tmp/keyframe_000075_000003000.jpg",
|
||||
],
|
||||
time_range="00:00:00,000-00:00:06,000",
|
||||
)
|
||||
|
||||
self.assertEqual("success", batch.status)
|
||||
self.assertEqual(2, len(batch.frame_observations))
|
||||
self.assertEqual("", batch.overall_activity_summary)
|
||||
|
||||
def test_cache_key_changes_when_interval_changes(self):
|
||||
service = DocumentaryFrameAnalysisService()
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user