Skip to content

Commit f7cdc63

Browse files
committed
fix: make compliance/compression response models tolerant of partial data
Gateway may not include all fields in the RunPod response (e.g. usage.labels_used, usage.mode). Default all required fields so Pydantic validation doesn't crash on partial responses.
1 parent 7a314f0 commit f7cdc63

1 file changed

Lines changed: 10 additions & 9 deletions

File tree

‎src/latence/models.py‎

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -469,13 +469,14 @@ class ComplianceEntity(BaseModel):
469469

470470
class ComplianceUsage(BaseModel):
471471
model_config = ConfigDict(extra="allow")
472-
chunks_processed: int
473-
labels_used: int
472+
chunks_processed: int = 0
473+
labels_used: int = 0
474474
entity_count: int = 0
475475
unique_labels: list[str] = Field(default_factory=list)
476476
redaction_mode: ComplianceRedactionMode | None = None
477477
redacted: bool = False
478-
mode: ComplianceLabelMode
478+
mode: ComplianceLabelMode | None = None
479+
label_mode: ComplianceLabelMode | None = None
479480
categories: list[str] = Field(default_factory=list)
480481

481482

@@ -500,16 +501,16 @@ class ComplianceRedactionResponse(BaseModel):
500501
success: bool = True
501502
original_text: str | None = None
502503
entities: list[ComplianceEntity] = Field(default_factory=list)
503-
entity_count: int
504+
entity_count: int = 0
504505
unique_labels: list[str] = Field(default_factory=list)
505506
redacted_text: str | None = None
506-
chunks_processed: int
507+
chunks_processed: int = 0
507508
labels_used: list[str] = Field(default_factory=list)
508-
label_mode: ComplianceLabelMode
509+
label_mode: ComplianceLabelMode | None = None
509510
selected_categories: list[str] = Field(default_factory=list)
510-
processing_time_ms: float
511+
processing_time_ms: float = 0.0
511512
timings_ms: Mapping[str, float] = Field(default_factory=dict)
512-
usage: ComplianceUsage
513+
usage: ComplianceUsage | None = None
513514

514515

515516
class CompressionSpan(BaseModel):
@@ -522,7 +523,7 @@ class CompressionSpan(BaseModel):
522523

523524
class CompressionResponse(BaseModel):
524525
model_config = ConfigDict(extra="allow")
525-
compressed_text: str
526+
compressed_text: str = ""
526527
original_tokens: int | None = None
527528
compressed_tokens: int | None = None
528529
compression_ratio: float | None = None

0 commit comments

Comments
 (0)