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.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| ollambda-0.3.3.tar.gz | 48.8 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ollambda-0.3.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 96.9 kB
Release files / ollambda-0.3.3.tar.gz
| Download URL | ollambda-0.3.3.tar.gz |
|---|---|
| Size | 48.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0b3f185c0ffe0f2e5113c6fe2242347ce2be333430af186b27af14203bde02bb
|
|
BLAKE2b-256 checksum How to use checksums |
ffccb18635d5f9b1264f4143db30a244151df3938798a736c8f0f00b1348c5f2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","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.3-py3-none-any.whl
| Download URL | ollambda-0.3.3-py3-none-any.whl |
|---|---|
| Size | 48.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b36da6befbc2b12fb6d74664d9e643fd26cbdad3ec3e9bfcad5a1497e64cad38
|
|
BLAKE2b-256 checksum How to use checksums |
1628ada69ef86c7b70631af8f975cd63040fc6c9bccec829856ce99b527ee4e9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","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.3
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.