mirror of
https://github.com/BerriAI/litellm.git
synced 2026-10-07 02:59:05 +00:00
fix(ci): deduplicate and sort langfuse batch events after aggregation
The Langfuse SDK may send the same event (e.g., trace-create) in multiple flush cycles, causing duplicates when we aggregate from all mock calls. After filtering by trace_id, deduplicate by keeping only the first event of each type, then sort to ensure trace-create is at index 0 and generation-create at index 1. Co-authored-by: Ishaan Jaff <ishaan-jaff@users.noreply.github.com>
This commit is contained in:
parent
98c1aa8744
commit
83f7481e2a
1 changed files with 16 additions and 0 deletions
|
|
@ -60,6 +60,22 @@ def assert_langfuse_request_matches_expected(
|
|||
)
|
||||
]
|
||||
|
||||
# When aggregating from multiple flush cycles, deduplicate by keeping
|
||||
# only one trace-create and one generation-create per trace_id.
|
||||
seen_types: dict = {}
|
||||
deduped_batch: list = []
|
||||
for item in actual_request_body["batch"]:
|
||||
item_type = item["type"]
|
||||
if item_type not in seen_types:
|
||||
seen_types[item_type] = True
|
||||
deduped_batch.append(item)
|
||||
actual_request_body["batch"] = deduped_batch
|
||||
|
||||
# Ensure canonical order: trace-create first, generation-create second
|
||||
actual_request_body["batch"].sort(
|
||||
key=lambda x: 0 if x["type"] == "trace-create" else 1
|
||||
)
|
||||
|
||||
print(
|
||||
"actual_request_body after filtering", json.dumps(actual_request_body, indent=4)
|
||||
)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue