System API — Ollama Toolkit 0.1.9 documentation

# System API

This document details system-related endpoints in Ollama Toolkit v0.1.9 for checking server status, version information, and system operations.

## Endpoints Overview

- GET /api/version - Get Ollama version

- GET /api/health - Check system health

- GET /api/metrics - Retrieve performance metrics

## Endpoint: /api/version

Retrieve version information for the Ollama server.

### Method

`GET`

### Response

    {
      "version": "0.1.14"
    }

## Endpoint: /api/health

Check the health status of the Ollama server.

### Method

`GET`

### Response

A status code 200 OK response with no body indicates the server is healthy.

## Endpoint: /api/metrics

Retrieve performance metrics for the Ollama server (if enabled).

### Method

`GET`

### Response

    {
      "total_requests": 243,
      "total_tokens_predicted": 18965,
      "total_tokens_input": 4382,
      "requests_per_minute": 12.4,
      "tokens_per_second": 24.8,
      "active_requests": 1,
      "memory_usage": {
        "ram": 1073741824,
        "gpu": 536870912
      }
    }

## Client Implementation

The Ollama Toolkit client provides utility functions for interacting with these system endpoints:

    from ollama_toolkit import OllamaClient
    from ollama_toolkit.utils.common import (
        check_ollama_installed,
        check_ollama_running,
        ensure_ollama_running,
        install_ollama
    )

    # Get Ollama version
    client = OllamaClient()
    version_info = client.get_version()
    print(f"Ollama version: {version_info.get('version', 'unknown')}")

    # Check if Ollama is installed
    installed, install_path = check_ollama_installed()
    if installed:
        print(f"Ollama is installed at: {install_path}")
    else:
        print("Ollama is not installed")

        # Install Ollama if not already installed
        success, message = install_ollama()
        print(message)

    # Check if Ollama server is running
    running, server_info = check_ollama_running()
    if running:
        print(f"Ollama server is running: {server_info}")
    else:
        print("Ollama server is not running")

        # Ensure Ollama is both installed and running
        success, message = ensure_ollama_running()
        print(message)

## Installation Process

The Ollama Toolkit can install and manage the Ollama server with zero friction:

1. Detection: Check if Ollama binary exists in standard paths

2. Installation: Download and install Ollama from official sources

3. Verification: Confirm installation with mathematical certainty

4. Startup: Launch Ollama server process with optimal configuration

5. Validation: Verify server responds with correct API signature

## Server Management

Controlling the Ollama server lifecycle:

    from ollama_toolkit.utils.common import (
        start_ollama_server,
        stop_ollama_server,
        restart_ollama_server
    )

    # Start the Ollama server
    success, message = start_ollama_server()
    print(f"Start result: {message}")

    # Restart the Ollama server
    success, message = restart_ollama_server()
    print(f"Restart result: {message}")

    # Stop the Ollama server
    success, message = stop_ollama_server()
    print(f"Stop result: {message}")

## Eidosian Integration

The System API embodies Eidosian principles:

- Self-Awareness as Foundation: The system knows its own state with certainty

- Structure as Control: Server management follows precise architectural patterns

- Recursive Refinement: Each operation builds upon the previous with mathematical precision

- Velocity as Intelligence: Optimized for rapid state transitions with minimal overhead

By maintaining awareness of the system state, Ollama Toolkit creates a foundationally sound basis for all higher-level operations.

## Platform Compatibility

The System API handles platform-specific behaviors with recursive elegance:

Platform | Installation | Process Management | Configuration
--- | --- | --- | ---
Linux | Package manager or direct binary | Systemd or direct process | User-specific paths
macOS | Homebrew or direct binary | launchd or direct process | User-specific paths
Windows | Direct binary | Windows services or direct process | User-specific paths

Each platform implementation maintains the same mathematical interface while adapting to platform-specific constraints.