Skip to main content

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

[!tip] You can also create a config.yaml file in the working dir where ollambda is running, this file will be preferred.

[!note] Ollambda uses ConfigLite for its config backend, which I also develop.

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ollambda-0.1.7.tar.gz (23.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ollambda-0.1.7-py3-none-any.whl (22.6 kB view details)

Uploaded Python 3

File details

Details for the file ollambda-0.1.7.tar.gz.

File metadata

  • Download URL: ollambda-0.1.7.tar.gz
  • Upload date:
  • Size: 23.9 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

Hashes for ollambda-0.1.7.tar.gz
Algorithm Hash digest
SHA256 bf8cbb38161d3aa06f6827aa3117a3c8291d0e350f6a26ac02f12b47fbd45bae
MD5 165bd2df72ab0862ad54df9e05535a1d
BLAKE2b-256 b0615d04bcd2670fce3105f62beb60baa3757d9419aca5f2e8779a2d85338c72

See more details on using hashes here.

File details

Details for the file ollambda-0.1.7-py3-none-any.whl.

File metadata

  • Download URL: ollambda-0.1.7-py3-none-any.whl
  • Upload date:
  • Size: 22.6 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

Hashes for ollambda-0.1.7-py3-none-any.whl
Algorithm Hash digest
SHA256 9af78ee5e3aadef5c11f671415b526b9b0d33d3538a80a7fb51afbdcbed12667
MD5 ab7f0af16e04a14142f49dd5d0b0542a
BLAKE2b-256 81fe615cf380a7bab9e8b35111450bd948ba5908d236552b0960f74d8da0e8e0

See more details on using hashes here.

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