Skip to main content

A desktop GUI application for text classification using LLMs (Ollama, vLLM, SGLang, llama.cpp)

Project description

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.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)

Project details


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.2.0.tar.gz (57.1 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.2.0-py3-none-any.whl (16.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: ollama_classifier_gui-0.2.0.tar.gz
  • Upload date:
  • Size: 57.1 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.2.0.tar.gz
Algorithm Hash digest
SHA256 f1124f8caf53e10c023e36ea2acbdc9645abeec69686fdcf61c3ac89c323451f
MD5 44b42272592b6fb96cc7102c34e9064a
BLAKE2b-256 daafa0a19d51e1d5e91090f834aa5a67d04b8fcf10d07032120efb59b0fd953f

See more details on using hashes here.

Provenance

The following attestation bundles were made for ollama_classifier_gui-0.2.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.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for ollama_classifier_gui-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 86ffdae2e0bcae1ae0664f457e49993bd16a1ea2344d8354173cd662b51df5b4
MD5 c826d3e31ce6cc8feb5b34beb21235b1
BLAKE2b-256 d1d0fcbe3579802c366b72b5fec4c181119fc62935f4f149e765b785f41a2d7e

See more details on using hashes here.

Provenance

The following attestation bundles were made for ollama_classifier_gui-0.2.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 Pingdom Monitoring Sentry Error logging StatusPage Status page