✨ feat(compose): support host Ollama and OpenAI embeddings - #333
Open
yeazelm wants to merge 2 commits into
Open
Conversation
yeazelm
marked this pull request as ready for review
August 26, 2026 22:13
Contributor
|
| Filename | Overview |
|---|---|
| compose/native-ollama/compose.yaml | Adds a host-Ollama stack whose search service waits for a successful embedding-model preflight. |
| compose/openai-embeddings/compose.yaml | Adds an OpenAI-backed search configuration while retaining local Ollama for synchronous operations. |
| docs/installation.md | Documents the three deployment modes, their operational tradeoffs, and safe switching instructions. |
| makefile | Documents the existing up target and adds a volume-preserving Compose shutdown target. |
Flowchart
%%{init: {'theme': 'neutral'}}%%
flowchart LR
User[User] --> Default[Default Compose stack]
User --> Native[Native Ollama recipe]
User --> OpenAI[OpenAI embeddings recipe]
Default --> DockerOllama[Containerized Ollama]
Native --> HostOllama[Host Ollama]
Native --> Preflight[Pull embeddinggemma]
Preflight --> SearchNative[Background search embeddings]
HostOllama --> SearchNative
OpenAI --> OpenAISearch[OpenAI background embeddings]
OpenAI --> LocalOllama[Containerized Ollama for synchronous work]
Reviews (1): Last reviewed commit: "♻️ refactor(compose): provide standalone..." | Re-trigger Greptile
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
docker-compose.yamlas the simplest fully containerized stackcompose/native-ollamaandcompose/openai-embeddingsdeployment recipes, each with its own READMEWhy
The default should remain one command that launches everything and demonstrates the complete local system. Its known tradeoff is that Docker Desktop cannot expose the Apple GPU to the ordinary Ollama Linux container, so a finished capture may leave background embedding consuming CPU for some time.
The two standalone recipes address that less-obvious background workload without pretending local Tapes will match Paper's cloud performance:
compose/native-ollamasends Ollama traffic to the host and verifiesembeddinggemmais available before search starts.compose/openai-embeddingssends only background span embeddings to OpenAI. Synchronous work such as skill generation can remain slower in containerized Ollama.On an M5 Pro, the same
embeddinggemmabacklog measured:Native Ollama completed 955 embeddings in about 33 seconds—roughly 95x faster—with no embedding failures.
Usage
Validation
make formatmake testmake checkdocker compose config --quiet--build --wait; its model preflight completed, all services became healthy, andGET /pingreturnedpong100% GPU, the embedding queue drained, and subsequent search passes reported zero outstanding embeddingsLinear
Fixes PCC-1284