feat: add button to update ollama models

Adds a button to the models page to trigger an update of the
local Ollama models.

Refs #1014
This commit is contained in:
Alexander Whitestone
2026-03-23 22:17:28 -04:00
parent b6f8f7d67b
commit 15fee6bef2
2 changed files with 24 additions and 1 deletions

View File

@@ -5,6 +5,7 @@ to swarm agents. Inspired by OpenClaw-RL's multi-model orchestration.
"""
import logging
import subprocess
from pathlib import Path
from typing import Any
@@ -59,6 +60,23 @@ class SetActiveRequest(BaseModel):
# ── API endpoints ─────────────────────────────────────────────────────────────
@api_router.post("/update-ollama")
async def update_ollama_models():
"""Trigger the Ollama model update script."""
logger.info("Ollama model update triggered")
script_path = Path(__file__).parent.parent.parent.parent / "scripts" / "update_ollama_models.py"
try:
subprocess.Popen(
["python", str(script_path)],
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
)
return {"message": "Ollama model update started in the background."}
except Exception as e:
logger.error(f"Failed to start Ollama model update: {e}")
raise HTTPException(status_code=500, detail="Failed to start model update script.") from e
@api_router.get("")
async def list_models(role: str | None = None) -> dict[str, Any]:
"""List all registered custom models."""

View File

@@ -53,7 +53,12 @@
<!-- Registered Models -->
<div class="mc-section" style="margin-top: 1.5rem;">
<h2>Registered Models</h2>
<div style="display: flex; justify-content: space-between; align-items: center;">
<h2>Registered Models</h2>
<button class="mc-btn" hx-post="/api/v1/models/update-ollama" hx-swap="none">
Update Ollama Models
</button>
</div>
{% if models %}
<table class="mc-table">
<thead>