This commit is contained in:
harold 2025-05-07 20:23:46 +05:00
parent 340ecb4b39
commit 426cc1025c
2 changed files with 24 additions and 1 deletions

View File

@ -18,7 +18,7 @@ async def bulk_create_success_reasons(
Success
)
.values(
[chat.model_dump() for chat in success_schema.success]
[chat.model_dump_without_duplicate() for chat in success_schema.success]
)
)
await session.execute(stmt)

View File

@ -1,3 +1,5 @@
from uuid import UUID
from pydantic import BaseModel, PositiveInt, NegativeInt, UUID4
@ -9,3 +11,24 @@ class SuccessChatFromAiSchema(BaseModel):
class ResponseFromGeminiSchema(BaseModel):
success: list[SuccessChatFromAiSchema] | None
def model_dump_without_duplicate(self) -> dict:
if not self.success:
return self.model_dump()
# Словарь для хранения уникальных элементов по slice_id
unique_items: dict[UUID, SuccessChatFromAiSchema] = {}
for item in self.success:
if item.slice_id is not None:
if item.slice_id not in unique_items:
unique_items[item.slice_id] = item
filtered_success = list(unique_items.values())
return {
"success": [
item.model_dump()
for item in filtered_success
]
}