Add LLM-generated columns to CSVs.
Project description
pplyz
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
--promptor--prompt-fileis 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
- Create the user config once:
mkdir -p ~/.config/pplyz
$EDITOR ~/.config/pplyz/config.toml
On Windows, use %APPDATA%\\pplyz\\config.toml.
- 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):
- Existing environment variables
pplyz.local.tomlin the project root (optional)- User config:
~/.config/pplyz/config.toml(or%APPDATA%\\pplyz\\config.tomlon Windows; ifXDG_CONFIG_HOMEis 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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a99c5a681ac5b9cc16bfd552f8195f03036a1cc6b253fbd0239fbae12df618b2
|
|
| MD5 |
27edd18cdae6f3b81b9718f40a445da6
|
|
| BLAKE2b-256 |
576a75e303c545cbcab1daf54ccaf3c4416f9022f002aa84ca6749b49e238bdd
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9ff34d20628098897329613dfd31611c1bfbf05ff214ee07dcfc3b4937f62188
|
|
| MD5 |
4feec276057f04bbc62b48e9cc4f72e5
|
|
| BLAKE2b-256 |
93fd831a3a0041c1b8247d77158600a8714880d6649b6c21519e05aeec77d666
|