Skip to main content

Cron-friendly batch LLM processing for Polars.

Project description

llm-batch-py

llm-batch-py is a cron-friendly batch LLM runner for Polars.

Install with pip install llm-batch-py.

It lets you:

  • define structured-output or embedding jobs against a Polars DataFrame or LazyFrame
  • build prompts with Rust-backed row templates, with Python UDFs available as fallback
  • auto-poll prior batches, auto-submit only missing rows, and materialize a fresh Polars result table
  • process large inputs incrementally with Runner.run_stream(...) from a DataFrame, LazyFrame, or host-supplied Iterable[DataFrame]
  • persist manifests and raw artifacts in local or S3-backed parquet storage

Reruns are grouped implicitly by job.name inside one shared result_cache.root_uri. If you run the same job again against the same cache store, llm-batch-py reuses completed results, skips duplicate submission for still-active prior work, and only submits rows whose effective request identity changed or whose retries are still allowed.

llm-batch-py is cron-friendly, but it does not schedule itself. Your scheduler invokes Runner.run(), and each rerun acquires a short-lived job lock, polls prior batches, reuses completed results, keeps matching in-flight rows pending, and submits only new or changed rows. Changing BatchConfig.batch_size affects only future submissions; it does not invalidate result-cache hits for completed rows.

Provider batch submission is sequential. When one run needs multiple small provider batches, llm-batch-py submits them one by one rather than firing all submits concurrently.

If a small batch submit fails transiently before the provider accepts it, llm-batch-py does a short inline retry loop in the same run(). If the submit still fails, the batch stays recoverable in the result cache and later reruns retry that same small batch before submitting any later chunks. BatchConfig.max_retries applies per retryable small-batch submit and per retryable row-level provider failure.

LazyFrame support does not make Runner.run() fully streaming by itself. Runner.run() still materializes the full job input before validation and request building. Use Runner.run_stream(...) when you want chunked execution over a DataFrame, LazyFrame, or host-supplied Iterable[DataFrame].

Quickstart

import polars as pl
from pydantic import BaseModel

from llm_batch_py import (
    BatchConfig,
    LockConfig,
    OpenAIConfig,
    PromptCacheConfig,
    ResultCacheStoreConfig,
    Runner,
    StructuredOutputJob,
    structured_template,
)


class CompanyLabel(BaseModel):
    label: str


build_prompt = structured_template(
    system="Return JSON only.",
    messages="Label this company: {{ row.company_name }}",
    name="build_prompt",
    version="v1",
)


job = StructuredOutputJob(
    name="company_labels",
    key_cols=["id"],
    input_df=pl.DataFrame({"id": [1], "company_name": ["OpenAI"]}),
    prompt_builder=build_prompt,
    output_model=CompanyLabel,
    provider=OpenAIConfig(model="gpt-4o-mini"),
    result_cache=ResultCacheStoreConfig(root_uri="./.llm_batch_py"),
    prompt_cache=PromptCacheConfig(mode="auto"),
    lock=LockConfig(ttl_seconds=3600),
    batch=BatchConfig(batch_size=500),
)

runner = Runner()
result_df = runner.run(job)
print(result_df)
print(runner.last_summary)

slim_df = runner.run(job, metadata_columns=["llm_batch_py_status"])
print(slim_df)

Streaming Large Inputs

import polars as pl

lazy_input = (
    pl.scan_parquet("./companies.parquet")
    .select(["id", "company_name"])
)

runner = Runner()
for chunk_df in runner.run_stream(
    job=job.__class__(**{**job.__dict__, "input_df": lazy_input}),
    input_batch_rows=10_000,
):
    print(chunk_df.select(["id", "llm_batch_py_status"]))

print(runner.last_stream_summary)

run_stream() yields one result DataFrame per input chunk. Each chunk uses the same result-cache, polling, retry, and lock semantics as a normal short-lived run().

If your host already pages from Postgres or another source, you can also push batches directly:

def pg_batches() -> list[pl.DataFrame]:
    return [
        pl.DataFrame({"id": [1], "company_name": ["OpenAI"]}),
        pl.DataFrame({"id": [2], "company_name": ["Anthropic"]}),
    ]


for chunk_df in runner.run_stream(job=job, input_batches=pg_batches()):
    print(chunk_df.select(["id", "llm_batch_py_status"]))

For private S3-backed result caches, pass filesystem options through ResultCacheStoreConfig:

result_cache = ResultCacheStoreConfig(
    root_uri="s3://my-bucket/llm_batch_py-prod",
    storage_options={
        "profile": "my-profile",
        "client_kwargs": {"region_name": "us-west-2"},
    },
)

For a private AWS S3 bucket, the cache store can authenticate with any normal s3fs credential path:

  • AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY
  • optional AWS_SESSION_TOKEN
  • AWS_PROFILE
  • an attached IAM role

If you want explicit credentials in code:

result_cache = ResultCacheStoreConfig(
    root_uri="s3://my-bucket/llm_batch_py-prod",
    storage_options={
        "key": "AWS_ACCESS_KEY_ID",
        "secret": "AWS_SECRET_ACCESS_KEY",
        "token": "AWS_SESSION_TOKEN",
        "client_kwargs": {"region_name": "us-west-2"},
    },
)

The cache principal needs list, read, write, and delete access under the configured prefix because llm-batch-py lists manifests, reads and writes artifacts, and creates and removes lock files there.

If you point storage_options at a custom S3-compatible endpoint_url, llm-batch-py now rejects job locking by default because the lock protocol depends on AWS S3 exclusive-create semantics. Only bypass that with LockConfig(allow_unsafe_s3_compatible_locks=True) if you already serialize runners externally and accept possible cache corruption risk.

structured_template(...) and embedding_template(...) are the primary prompt-building APIs. They render {{ row.field }} placeholders through the Rust template engine for lower per-row overhead.

prompt_udf(...) remains supported as a compatibility fallback when templating is not expressive enough. A prompt_udf should return structured Python data such as dicts, lists, Pydantic models, and datetime-like values. llm-batch-py canonically serializes the rendered payload before computing result-cache keys, so dict insertion order does not affect cache hits.

Returned result frames include llm_batch_py_* metadata columns for provider status, token counts, and raw request/response inspection fields such as llm_batch_py_input_raw_json, llm_batch_py_request_raw_json, llm_batch_py_output_raw_json, and llm_batch_py_output_raw_text.

If you do not need the full metadata surface on the returned frame, pass metadata_columns=[...] to Runner.run() or Runner.run_stream() to join back only the requested llm_batch_py_* columns. Pass metadata_columns=[] to suppress metadata columns entirely.

Docs

Customizing provider prompt cache

from llm_batch_py import PromptCacheConfig

PromptCacheConfig(
    mode="auto",
    verbose=False,
)
  • mode: Literal["off", "auto"] = "auto"
  • verbose: bool = False

OpenAIConfig

from llm_batch_py import OpenAIConfig

OpenAIConfig(
    model="gpt-4o-mini",
    api_key=None,
    max_output_tokens=None,
    temperature=None,
    timeout=60.0,
    organization=None,
    base_url=None,
    dimensions=None,
    pricing=None,
)
  • model: str
  • api_key: str | None = None
  • max_output_tokens: int | None = None
  • temperature: float | None = None
  • timeout: float | None = 60.0
  • organization: str | None = None
  • base_url: str | None = None
  • dimensions: int | None = None
  • pricing: ModelPricing | None = None
  • provider_name: Literal["openai"] = "openai"

OpenAIConfig is used for:

  • structured-output jobs
  • embedding jobs

AnthropicConfig

from llm_batch_py import AnthropicConfig

AnthropicConfig(
    model="claude-3-5-haiku-latest",
    api_key=None,
    max_output_tokens=1024,
    temperature=None,
    timeout=60.0,
    pricing=None,
)
  • model: str
  • api_key: str | None = None
  • max_output_tokens: int = 1024
  • temperature: float | None = None
  • timeout: float | None = 60.0
  • pricing: ModelPricing | None = None
  • provider_name: Literal["anthropic"] = "anthropic"

AnthropicConfig is used for structured-output jobs only.

Customizing result cache store config

result_cache=ResultCacheStoreConfig(...) controls the persistent result cache catalog used to reuse prior results. It is separate from the result_df returned by runner.run(job).

Completed results are stored in the result cache catalog and reused on later runs until you delete or replace that catalog. There is no result TTL or automatic result-cache eviction in llm-batch-py today.

from llm_batch_py import ResultCacheStoreConfig

result_cache = ResultCacheStoreConfig(
    root_uri="s3://my-bucket/llm_batch_py-prod",
)
  • root_uri: base location for manifests, raw artifacts, and reusable cached results. This can be a local path like "./.llm_batch_py" or any fsspec URI such as s3://....
  • storage_options: optional fsspec / s3fs filesystem options such as profile, key, secret, token, client_kwargs.region_name, or client_kwargs.endpoint_url.

For private S3-backed cache stores, see the S3 cache storage guide.

Default result cache key

Each request gets a content-addressed cache key for result reuse. llm-batch-py hashes the request payload together with the job/provider context, using SHA-256 over a canonical JSON representation.

By default the cache key includes:

  • the rendered request payload from your prompt_builder or text_builder
  • job.name
  • prompt_builder.version or text_builder.version
  • provider name and model
  • endpoint kind (structured or embeddings)
  • structured-output schema, when applicable
  • provider options that affect outputs: temperature, max_output_tokens, dimensions, base_url, and organization
  • shared prompt-cache config, when set on a structured-output job

Notably, row IDs and key_cols are not part of the result cache key. If two rows in the same job render the same payload under the same config, they will hit the same cached result.

Cache key customization

There is no explicit cache_key_fn or cache-key override API today.

The supported ways to change cache identity are:

  • change job.name to create a separate cache namespace
  • bump the prompt builder version when prompt semantics change
  • change the rendered payload or provider/model settings
  • point root_uri at a different result cache store if you want fully isolated cached results

Customizing lock config

lock=LockConfig(...) controls how llm-batch-py recovers from abandoned job locks.

from llm_batch_py import LockConfig

lock = LockConfig(ttl_seconds=6 * 60 * 60)
  • ttl_seconds: if a previous run left a lock behind and it is older than this TTL, a new run can reclaim it. Default: 3600.
  • allow_unsafe_s3_compatible_locks: bypasses the safeguard that rejects custom S3-compatible endpoint_url lock backends. Default: False.

allow_unsafe_s3_compatible_locks=True does not make S3-compatible locking safe. It only suppresses the fail-fast guard for users who already serialize runners externally.

If you mean provider prompt caching rather than the llm-batch-py result cache store, configure that on the job:

from llm_batch_py import PromptCacheConfig

job = StructuredOutputJob(
    ...,
    prompt_cache=PromptCacheConfig(mode="auto"),
)

PromptCacheConfig(...) controls shared provider-side prompt caching behavior.

  • mode="off" disables provider prompt caching.
  • mode="auto" uses provider-managed prompt caching.
  • verbose=True logs one INFO estimated-analysis diagnostic per distinct prompt shape showing the likely cacheable prefix candidate and likely trailing dynamic content candidate.
  • llm-batch-py does not expose provider-specific prompt-cache options; it only enables shared automatic caching behavior.

Customizing batch config

batch=BatchConfig(...) controls how pending rows are grouped into provider batch submissions.

from llm_batch_py import BatchConfig

batch = BatchConfig(
    batch_size=500,
    max_retries=3,
)
  • batch_size: hard cap on requests per submitted batch. If unset, llm-batch-py uses the provider's built-in batch request limit.
  • max_retries: maximum retries for retryable failed rows before they are held as failed. Default: 2.

Provider payload byte caps and batch completion windows are derived internally from the selected provider adapter rather than configured in BatchConfig.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

llm_batch_py-0.1.4.tar.gz (193.7 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

llm_batch_py-0.1.4-cp313-cp313-win_amd64.whl (226.0 kB view details)

Uploaded CPython 3.13Windows x86-64

llm_batch_py-0.1.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (369.5 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

llm_batch_py-0.1.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (357.1 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

llm_batch_py-0.1.4-cp313-cp313-macosx_11_0_arm64.whl (327.9 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

llm_batch_py-0.1.4-cp313-cp313-macosx_10_12_x86_64.whl (337.9 kB view details)

Uploaded CPython 3.13macOS 10.12+ x86-64

llm_batch_py-0.1.4-cp312-cp312-win_amd64.whl (226.6 kB view details)

Uploaded CPython 3.12Windows x86-64

llm_batch_py-0.1.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (370.2 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

llm_batch_py-0.1.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (357.6 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

llm_batch_py-0.1.4-cp312-cp312-macosx_11_0_arm64.whl (328.3 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

llm_batch_py-0.1.4-cp312-cp312-macosx_10_12_x86_64.whl (338.3 kB view details)

Uploaded CPython 3.12macOS 10.12+ x86-64

llm_batch_py-0.1.4-cp311-cp311-win_amd64.whl (226.4 kB view details)

Uploaded CPython 3.11Windows x86-64

llm_batch_py-0.1.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (370.4 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

llm_batch_py-0.1.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (358.0 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

llm_batch_py-0.1.4-cp311-cp311-macosx_11_0_arm64.whl (332.1 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

llm_batch_py-0.1.4-cp311-cp311-macosx_10_12_x86_64.whl (341.1 kB view details)

Uploaded CPython 3.11macOS 10.12+ x86-64

llm_batch_py-0.1.4-cp310-cp310-win_amd64.whl (226.3 kB view details)

Uploaded CPython 3.10Windows x86-64

llm_batch_py-0.1.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (370.4 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

llm_batch_py-0.1.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (358.0 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

llm_batch_py-0.1.4-cp310-cp310-macosx_11_0_arm64.whl (332.2 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

llm_batch_py-0.1.4-cp310-cp310-macosx_10_12_x86_64.whl (341.0 kB view details)

Uploaded CPython 3.10macOS 10.12+ x86-64

File details

Details for the file llm_batch_py-0.1.4.tar.gz.

File metadata

  • Download URL: llm_batch_py-0.1.4.tar.gz
  • Upload date:
  • Size: 193.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for llm_batch_py-0.1.4.tar.gz
Algorithm Hash digest
SHA256 ab00ec509273bdb191c6a9b8f976f60f4405d4a23bbdc60353230a8f748fd111
MD5 e28f258415e1a4546fb3c7738e0dae5a
BLAKE2b-256 efd8f37c539f36a22c507923ed83eaa216ab90c7dd049f839bd951dc2f5fc8bd

See more details on using hashes here.

Provenance

The following attestation bundles were made for llm_batch_py-0.1.4.tar.gz:

Publisher: publish.yml on zhjch05/llm-batch-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file llm_batch_py-0.1.4-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for llm_batch_py-0.1.4-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 e6c88fbd2d27cb6e06dcd5987deb403cb712055c84981b8a688ef9574a9ea96c
MD5 aba73782a6783b02a992eb62ebaef61d
BLAKE2b-256 e4a982c37b8367fe4d2690c2d8c85a0c7daf83d000afe51d33411f5511849df6

See more details on using hashes here.

Provenance

The following attestation bundles were made for llm_batch_py-0.1.4-cp313-cp313-win_amd64.whl:

Publisher: publish.yml on zhjch05/llm-batch-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file llm_batch_py-0.1.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for llm_batch_py-0.1.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c3b597d220eda2a4ed74367723cfb4822741c96b74b0586617e54f6ffe037959
MD5 dab05bd9a8dee7e9472ececfc1825666
BLAKE2b-256 079cf5fdb42ae3dbc0f9346235f10fa5c3557fe444dcc3f1b94db09b18a5ea44

See more details on using hashes here.

Provenance

The following attestation bundles were made for llm_batch_py-0.1.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish.yml on zhjch05/llm-batch-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file llm_batch_py-0.1.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for llm_batch_py-0.1.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 f7df9a55cc353b07136521c1822c2f2a7ab7c0226c9943ce56afc88fa65f8d1f
MD5 082bb30eaf3e527af781021bf18bfcd9
BLAKE2b-256 059dd7e4c02ff7eeadaa6c4d643a401122a16ad13a46b2c507879455167d48c9

See more details on using hashes here.

Provenance

The following attestation bundles were made for llm_batch_py-0.1.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: publish.yml on zhjch05/llm-batch-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file llm_batch_py-0.1.4-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for llm_batch_py-0.1.4-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 eccf77bac42992877e3e55d0092e1a3b9c7cd1c7786fe04ccb2a4549a0ac7ab2
MD5 57bf8d0cf22f452a4476fcd92e02446a
BLAKE2b-256 1bbf391519d97de021639976797f090237a9b83647af9312bc5a8d4570275294

See more details on using hashes here.

Provenance

The following attestation bundles were made for llm_batch_py-0.1.4-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: publish.yml on zhjch05/llm-batch-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file llm_batch_py-0.1.4-cp313-cp313-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for llm_batch_py-0.1.4-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 1475abe529a264d418092c67dae1dd2174bdb9e1354b3662b39588b0c43d56c4
MD5 07413b08a4f4e766c8cd3f591d410b8b
BLAKE2b-256 3ba518641dee318582410fda47ae0b5c1f8523e67bb3e8a384cecad81768ed76

See more details on using hashes here.

Provenance

The following attestation bundles were made for llm_batch_py-0.1.4-cp313-cp313-macosx_10_12_x86_64.whl:

Publisher: publish.yml on zhjch05/llm-batch-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file llm_batch_py-0.1.4-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for llm_batch_py-0.1.4-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 e5665192c10326ae337f0ccdd7d7e9587435b7b9bec63afea0ce87827b175c01
MD5 a5f8911e55ffdebfc7dd3cadb3ac1aba
BLAKE2b-256 9e037969814de9a2cd7c5e07381c292d876a9011ea50ae6b9ad41297b3515a40

See more details on using hashes here.

Provenance

The following attestation bundles were made for llm_batch_py-0.1.4-cp312-cp312-win_amd64.whl:

Publisher: publish.yml on zhjch05/llm-batch-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file llm_batch_py-0.1.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for llm_batch_py-0.1.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2da34963ec2a881e2977d25a4efbe1bb4f0a8babc12a8e81d9f61be740b3e76d
MD5 2c68664db87beb020c8e71e885c2dddf
BLAKE2b-256 76e2e1ca36d7a197f7fe46d4ee67e6d7cc1d8151b27f6d1f1219b7df71a26fb3

See more details on using hashes here.

Provenance

The following attestation bundles were made for llm_batch_py-0.1.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish.yml on zhjch05/llm-batch-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file llm_batch_py-0.1.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for llm_batch_py-0.1.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 9923d0223d9b2ce85f5c8b1f0cbe432e9388c0e125518d477b03280c8eec5c9f
MD5 33a656d4173ee4cab0f92c1fb98de765
BLAKE2b-256 a8ebed7092c2c992c3a13cafc0ff96aaaf7ac986f5e4ee2de8fa98847ccbdaa1

See more details on using hashes here.

Provenance

The following attestation bundles were made for llm_batch_py-0.1.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: publish.yml on zhjch05/llm-batch-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file llm_batch_py-0.1.4-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for llm_batch_py-0.1.4-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 dfa26601f248f835d53be7b496a44829b29a202be992c0540a2134eb5f0a20ff
MD5 7c9987f37dc6d1d7bda2a8b72cc7d00d
BLAKE2b-256 1235c96f3b91d0bdc18d0d8087e0ad3c1302bf45ab2f1542100a6612b071c3d5

See more details on using hashes here.

Provenance

The following attestation bundles were made for llm_batch_py-0.1.4-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: publish.yml on zhjch05/llm-batch-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file llm_batch_py-0.1.4-cp312-cp312-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for llm_batch_py-0.1.4-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 2854892b6267b006589459765add1da8e48ba3c9a74a6ff378501dc79b6ba6cf
MD5 e2f371dd4a5efdf794fd308b3ec5ddbf
BLAKE2b-256 6a785fb53a398db3979f0c051a53c5ff5eb1e3c53a131463eab4a68ca78ae220

See more details on using hashes here.

Provenance

The following attestation bundles were made for llm_batch_py-0.1.4-cp312-cp312-macosx_10_12_x86_64.whl:

Publisher: publish.yml on zhjch05/llm-batch-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file llm_batch_py-0.1.4-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for llm_batch_py-0.1.4-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 8e73f63b640d1d7fe5bdadeba15f7fd21dd8ef49b99a1224f550f8faf526feb2
MD5 a888d767a534b3e032c2b6aa26942e63
BLAKE2b-256 d51e810d6dbcc564a96a810f965bcc0b2d687869669b7c039883226c8138d258

See more details on using hashes here.

Provenance

The following attestation bundles were made for llm_batch_py-0.1.4-cp311-cp311-win_amd64.whl:

Publisher: publish.yml on zhjch05/llm-batch-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file llm_batch_py-0.1.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for llm_batch_py-0.1.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5c6a1aae865719a6e5c167aa0bfa53d519df822474672f4c1f91b49c3233a26f
MD5 775ace40bcc9018b589c51ca2f238c4e
BLAKE2b-256 a1ae93a47eee1d23f3e4c4336f41aa332470b8b2e120f58f30870433bc169938

See more details on using hashes here.

Provenance

The following attestation bundles were made for llm_batch_py-0.1.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish.yml on zhjch05/llm-batch-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file llm_batch_py-0.1.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for llm_batch_py-0.1.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 ad259eb779ff99e598b99afc9ca673554bccef67233826c150ac413258c981bf
MD5 919174342749c273cdee283a40fbaf64
BLAKE2b-256 b931a06b71b70d35312e04d07a48cdadfa91c189a1581b7304649d5b7fa2d12c

See more details on using hashes here.

Provenance

The following attestation bundles were made for llm_batch_py-0.1.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: publish.yml on zhjch05/llm-batch-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file llm_batch_py-0.1.4-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for llm_batch_py-0.1.4-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2dccb014fd0be427333359f742fe1a1933ddfdd00b873bffdde826de425b6583
MD5 b1b97c9b0b707c1ef251a131cad44677
BLAKE2b-256 780e2c141ca5648af17240d1dba61489150e2b3185a645716320f28bca0f470c

See more details on using hashes here.

Provenance

The following attestation bundles were made for llm_batch_py-0.1.4-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: publish.yml on zhjch05/llm-batch-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file llm_batch_py-0.1.4-cp311-cp311-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for llm_batch_py-0.1.4-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 69aafe04749368285e317bc18f87636c33f077db6795a6df2ecb3831df2054b9
MD5 09c18cf989a0bba23fcade3f79138416
BLAKE2b-256 122444e9d37322574b2b83d1402a1446d9c43ca5a5f317ec25f68176dbf25f7d

See more details on using hashes here.

Provenance

The following attestation bundles were made for llm_batch_py-0.1.4-cp311-cp311-macosx_10_12_x86_64.whl:

Publisher: publish.yml on zhjch05/llm-batch-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file llm_batch_py-0.1.4-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for llm_batch_py-0.1.4-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 87851c1de8fb4e33144c6cdd32565397e162ddf05403727ac22167d134aa0937
MD5 1c5d26e837fdaa632dff344ad80ac895
BLAKE2b-256 6da15e8595686891cd8ef3b0cf8f93dfeae35e4cffef5adb85a14bef6bb42e8d

See more details on using hashes here.

Provenance

The following attestation bundles were made for llm_batch_py-0.1.4-cp310-cp310-win_amd64.whl:

Publisher: publish.yml on zhjch05/llm-batch-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file llm_batch_py-0.1.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for llm_batch_py-0.1.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 079ec23c9575c23f894bd960fd885b2fffc4456ef535b3f4b14e5fe0a6703307
MD5 4cd0645639754dd2cf7cac9f237e7e83
BLAKE2b-256 51d636127a7c50121fade54bdafd08015a73f0b1c74e35525ab3564620401ce6

See more details on using hashes here.

Provenance

The following attestation bundles were made for llm_batch_py-0.1.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish.yml on zhjch05/llm-batch-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file llm_batch_py-0.1.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for llm_batch_py-0.1.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 b67fc5c28ec3090364d4dd793b7e78acd0a82ac8ecaf327e86faff3ee8b3c994
MD5 f389fb3ad9ec384ff9e6d7f664386bcd
BLAKE2b-256 d85bca5c41c1b53d37adc65332120aa575860545e5824d8e62e7adee41251dd2

See more details on using hashes here.

Provenance

The following attestation bundles were made for llm_batch_py-0.1.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: publish.yml on zhjch05/llm-batch-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file llm_batch_py-0.1.4-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for llm_batch_py-0.1.4-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f086009557adcc7a98d7d78741d18d903c54ed68feb42559407c00e49896683d
MD5 4e74c6cd8f34d0fd3dd3d631b90711ee
BLAKE2b-256 663f6fd748ea62876002dcc5896b2cfdf1530817de14e965c74487524d0c13e0

See more details on using hashes here.

Provenance

The following attestation bundles were made for llm_batch_py-0.1.4-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: publish.yml on zhjch05/llm-batch-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file llm_batch_py-0.1.4-cp310-cp310-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for llm_batch_py-0.1.4-cp310-cp310-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 feb21ab66ca5697ee3feed398487b6234714e2aefdff8ee40c9648822162d962
MD5 5f7cbf1d01c86bb315209e08ec41b162
BLAKE2b-256 45bb5bb53346e4b295b30c6a147aa71b51a40d2d0d3a72276afc0fc9f2faea99

See more details on using hashes here.

Provenance

The following attestation bundles were made for llm_batch_py-0.1.4-cp310-cp310-macosx_10_12_x86_64.whl:

Publisher: publish.yml on zhjch05/llm-batch-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page