check if ollama is online

This commit is contained in:
2025-09-18 03:57:19 +02:00
parent 8c6f070ea1
commit 590af9407c
2 changed files with 26 additions and 3 deletions

View File

@@ -21,16 +21,24 @@ class OllamaManagerPage(AsyncColumn):
with self: with self:
ui.label('Ollama Manager').classes('text-h4 font-bold') ui.label('Ollama Manager').classes('text-h4 font-bold')
ollama_status, ollama_version = await ollama.status()
# Status cards # Status cards
with ui.row().classes('w-full gap-4'): with ui.row().classes('w-full gap-4'):
with ui.card().classes('flex-grow'): with ui.card().classes('flex-grow'):
with ui.row().classes('items-center gap-2'): with ui.row().classes('items-center gap-2'):
ui.icon('check_circle').props('color=positive') if ollama_status:
ui.label('Ollama Status: Online').classes('font-medium') ui.icon('check_circle').props(f'color=positive')
ui.label('Ollama Status: Online').classes('font-medium')
else:
ui.icon('radio_button_unchecked').props(f'color=negative')
ui.label('Ollama Status: Offline').classes('font-medium')
with ui.card().classes('flex-grow'): with ui.card().classes('flex-grow'):
ui.label('Version: 0.11.11').classes('font-medium') ui.label(f'Version: {ollama_version}').classes('font-medium')
if ollama_status is False:
return
# Models management # Models management
with ui.card().classes('w-full'): with ui.card().classes('w-full'):
with ui.row().classes('w-full items-center mb-4'): with ui.row().classes('w-full items-center mb-4'):

View File

@@ -1,5 +1,20 @@
import httpx import httpx
from nicegui import ui from nicegui import ui
from typing import Tuple
async def status(url='http://127.0.0.1:11434') -> Tuple[bool, str]:
async with httpx.AsyncClient() as client:
try:
response = await client.get(f"{url}/api/version")
response.raise_for_status()
return True, response.json()["version"]
except httpx.RequestError as exc:
print(exc)
return False, 'Unknown'
except httpx.HTTPStatusError as exc:
print(exc)
return False, 'Unknown'
async def available_models(url='http://127.0.0.1:11434'): async def available_models(url='http://127.0.0.1:11434'):