fix: normalize request pressure generation domains#679
Conversation
Greptile SummaryThis PR fixes a bug where
|
| Filename | Overview |
|---|---|
| packages/data-designer-engine/src/data_designer/engine/column_generators/generators/base.py | Adds _scheduling_generation_kind() to normalize the generation-type enum value before it enters the endpoint tuple; correctly handles raw strings, enum instances, and the "chat-completion" → "chat" mapping. |
| packages/data-designer-engine/tests/engine/dataset_builders/scheduling/test_resolver.py | Test fixtures updated to use GenerationType.CHAT_COMPLETION instead of the raw "chat" string; new assertions verify the request_resource_key is populated correctly end-to-end. |
Sequence Diagram
sequenceDiagram
participant Gen as ColumnGeneratorWithModelRegistry
participant Helper as _scheduling_generation_kind
participant Meta as SchedulingMetadata
participant Resolver as TaskSchedulingResolver
participant RRK as _request_resource_key
Gen->>Helper: generation_type (GenerationType.CHAT_COMPLETION)
Helper->>Helper: extract .value → "chat-completion"
Helper->>Helper: map to "chat"
Helper-->>Gen: "chat"
Gen->>Meta: model(provider, model_id, "chat", weight)
Meta-->>Resolver: "identity = (model, provider, model_id, "chat")"
Resolver->>RRK: metadata
RRK->>RRK: "RequestDomain("chat") = RequestDomain.CHAT"
RRK-->>Resolver: RequestResourceKey(provider, model_id, CHAT)
Reviews (1): Last reviewed commit: "fix request pressure domain metadata" | Re-trigger Greptile
Summary
chatdomain.GenerationType.CHAT_COMPLETIONproducing a concreteRequestResourceKey.Why
GenerationTypeis a string enum, butstr(GenerationType.CHAT_COMPLETION)does not produce the request-domain value expected byTaskSchedulingResolver. That left model-backed tasks without a request-pressure key, so queue ordering could not see pressure for those resources.Validation
.venv/bin/ruff check --fix ..venv/bin/ruff format ..venv/bin/pytest packages/data-designer-engine/tests/engine/dataset_builders/scheduling/test_resolver.py packages/data-designer-engine/tests/engine/dataset_builders/test_async_scheduler.py packages/data-designer-engine/tests/engine/models/request_admission/test_controller.py packages/data-designer-engine/tests/engine/models/clients/test_model_request_executor.py