Model catalogue: extend to cover Ollama embedding models alongside HuggingFace models #57
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Background
Avocet has a well-built model lifecycle system for HuggingFace models (lookup → queue → approve → snapshot_download → SSE progress). It checks installation, prevents duplicate downloads, and surfaces "not installed" in the UI before the user tries to use a model.
This pattern does not currently cover Ollama embedding models, which other menagerie products (pagepiper, and future products) use via
LLMRouter.Problem
When a product is configured with
PAGEPIPER_OLLAMA_URLandPAGEPIPER_EMBED_MODEL=nomic-embed-textbut that model has not been pulled, the failure is silent until ingest runs. The error message (All LLM backends exhausted) is opaque (tracked in cf-core#X for improvement).Options
Option A — cf-core utility: Add a
check_ollama_model(base_url, model_name) -> boolhelper to cf-core that products can call at startup or at the first embed attempt. ReturnsFalse+ logsollama pull <model>hint if missing.Option B — Avocet extension: Extend Avocet's model catalogue to include an "Ollama" tab alongside HuggingFace. Looks up available models via
GET /api/tags, surfaces which ones are pulled, allows queuing a pull viaPOST /api/pull.Option C — Both: cf-core utility for programmatic checks (used in ingest scripts); Avocet UI for human-facing model management.
Recommendation
Option A is a small addition to cf-core and unblocks all products immediately. Option B is a good stretch goal for when Avocet's model catalogue UI is extended. Avocet's existing
_is_installed()/_is_queued()patterns are a clean template for Option A.Context
Discovered while onboarding pagepiper to the cloud instance (2026-05-05). Avocet exploration surfaced that the HF catalogue pattern is solid and worth extending.
Labels