Skip to main content

ollambda

Simple Flask based API server to proxy ollama calls to a more performant backend (such as llama.cpp)

Why should I use this package?

Honestly, you probably shouldn't. Not only is it currently nowhere near completion, there are plenty of alternatives.

Ollambda mostly exists as a personal learning tool.

But if you still want to, then continue on to see usage instructions and more info.

If you find a bug, feel free to open an issue, or make a pull request. Contributions are welcome!

How to Use

Installation

To install ollambda, either install using pip install ollambda or clone this repository and use pip install .

Development

A dev optional is provided for those wishing to make alterations. It includes extra utilities for testing, linting, etc.

venv

Venv usage is encouraged, the simplest way to manage this is to use uv:

cd ollambda
uv venv .venv
source .venv/bin/activate
uv pip install ollambda

Configuration

Currently ollambda proxies requests to an upstream llama.cpp server. The address is configured via environment variables or a YAML config file at ~/.ollambda/config.yaml:

Setting Config key Default Description
Host HOST 0.0.0.0 Host for bind address.
Port PORT 5000 Port for bind address.
Proxy IP PROXY_IP 127.0.0.1 Upstream LLM Server address.
Proxy port PROXY_PORT 8080 Upstream LLM Server port.
Storage Dir STORAGE_DIR ~/.ollambda Storage directory. Logs will be stored in a logs subdirectory here

Running the server

Start with the bundled command (uses Gunicorn internally):

ollambda

This spawns one worker per CPU core and binds to 0.0.0.0:5000 by default.

For manual control, you can also invoke Gunicorn directly:

gunicorn ollambda:app -w 4 -b 0.0.0.0:5000

ollama API coverage

Method Endpoint Description Implemented?
POST /api/generate Generate a completion (streaming or non-streaming) N
POST /api/chat Generate a chat completion (with tool calling support) Y
POST /api/create Create a model from another model, GGUF, or safetensors N (no plans)
GET /api/tags List locally available models Y
POST /api/show Show model information (details, modelfile, template, etc.) Y
POST /api/copy Copy a model to a new name N
DELETE /api/delete Delete a model Y
POST /api/pull Download a model from the Ollama library N
POST /api/push Upload a model to a model library N (no plans)
POST /api/embed Generate embeddings from a model Y
GET /api/ps List models currently loaded in memory Y
GET /api/version Retrieve the Ollama server version Y
HEAD /api/blobs/:digest Check if a file blob exists on the server N (no plans)
POST /api/blobs/:digest Push a file blob to the server N (no plans)

Metadata

Release files for ollambda 0.3.2

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

Source distribution (sdist)

Source distribution for ollambda 0.3.2
File Size Uploaded Provenance
ollambda-0.3.2.tar.gz 46.8 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for ollambda 0.3.2
File Interpreter ABI Platform
ollambda-0.3.2-py3-none-any.whl Python 3 none any Details

Total release size: 94.1 kB

Release files / ollambda-0.3.2.tar.gz

Download URL ollambda-0.3.2.tar.gz
Size 46.8 kB
Tags Source
SHA-256 checksum
How to use checksums
77e8e4b0a63436e60e597a444cd93f99a64938ff8f00d190162b23edc8a7ec8f
BLAKE2b-256 checksum
How to use checksums
2f57b327e8252eb61f15fab223e46302bfa4060456e1851255c20991ae93b586
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.17 {"installer":{"name":"uv","version":"0.12.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / ollambda-0.3.2-py3-none-any.whl

Download URL ollambda-0.3.2-py3-none-any.whl
Size 47.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
09c6fdb8eb9d4eb2fa71a4b000dfcbe135997e03e50cec38cc72a74e5c0f65e8
BLAKE2b-256 checksum
How to use checksums
54b8699be418cf3cad123c5bb9767577bca11eeaf319b604fe2cbfa29f0a9ecf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.17 {"installer":{"name":"uv","version":"0.12.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Security for ollambda 0.3.2

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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