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.5.tar.gz (194.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.5-cp313-cp313-win_amd64.whl (226.5 kB view details)

Uploaded CPython 3.13Windows x86-64

llm_batch_py-0.1.5-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (370.0 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

llm_batch_py-0.1.5-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (357.6 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

llm_batch_py-0.1.5-cp313-cp313-macosx_11_0_arm64.whl (328.4 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

llm_batch_py-0.1.5-cp313-cp313-macosx_10_12_x86_64.whl (338.5 kB view details)

Uploaded CPython 3.13macOS 10.12+ x86-64

llm_batch_py-0.1.5-cp312-cp312-win_amd64.whl (227.0 kB view details)

Uploaded CPython 3.12Windows x86-64

llm_batch_py-0.1.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (370.7 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

llm_batch_py-0.1.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (358.1 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

llm_batch_py-0.1.5-cp312-cp312-macosx_11_0_arm64.whl (328.7 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

llm_batch_py-0.1.5-cp312-cp312-macosx_10_12_x86_64.whl (338.9 kB view details)

Uploaded CPython 3.12macOS 10.12+ x86-64

llm_batch_py-0.1.5-cp311-cp311-win_amd64.whl (226.9 kB view details)

Uploaded CPython 3.11Windows x86-64

llm_batch_py-0.1.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (370.9 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

llm_batch_py-0.1.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (358.5 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

llm_batch_py-0.1.5-cp311-cp311-macosx_11_0_arm64.whl (332.6 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

llm_batch_py-0.1.5-cp311-cp311-macosx_10_12_x86_64.whl (341.7 kB view details)

Uploaded CPython 3.11macOS 10.12+ x86-64

llm_batch_py-0.1.5-cp310-cp310-win_amd64.whl (226.8 kB view details)

Uploaded CPython 3.10Windows x86-64

llm_batch_py-0.1.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (370.9 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

llm_batch_py-0.1.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (358.5 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

llm_batch_py-0.1.5-cp310-cp310-macosx_11_0_arm64.whl (332.6 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

llm_batch_py-0.1.5-cp310-cp310-macosx_10_12_x86_64.whl (341.5 kB view details)

Uploaded CPython 3.10macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: llm_batch_py-0.1.5.tar.gz
  • Upload date:
  • Size: 194.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.5.tar.gz
Algorithm Hash digest
SHA256 3198166a169820cf27ecf58441add4293b0392960cf3a33d6c486b6a01325716
MD5 82978ce64267b38317957a31773eaaf7
BLAKE2b-256 77203438da615167fe646d809ad4f4ab53f6bcbeaf0514699d15c1e4dfab4f39

See more details on using hashes here.

Provenance

The following attestation bundles were made for llm_batch_py-0.1.5.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.5-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for llm_batch_py-0.1.5-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 bfd34492612c5ab4e767b4aa790c9b6417015aea3dd74a440ec009980d873bac
MD5 8b77b3c4fcb0430b12b46fe81d63d9c9
BLAKE2b-256 ea906ef8f44988e5c7367c5268ebf787211b501ce4a6512cacbbb1a790ea9738

See more details on using hashes here.

Provenance

The following attestation bundles were made for llm_batch_py-0.1.5-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.5-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for llm_batch_py-0.1.5-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 87e4020a5e2878c4ca59ee2d47c076e95ed6e0982ddd6ad2d5ef6dbbb366ab95
MD5 efbb8c4e7e5cf11bbe7b9f3b828a24eb
BLAKE2b-256 f43df9165cd571d843cb1df6eeefb87208844402dbb7360f2e8377adc4a8a354

See more details on using hashes here.

Provenance

The following attestation bundles were made for llm_batch_py-0.1.5-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.5-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for llm_batch_py-0.1.5-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 8b9ad74ed4432843f739529944c9f2a26f2a2b0486a4f7be78fd63587c29083f
MD5 46c9a86ea95eada72cb4d6a1b244fd8f
BLAKE2b-256 bb01f27fc4ac961b3e547b9e428826031aa3c0b0c04a44fbab599eea3b4cbd04

See more details on using hashes here.

Provenance

The following attestation bundles were made for llm_batch_py-0.1.5-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.5-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for llm_batch_py-0.1.5-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 03291494f3f7e6033216e2b353ce731e8a34124cfe85a2cd0ffe5b79ecad3394
MD5 ebd04abe682eaeb40cff8b8eb41cb9ff
BLAKE2b-256 4b9b4e7f8bf1125990ae3f4f5d74517125a761d115c34fde06d9d0e81384333a

See more details on using hashes here.

Provenance

The following attestation bundles were made for llm_batch_py-0.1.5-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.5-cp313-cp313-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for llm_batch_py-0.1.5-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 44159e9c4c678baec948f69cf157d9279e4298361da2d6cf45f5656c0ac2d65c
MD5 d9afb601ff2d5631152325a05aa31615
BLAKE2b-256 1f16b66431de47f340bc24b8f2302f29db2901541c5c0c64f10df90facf8d192

See more details on using hashes here.

Provenance

The following attestation bundles were made for llm_batch_py-0.1.5-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.5-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for llm_batch_py-0.1.5-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 e2d993c0a5f7ff38408f6d9216b2cc30b544fdb3a44efde0071c5b378c1c286e
MD5 4df3ccbf42a391f3bffdb585a42cdb6c
BLAKE2b-256 e5c007596a64bde493327a08674d0fa236779c7ed5e93ec090fd7e2093eaa114

See more details on using hashes here.

Provenance

The following attestation bundles were made for llm_batch_py-0.1.5-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.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for llm_batch_py-0.1.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 63abda7be65eeb448d2fcc1302790ee7fd7d656a398f82ce8447280940b05e3f
MD5 19764b965c8fea7e4f707ffeb0d9b6a1
BLAKE2b-256 7f1389f1736d17c0de03d08e70a3714ae875a4e367b9f42a311bc22a82e5e68a

See more details on using hashes here.

Provenance

The following attestation bundles were made for llm_batch_py-0.1.5-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.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for llm_batch_py-0.1.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 fef3c21b393cbe5e37a42beb991b9e2454d3c3d3e7a29283317e6d0af59fe1c4
MD5 d16db5c077b11e8b16c70bfe3138c5df
BLAKE2b-256 128b5f9d4626558185899b9d39835307e3f55f05baad35813c8d6b58cd8f2f32

See more details on using hashes here.

Provenance

The following attestation bundles were made for llm_batch_py-0.1.5-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.5-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for llm_batch_py-0.1.5-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 bfe5cea1eb9943de2d24947f52c7fdf51b091bc6bd02943ff11587bc92b53f4a
MD5 58f0e17ed2e375dbac8943b298e66fcd
BLAKE2b-256 755018a5331acb541a91ef5749fb8da9093bc68993d8d38609c743f42649390f

See more details on using hashes here.

Provenance

The following attestation bundles were made for llm_batch_py-0.1.5-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.5-cp312-cp312-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for llm_batch_py-0.1.5-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 82a647e05d04e54fca45adfec85ac9f0e223e8e39642ca255224eb308d23ea30
MD5 4d8540815b8c5ad179507e2a1810ca82
BLAKE2b-256 37730d1b83128e9dc2ef06d66e375488182fbe573e2b8b476182fc385f0d8f90

See more details on using hashes here.

Provenance

The following attestation bundles were made for llm_batch_py-0.1.5-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.5-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for llm_batch_py-0.1.5-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 ab3a3192b55f9e6b14a5134ee23c20cd9fac20046f805023dd423e117780e15d
MD5 c6d7717fabd96d60f9c6de19145697bf
BLAKE2b-256 59e1aa6c3f8a04921c8c78e59f0f63ce009eca4f890c174a1bc0c327d5599f4c

See more details on using hashes here.

Provenance

The following attestation bundles were made for llm_batch_py-0.1.5-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.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for llm_batch_py-0.1.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 161e4f6aedc224fea2f03b17acd2734f36fec69b14fc02f6a10d7353c5511c18
MD5 0a1237c76fcbb89323c0294e4853b1eb
BLAKE2b-256 810b9d74a40b2c77ceb79f2c17211bdefbc0750c30056f5fedf0a4db000592cd

See more details on using hashes here.

Provenance

The following attestation bundles were made for llm_batch_py-0.1.5-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.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for llm_batch_py-0.1.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 b96884a7a72f2cfbe3ab17baa556fe9ef6a1abb846f6911d25c851acccf2a5d9
MD5 3b212795453c70ffba3d6675d8bce0ff
BLAKE2b-256 55165539fbaa2f65ef86a4765e506857f6a0fdc863f6f6d2684bed3ad5983aa7

See more details on using hashes here.

Provenance

The following attestation bundles were made for llm_batch_py-0.1.5-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.5-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for llm_batch_py-0.1.5-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 da676f04cf55869e1bc0f702611f8a89bbff1516e03badcdb9b673c854d71114
MD5 27f05348d60ed78df602640979a5d019
BLAKE2b-256 00900edab6a18fc30c44602813b5771782b7a3c712eb54525d3a8b76ca3c72e9

See more details on using hashes here.

Provenance

The following attestation bundles were made for llm_batch_py-0.1.5-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.5-cp311-cp311-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for llm_batch_py-0.1.5-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 e6e34dd9d27178450b0afae47397587f3c07d5f4b47f4793f186adca06212da4
MD5 bf6be46cc8380f1c4fa4fa6178cf34fb
BLAKE2b-256 dc0fb85c9b9a2d9b04b6638e9f93a7eeb61342484a59795a6474d96898ce69bc

See more details on using hashes here.

Provenance

The following attestation bundles were made for llm_batch_py-0.1.5-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.5-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for llm_batch_py-0.1.5-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 1d8fc2edd57f8493ec95cdfbc313b5525a43c3bb124cad44d458758f36d5ae0e
MD5 8e91e5a62e7c515c3934bddcc9cb123f
BLAKE2b-256 40d41256dd46865a6cc0aff05e1224b53c2e694379f11c52f78f58b8172fa6fd

See more details on using hashes here.

Provenance

The following attestation bundles were made for llm_batch_py-0.1.5-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.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for llm_batch_py-0.1.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1b4335f5a1f7f65548d029b017c7177e74a86235e0d5796de0addadc00df6e50
MD5 6f596da7797265ed000a38023b868ead
BLAKE2b-256 af9a24aa9bd3e5cf1a9591dcec42d29f26915b93162f168b543e7478cc50c6e0

See more details on using hashes here.

Provenance

The following attestation bundles were made for llm_batch_py-0.1.5-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.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for llm_batch_py-0.1.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 bb1a50f8f8f8e220fb69f25239ec21b19e08cef3d78a486e4d70b6a77de46d2d
MD5 0a5ae69280d3a7529772da04ddf1c12b
BLAKE2b-256 013a4ca20ab5e15e9a09bbba5d10d617f62dca4628373654b6f2d0476e249235

See more details on using hashes here.

Provenance

The following attestation bundles were made for llm_batch_py-0.1.5-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.5-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for llm_batch_py-0.1.5-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c07f40c69380b68cd9de06085b9aae01d46a0e49b60ab7e90ae80e267ddfbef2
MD5 c0aa9caa735de7afffffdea87795c026
BLAKE2b-256 8e8b234647702c353e67b605b2882043442808c15e1d97a7a26d3e5d6d830a9b

See more details on using hashes here.

Provenance

The following attestation bundles were made for llm_batch_py-0.1.5-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.5-cp310-cp310-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for llm_batch_py-0.1.5-cp310-cp310-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 f68262b27bc46a6ad15d9f43fbb39d837938a3b73431bf96eec467b233f10e15
MD5 6a9c973f0e0a7d15067edab96b64b65f
BLAKE2b-256 25593b473814cd495a099c3ff5f0417d24fb94c0fbf85b329d242aa08549e01b

See more details on using hashes here.

Provenance

The following attestation bundles were made for llm_batch_py-0.1.5-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