Source code for mmirage.config.openai_batch
"""OpenAI-specific batch configuration."""
from dataclasses import dataclass, field
from typing import Dict, Optional
from mmirage.config.batch_provider import BatchProviderConfig
[docs]
@dataclass
class OpenAIBatchConfig(BatchProviderConfig):
"""OpenAI Batch API configuration.
Attributes:
provider: Fixed provider identifier for OpenAI.
model: Model name used in each chat completion request body.
batch_endpoint: Target endpoint used by OpenAI batch jobs.
completion_window: OpenAI completion window value.
base_url: Optional base URL, useful for API-compatible gateways.
metadata: Metadata sent on batch creation.
"""
provider: str = "openai"
model: str = "gpt-4.1-mini"
batch_endpoint: str = "/v1/chat/completions"
completion_window: str = "24h"
base_url: Optional[str] = None
metadata: Dict[str, str] = field(default_factory=dict)
def __post_init__(self) -> None:
super().__post_init__()
allowed_windows = {"24h"}
if self.completion_window not in allowed_windows:
raise ValueError(f"completion_window must be one of {allowed_windows}")
if not self.model.strip():
raise ValueError("model must be a non-empty string")
if not self.batch_endpoint.startswith("/"):
raise ValueError("batch_endpoint must start with '/'")