Skip to main content

infera — deploy & chill

infera

Deploy GGUF (llama-cpp-python) models to RunPod or Replicate with one command.

pip install infera-deploy

infera init my-project
cd my-project
cp ~/Downloads/llama.gguf models/
infera deploy runpod        # or: replicate

That's it. No Dockerfile, no Cog config, no GraphQL — infera writes the runtime, builds the image, uploads the model, and registers the serverless endpoint.

Package name on PyPI is infera-deploy; the Python module and CLI are both infera.

What you'll need

  • Python 3.10+
  • A .gguf model file (e.g. from TheBloke on Hugging Face)
  • For RunPod: Docker daemon, RunPod API key, Docker Hub login (docker login)
  • For Replicate: cog (Linux/macOS or WSL), cog login

What infera deploy actually does

  1. Bundles a runtime tailored to the provider (Dockerfile + handler for RunPod, predict.py + cog.yaml for Replicate)
  2. Builds and pushes the container image
  3. (RunPod) Creates a network volume and uploads .gguf files to it — idempotent, skips unchanged models via MD5
  4. Registers / upserts the serverless endpoint
  5. Smoke-tests it and prints the URL

Re-runs are idempotent: same template, same volume, only changed bits get re-shipped.

Calling a deployed endpoint

The job input is OpenAI-ish:

{
  "input": {
    "messages":    [{"role": "user", "content": "Hello"}],
    "model":       "llama",
    "temperature": 0.7,
    "max_tokens":  512
  }
}

model is optional — it's the filename stem (e.g. llama-3.2-1b for llama-3.2-1b.gguf). If omitted, the first model alphabetically is used.

For embeddings: "endpoint": "embeddings" and "input": "text" (or a list).

For function calling / structured output: pass tools, response_format, or grammar (GBNF) the same way you would to OpenAI.

RunPod: POST https://api.runpod.ai/v2/<endpoint>/runsync with Authorization: Bearer <RUNPOD_KEY>. Replicate: standard Replicate API. messages and tools are JSON-encoded strings (Cog limitation).

Adding a model to a deployed project

cp another.gguf models/
infera deploy runpod

Idempotent — only the new .gguf gets uploaded. Multiple models live side-by-side on the volume; pick one per request via the model field.

Provider configs

First infera deploy <provider> drops <provider>.yaml into the project root. Edit and re-deploy.

# runpod.yaml
gpu:           AMPERE_16,AMPERE_24
gpu_vram_min:  8
workers_min:   0
workers_max:   1
idle_timeout:  5
datacenter:    EU-RO-1

Using the engine locally (advanced)

from infera import Engine

engine = Engine("./models")
print(engine.chat([{"role": "user", "content": "Hello"}]))

Support

If infera saved you an afternoon of Dockerfile yak-shaving, consider buying me a coffee:

Buy Me A Coffee

License

MIT

Release files for infera-deploy 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for infera-deploy 0.1.0
File Size Uploaded
infera_deploy-0.1.0.tar.gz 18.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for infera-deploy 0.1.0
File Interpreter ABI Platform
infera_deploy-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 39.1 kB

Release files / infera_deploy-0.1.0.tar.gz

Download URL infera_deploy-0.1.0.tar.gz
Size 18.2 kB
Tags Source
SHA-256 checksum
How to use checksums
ff3bd8574c4dcd06c9f7282e2baf2e6809c43a30ce8d41f6a8f05d7f1f193190
BLAKE2b-256 checksum
How to use checksums
64506126de97d08efd017f4214ddab89edc97ff654a5eaebe512d3ee3c4a5f9f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.11

Release files / infera_deploy-0.1.0-py3-none-any.whl

Download URL infera_deploy-0.1.0-py3-none-any.whl
Size 20.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
96a2dd827c86566271781eb522f5673ddec67f800956c60a9d9108630af7867f
BLAKE2b-256 checksum
How to use checksums
7a14621c4758f46633ec2f421fff40cb37be0df5e7ce69d8ad3ca1d585d10884
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.11

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page