Skip to main content

LLM Classifier GUI

A desktop GUI application for text classification using LLMs. Supports multiple inference backends: Ollama, vLLM, SGLang, and llama.cpp.

Python License

Built with Flet and powered by ollama-classifier.

Features

  • Multiple backends: Ollama, vLLM, SGLang, llama.cpp (local or remote)
  • Load data from CSV or Excel files
  • Flexible classification schema: define labels manually or load from a CSV/Excel file
  • Two classification methods:
    • Classify: single-call prediction with confidence score
    • Score: multi-call evaluation with softmax probabilities for all labels
  • Output format options:
    • Top label only: prediction + confidence
    • All labels: each label becomes a column with its probability
  • Batch size control: process multiple texts concurrently for speed
  • Save results to Excel (merged with original data)
  • Dark/Light mode toggle
  • Secure storage for API keys

Prerequisites

  1. Python 3.11+
  2. At least one inference backend:

Linux system dependencies

Dependency Purpose Install (Debian/Ubuntu)
zenity File picker dialogs sudo apt install zenity
libsecret-1-0 Secure storage backend sudo apt install libsecret-1-0
gnome-keyring or kwalletmanager or secret-service Keyring service sudo apt install gnome-keyring

Installation

# Via uvx (recommended — no installation needed)
uvx ollama-classifier-gui

# Or via pip
pip install ollama-classifier-gui
ollama-classifier-gui

Run from source

uv sync
uv run python -m ollama_classifier_gui.main

Usage

1. Settings tab

Configure your inference backend:

  • Select the backend type (Ollama, vLLM, SGLang, llama.cpp)
  • Set the endpoint URL (auto-fills with defaults)
  • Enter the model name (or use "Test Connection" to auto-detect available models)
  • Optionally set an API key for authenticated remote servers
  • Toggle dark/light mode
  • Click Save Settings

2. Data Input tab

  • Click Select File to load a CSV or Excel file
  • For Excel files, select the sheet from the dropdown
  • Select the text column that contains the text to classify

3. Schema tab

Define your classification labels:

  • Manual Labels: click "Add Label" to add labels with optional descriptions
  • Load from File: select a CSV/Excel file containing labels (and optionally descriptions)

Then choose:

  • Classification Method: Classify (fast) or Score (accurate probabilities)
  • Output Format: Top label only or All labels (each as a column)
  • Optionally override the system prompt

4. Results tab

  • Click Run Classification to start
  • Monitor progress in real-time
  • Click Save Results to export to Excel (original data + classification columns)

5. Info tab

  • Shows the application version and a link to the GitHub repository (both read from the package metadata defined in pyproject.toml)
  • Click "Open in Browser" to open the repository in your default browser

Configuration

Settings are stored in a JSON config file:

OS Path
Linux $XDG_CONFIG_HOME/ollama-classifier-gui/config.json (fallback ~/.config)
macOS ~/Library/Application Support/ollama-classifier-gui/config.json
Windows %APPDATA%\ollama-classifier-gui\config.json

API keys are stored separately using the OS native secure storage (Keychain, Credential Manager, libsecret).

Default Endpoints

Backend Default URL
Ollama http://localhost:11434
vLLM http://localhost:8000/v1
SGLang http://localhost:30000/v1
llama.cpp http://localhost:8080/v1

License

MIT

Change Log

  • 0.6.0 — Version bump
    • Bump project version to 0.6.0 across pyproject.toml, __init__.py, and uv.lock
    • Align ollama-classifier dependency to >=0.6.0
  • 0.2.1 — Fix launch & runtime bugs
    • Fix the Schema tab "Classification Labels" card that failed to render (Tabs/TabBarView now have bounded height; tab switching wired via on_change)
    • Fix "Save Results" Excel export: remove invalid engine argument and add xlsxwriter (the polars 1.40 writer backend)
    • Rename entry module app.pymain.py (run directly with python -m ollama_classifier_gui.main)
    • Resolve all Flet deprecation warnings (ElevatedButtonButton, border.allBorder.all, margin.onlyMargin.only) to prepare for Flet 1.0
    • Add tests/ smoke tests; fix CI Python matrix (3.11/3.12)
  • 0.2.2 — Add Info section
    • New "Info" navigation tab showing the application version and GitHub repository link (sourced from pyproject.toml via importlib.metadata)

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ollama_classifier_gui-0.6.0.tar.gz (60.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ollama_classifier_gui-0.6.0-py3-none-any.whl (16.7 kB view details)

Uploaded Python 3

File details

Details for the file ollama_classifier_gui-0.6.0.tar.gz.

File metadata

  • Download URL: ollama_classifier_gui-0.6.0.tar.gz
  • Upload date:
  • Size: 60.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for ollama_classifier_gui-0.6.0.tar.gz
Algorithm Hash digest
SHA256 a6132dbfeb294b6a1473dc2686108d53fc063e64c4d53ce86c18a98524a8b87b
MD5 5140ce61d6ad3721f3a8dde6c6550188
BLAKE2b-256 ba775dcfd53330e01eea3069b2e5186b3e8af75e1356f035dc23e9310f1a1560

See more details on using hashes here.

Provenance

The following attestation bundles were made for ollama_classifier_gui-0.6.0.tar.gz:

Publisher: python-publish.yml on paluigi/ollama-classifier-gui

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ollama_classifier_gui-0.6.0-py3-none-any.whl.

File metadata

File hashes

Hashes for ollama_classifier_gui-0.6.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1857f01caae852a7f97cc2fbd722a1c6c473a3820551c1e6822a5323105e2e11
MD5 f7ff5236dce286e87eb5d5f627db8557
BLAKE2b-256 db0eb66b5fd5420b5a450e4271feeba4a7c216b83537a516dce9d47f71cde591

See more details on using hashes here.

Provenance

The following attestation bundles were made for ollama_classifier_gui-0.6.0-py3-none-any.whl:

Publisher: python-publish.yml on paluigi/ollama-classifier-gui

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page