Skip to main content

Add LLM-generated columns to CSVs.

Project description

pplyz

PyPI Downloads

python + prompt + analyze

Add LLM-generated columns to a CSV with one command.

Requirements

  • uv (Recommended)
  • At least one LiteLLM-compatible API key (OpenAI, Gemini, Anthropic, etc.)

uv is the easiest way to run the CLI.

Usage

Install

uv tool install pplyz

Example

pplyz test.csv \
  --input title,abstract \
  --output "relevant:bool,summary:str" \
  --model openai/gpt-4o-mini

This command sends the title and abstract columns to the LLM, adds relevant and summary columns to test.csv, and uses the openai/gpt-4o-mini model.

[!note] The CLI prompts you for a task description before processing unless --prompt or --prompt-file is provided. Output is written back to the input CSV file (overwrite).

Command arguments

Use -h or --help to list arguments.

pplyz -h
Flag Description Required
INPUT (positional) Input CSV path. Yes
-i, --input Comma-separated input column names (e.g., title,abstract). Yes (unless default is set)
-o, --output Output schema (e.g., score:int,notes:str). Types: bool, int, float, str. Yes (unless default is set)
-p, --preview Process a few rows and show would-be output without writing. No
-m, --model LiteLLM model name. No
-f, --force Reprocess all rows (resume is default). No
--prompt Inline prompt text (skips interactive prompt entry). No
--prompt-file Path to a prompt text file (skips interactive prompt entry). No

Configuration

  1. Create the user config once:
mkdir -p ~/.config/pplyz
$EDITOR ~/.config/pplyz/config.toml

On Windows, use %APPDATA%\\pplyz\\config.toml.

  1. Add only the providers you actually use:
[env]
OPENAI_API_KEY = "sk-..."
GROQ_API_KEY = "gsk-..."

[pplyz]
default_model = "openai/gpt-4o-mini"
default_input = "title,abstract"
default_output = "relevant:bool,summary:str"

Settings priority

pplyz loads settings in this order (earlier wins):

  1. Existing environment variables
  2. pplyz.local.toml in the project root (optional)
  3. User config: ~/.config/pplyz/config.toml (or %APPDATA%\\pplyz\\config.toml on Windows; if XDG_CONFIG_HOME is set, it uses that)

To keep configs elsewhere, set PPLYZ_CONFIG_DIR=/path/to/dir and place config.toml there.

[env] table (API keys)

Set these inside the [env] table of your config.toml (or export them as environment variables):

Provider Keys (checked in order)
Gemini GEMINI_API_KEY
OpenAI OPENAI_API_KEY
Anthropic / Claude ANTHROPIC_API_KEY
Groq GROQ_API_KEY
Mistral MISTRAL_API_KEY
Cohere COHERE_API_KEY
Replicate REPLICATE_API_KEY
Hugging Face HUGGINGFACE_API_KEY
Together AI TOGETHERAI_API_KEY, TOGETHER_AI_TOKEN
Perplexity PERPLEXITY_API_KEY
DeepSeek DEEPSEEK_API_KEY
xAI XAI_API_KEY
Azure OpenAI AZURE_OPENAI_API_KEY, AZURE_API_KEY
AWS (Bedrock/SageMaker) AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY
Vertex AI GOOGLE_APPLICATION_CREDENTIALS

[pplyz] table (Default settings)

key description default
default_model Sets the fallback LiteLLM model when --model is omitted. gemini/gemini-2.5-flash-lite
default_input Comma-separated columns used when -i/--input is omitted. unset
default_output Output schema used when -o/--output is omitted. unset
preview_rows Number of rows used when --preview is set (can also be overridden via PPLYZ_PREVIEW_ROWS). 3

Supported models

For the latest list of supported models, see the LiteLLM provider docs: https://docs.litellm.ai/docs/providers

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

pplyz-0.1.5.tar.gz (26.9 kB view details)

Uploaded Source

Built Distribution

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

pplyz-0.1.5-py3-none-any.whl (21.1 kB view details)

Uploaded Python 3

File details

Details for the file pplyz-0.1.5.tar.gz.

File metadata

  • Download URL: pplyz-0.1.5.tar.gz
  • Upload date:
  • Size: 26.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.10

File hashes

Hashes for pplyz-0.1.5.tar.gz
Algorithm Hash digest
SHA256 a99c5a681ac5b9cc16bfd552f8195f03036a1cc6b253fbd0239fbae12df618b2
MD5 27edd18cdae6f3b81b9718f40a445da6
BLAKE2b-256 576a75e303c545cbcab1daf54ccaf3c4416f9022f002aa84ca6749b49e238bdd

See more details on using hashes here.

File details

Details for the file pplyz-0.1.5-py3-none-any.whl.

File metadata

  • Download URL: pplyz-0.1.5-py3-none-any.whl
  • Upload date:
  • Size: 21.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.10

File hashes

Hashes for pplyz-0.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 9ff34d20628098897329613dfd31611c1bfbf05ff214ee07dcfc3b4937f62188
MD5 4feec276057f04bbc62b48e9cc4f72e5
BLAKE2b-256 93fd831a3a0041c1b8247d77158600a8714880d6649b6c21519e05aeec77d666

See more details on using hashes here.

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