Add your description here
Project description
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 .
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 .
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 | Env var | Config key | Default |
|---|---|---|---|
| Proxy IP | OLLAMBDA_PROXY_IP |
proxy_ip |
127.0.0.1 |
| Proxy port | OLLAMBDA_PROXY_PORT |
proxy_port |
8080 |
| Log Dir | OLLAMBDA_LOG_DIR |
log_dir |
~/.ollambda/logs |
Ollambda uses ConfigLite for its config backend, which I am also the developer of.
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) |
[!IMPORTANT] Current "implementation" may not be fully complete and API aligned.
[!NOTE] Source: https://github.com/ollama/ollama/blob/main/docs/api.md
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ollambda-0.1.5.tar.gz.
File metadata
- Download URL: ollambda-0.1.5.tar.gz
- Upload date:
- Size: 23.6 kB
- Tags: Source
- Uploaded using 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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f63097eb592f29da7ddabc4dcb5139293f42566af4bb9bb2113e3634632cf15b
|
|
| MD5 |
27b4b9871773e53e91fe28f943d655fa
|
|
| BLAKE2b-256 |
fb6ccfc460c9d2fe44b242e59a8b763d52bca514d0a3bcf7efd6b4d848d8e068
|
File details
Details for the file ollambda-0.1.5-py3-none-any.whl.
File metadata
- Download URL: ollambda-0.1.5-py3-none-any.whl
- Upload date:
- Size: 22.4 kB
- Tags: Python 3
- Uploaded using 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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7392880534c9fabb536a8df1562d914e80ba1f4b0480b4b60c4e19670054155a
|
|
| MD5 |
cccd345deb89b752a4987236735d5a42
|
|
| BLAKE2b-256 |
23f93006650b5f6bda3c5c48d9a64a877fd2ebaa97df8e6d8e39956da0533ba6
|