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.py → main.py (run directly with python -m ollama_classifier_gui.main)
    • Resolve all Flet deprecation warnings (ElevatedButton→Button, border.all→Border.all, margin.only→Margin.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)

Metadata

Release files for ollama-classifier-gui 0.6.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ollama-classifier-gui 0.6.0
File Size Uploaded
ollama_classifier_gui-0.6.0.tar.gz 60.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for ollama-classifier-gui 0.6.0
File Interpreter ABI Platform
ollama_classifier_gui-0.6.0-py3-none-any.whl Python 3 none any Details

Total release size: 77.2 kB

Release files / ollama_classifier_gui-0.6.0.tar.gz

Download URL ollama_classifier_gui-0.6.0.tar.gz
Size 60.5 kB
Tags Source
SHA-256 checksum
How to use checksums
a6132dbfeb294b6a1473dc2686108d53fc063e64c4d53ce86c18a98524a8b87b
BLAKE2b-256 checksum
How to use checksums
ba775dcfd53330e01eea3069b2e5186b3e8af75e1356f035dc23e9310f1a1560
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 14, 2026.

Transparency log

Release files / ollama_classifier_gui-0.6.0-py3-none-any.whl

Download URL ollama_classifier_gui-0.6.0-py3-none-any.whl
Size 16.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
1857f01caae852a7f97cc2fbd722a1c6c473a3820551c1e6822a5323105e2e11
BLAKE2b-256 checksum
How to use checksums
db0eb66b5fd5420b5a450e4271feeba4a7c216b83537a516dce9d47f71cde591
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 14, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.6.0 This release

2 release files

0.4.0

2 release files

0.2.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page