gen_ai_hub.batch_service.models package

class gen_ai_hub.batch_service.models.ABCBaseModel

Bases: BaseModel, ABC

Abstract base model for batch service request models.

  • extra=”forbid” rejects unexpected fields.

  • by_alias=True / exclude_none=True ensure clean API payloads.

model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'frozen': False}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_dump(**kwargs)
!!! abstract “Usage Documentation”

[model_dump](../concepts/serialization.md#python-mode)

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

Parameters:
  • mode – The mode in which to_python should run. If mode is ‘json’, the output will only contain JSON serializable types. If mode is ‘python’, the output may contain non-JSON-serializable Python objects.

  • include – A set of fields to include in the output.

  • exclude – A set of fields to exclude from the output.

  • context – Additional context to pass to the serializer.

  • by_alias – Whether to use the field’s alias in the dictionary key if defined.

  • exclude_unset – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults – Whether to exclude fields that are set to their default value.

  • exclude_none – Whether to exclude fields that have a value of None.

  • exclude_computed_fields – Whether to exclude computed fields. While this can be useful for round-tripping, it is usually recommended to use the dedicated round_trip parameter instead.

  • round_trip – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • fallback – A function to call when an unknown value is encountered. If not provided, a [PydanticSerializationError][pydantic_core.PydanticSerializationError] error is raised.

  • serialize_as_any – Whether to serialize fields with duck-typing serialization behavior.

  • polymorphic_serialization – Whether to use model and dataclass polymorphic serialization for this call.

Returns:

A dictionary representation of the model.

class gen_ai_hub.batch_service.models.ResponseBaseModel(**extra_data: Any)

Bases: BaseModel

Base model for API response models — allows extra fields for forward compatibility.

model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': False}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class gen_ai_hub.batch_service.models.BatchCreateRequest(*, type: Literal['llm-native'], input: BatchInput, output: BatchOutput, spec: BatchSpec)

Bases: ABCBaseModel

Request body sent to POST /llm-batch-service/v1/batches.

Describes a new batch processing job: where to read input from, where to write output, and which model to use.

Parameters:
  • type (Literal["llm-native"]) – Batch processing type. Currently only "llm-native" is supported.

  • input (BatchInput) – Input file configuration.

  • output (BatchOutput) – Output directory configuration.

  • spec (BatchSpec) – LLM provider and model specification.

model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'frozen': False}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

type: Literal['llm-native']
input: BatchInput
output: BatchOutput
spec: BatchSpec
class gen_ai_hub.batch_service.models.BatchInput(*, uri: str)

Bases: ABCBaseModel

Input configuration for a batch job.

Points to the .jsonl file in an object store that contains the individual LLM requests to be processed.

Parameters:

uri (str) – Fully qualified object-store URI of the input file. Must point to a .jsonl file (e.g. ai://my-store/input/requests.jsonl).

model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'frozen': False}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

uri: str
class gen_ai_hub.batch_service.models.BatchOutput(*, uri: str)

Bases: ABCBaseModel

Output configuration for a batch job.

Points to the directory in an object store where results will be written once the job completes.

Parameters:

uri (str) – Fully qualified object-store URI of the output directory (e.g. ai://my-store/output/).

model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'frozen': False}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

uri: str
class gen_ai_hub.batch_service.models.BatchSpec(*, provider: str, model: str)

Bases: ABCBaseModel

Specification of the LLM to use for a batch job.

Parameters:
  • provider (str) – LLM provider name as registered in SAP AI Core (e.g. "azure-openai").

  • model (str) – Model name to use for inference (e.g. "gpt-4.1-mini").

model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'frozen': False}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

provider: str
model: str
class gen_ai_hub.batch_service.models.BatchStatus(*values)

Bases: str, Enum

Enumeration of possible lifecycle states for a batch job.

Variables:
  • PENDING – Job has been accepted and is waiting to be scheduled.

  • RUNNING – Job is actively being processed.

  • COMPLETED – Job finished successfully.

  • FAILED – Job terminated with an error.

  • CANCELLED – Job was cancelled by the user.

  • CANCELLING – Cancellation has been requested and is in progress.

PENDING = 'PENDING'
RUNNING = 'RUNNING'
COMPLETED = 'COMPLETED'
FAILED = 'FAILED'
CANCELLED = 'CANCELLED'
CANCELLING = 'CANCELLING'
class gen_ai_hub.batch_service.models.BatchCreateResponse(*, id: str, created_at: str | None = None, status: str | None = None, message: str | None = None, **extra_data: Any)

Bases: ResponseBaseModel

Response returned by POST /llm-batch-service/v1/batches.

Confirms that the batch job has been accepted and provides the assigned identifier and initial status.

Parameters:
  • id (str) – Unique identifier (UUID) of the created batch job.

  • created_at (str, optional) – ISO 8601 timestamp of when the job was created.

  • status (str, optional) – Initial status of the job, typically "PENDING".

  • message (str, optional) – Human-readable confirmation message from the service.

model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': False}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

id: str
created_at: str | None
status: str | None
message: str | None
class gen_ai_hub.batch_service.models.BatchSummary(*, id: str, type: str | None = None, provider: str | None = None, created_at: str | None = None, status: str | None = None, **extra_data: Any)

Bases: ResponseBaseModel

Summary entry for a single batch job as returned in a list response.

Parameters:
  • id (str) – Unique identifier (UUID) of the batch job.

  • type (str, optional) – Batch processing type (e.g. "llm-native").

  • provider (str, optional) – LLM provider name (e.g. "azure-openai").

  • created_at (str, optional) – ISO 8601 timestamp of when the job was created.

  • status (str, optional) – Current status of the job.

model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': False}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

id: str
type: str | None
provider: str | None
created_at: str | None
status: str | None
class gen_ai_hub.batch_service.models.BatchListResponse(*, count: int | None = None, resources: list[BatchSummary] | None = None, **extra_data: Any)

Bases: ResponseBaseModel

Response returned by GET /llm-batch-service/v1/batches.

Contains a count and a list of batch job summaries for the current resource group.

Parameters:
  • count (int, optional) – Total number of batch jobs.

  • resources (list[BatchSummary], optional) – List of batch job summaries.

model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': False}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

count: int | None
resources: list[BatchSummary] | None
class gen_ai_hub.batch_service.models.BatchStatusDetail(*, current_status: str | None = None, target_status: str | None = None, updated_at: str | None = None, message: str | None = None, **extra_data: Any)

Bases: ResponseBaseModel

Status block embedded inside BatchDetailResponse.

Parameters:
  • current_status (str, optional) – The job’s current lifecycle status.

  • target_status (str, optional) – The terminal status the job is expected to reach.

  • updated_at (str, optional) – ISO 8601 timestamp of the last status change.

  • message (str, optional) – Optional human-readable description of the current status.

model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': False}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

current_status: str | None
target_status: str | None
updated_at: str | None
message: str | None
class gen_ai_hub.batch_service.models.BatchInputDetail(*, uri: str | None = None, **extra_data: Any)

Bases: ResponseBaseModel

Input configuration as returned in a batch detail response.

Parameters:

uri (str, optional) – Object-store URI of the input .jsonl file.

model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': False}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

uri: str | None
class gen_ai_hub.batch_service.models.BatchOutputDetail(*, uri: str | None = None, **extra_data: Any)

Bases: ResponseBaseModel

Output configuration as returned in a batch detail response.

Parameters:

uri (str, optional) – Object-store URI of the output directory.

model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': False}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

uri: str | None
class gen_ai_hub.batch_service.models.BatchDetailResponse(*, id: str | None = None, type: str | None = None, provider: str | None = None, created_at: str | None = None, input: BatchInputDetail | None = None, output: BatchOutputDetail | None = None, spec: dict | None = None, status: BatchStatusDetail | None = None, **extra_data: Any)

Bases: ResponseBaseModel

Response returned by GET /llm-batch-service/v1/batches/{batch_id}.

Provides the full configuration and current status of a specific batch job.

Parameters:
  • id (str, optional) – Unique identifier (UUID) of the batch job.

  • type (str, optional) – Batch processing type (e.g. "llm-native").

  • provider (str, optional) – LLM provider name (e.g. "azure-openai").

  • created_at (str, optional) – ISO 8601 timestamp of when the job was created.

  • input (BatchInputDetail, optional) – Input file configuration.

  • output (BatchOutputDetail, optional) – Output directory configuration.

  • spec (dict, optional) – Raw job specification dict as stored by the service.

  • status (BatchStatusDetail, optional) – Current status details.

model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': False}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

id: str | None
type: str | None
provider: str | None
created_at: str | None
input: BatchInputDetail | None
output: BatchOutputDetail | None
spec: dict | None
status: BatchStatusDetail | None
class gen_ai_hub.batch_service.models.BatchStatusResponse(*, current_status: str | None = None, target_status: str | None = None, updated_at: str | None = None, message: str | None = None, **extra_data: Any)

Bases: ResponseBaseModel

Response returned by GET /llm-batch-service/v1/batches/{batch_id}/status.

Parameters:
  • current_status (str, optional) – The job’s current lifecycle status.

  • target_status (str, optional) – The terminal status the job is expected to reach.

  • updated_at (str, optional) – ISO 8601 timestamp of the last status change.

  • message (str, optional) – Optional human-readable description of the current status.

model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': False}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

current_status: str | None
target_status: str | None
updated_at: str | None
message: str | None
class gen_ai_hub.batch_service.models.BatchCancelResponse(*, id: str | None = None, created_at: str | None = None, message: str | None = None, **extra_data: Any)

Bases: ResponseBaseModel

Response returned by PATCH /llm-batch-service/v1/batches/{batch_id}/cancel.

Confirms that the cancellation request has been accepted. The job will transition to CANCELLING and eventually CANCELLED.

Parameters:
  • id (str, optional) – Unique identifier (UUID) of the batch job.

  • created_at (str, optional) – ISO 8601 timestamp of when the job was originally created.

  • message (str, optional) – Human-readable confirmation that cancellation was scheduled.

model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': False}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

id: str | None
created_at: str | None
message: str | None
class gen_ai_hub.batch_service.models.BatchDeleteResponse(*, id: str | None = None, created_at: str | None = None, message: str | None = None, **extra_data: Any)

Bases: ResponseBaseModel

Response returned by DELETE /llm-batch-service/v1/batches/{batch_id}.

Confirms that the batch job record has been deleted. Only jobs in a terminal state (COMPLETED, FAILED, or CANCELLED) can be deleted.

Parameters:
  • id (str, optional) – Unique identifier (UUID) of the deleted batch job.

  • created_at (str, optional) – ISO 8601 timestamp of when the job was originally created.

  • message (str, optional) – Human-readable confirmation of the deletion.

model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': False}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

id: str | None
created_at: str | None
message: str | None
class gen_ai_hub.batch_service.models.ErrorResponse(*, request_id: str, message: str, **extra_data: Any)

Bases: ResponseBaseModel

Error response body returned by the batch service on 4xx/5xx responses.

Parameters:
  • request_id (str) – Unique request identifier, useful for tracing the error in service logs.

  • message (str) – Human-readable description of the error.

model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': False}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

request_id: str
message: str

Submodules