summaryrefslogtreecommitdiff
path: root/src/ollama_web/routes/models.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/ollama_web/routes/models.py')
-rw-r--r--src/ollama_web/routes/models.py23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/ollama_web/routes/models.py b/src/ollama_web/routes/models.py
new file mode 100644
index 0000000..477a44e
--- /dev/null
+++ b/src/ollama_web/routes/models.py
@@ -0,0 +1,23 @@
+"""API routes for model listing and health checks."""
+
+from __future__ import annotations
+
+from starlette.requests import Request
+from starlette.responses import JSONResponse
+
+from ollama_web import llm
+
+
+async def get_models(request: Request) -> JSONResponse:
+ """Return available Ollama models as JSON."""
+ host = request.app.state.settings.ollama_host
+ models = llm.list_models(host=host)
+ return JSONResponse({"models": models})
+
+
+async def health(request: Request) -> JSONResponse:
+ """Report Ollama server reachability."""
+ host = request.app.state.settings.ollama_host
+ models = llm.list_models(host=host)
+ reachable = models is not None
+ return JSONResponse({"reachable": reachable, "models": models}) \ No newline at end of file