| # CLI Usage | |
| LLMPromptKit provides a command-line interface (CLI) for managing prompts, versions, tests, and evaluations. | |
| ## Basic Commands | |
| ### Prompt Management | |
| ```bash | |
| # Create a prompt | |
| llmpromptkit prompt create "Weather Forecast" --content "Provide a weather forecast for {location} on {date}" --tags "weather,forecast" | |
| # List all prompts | |
| llmpromptkit prompt list | |
| # Get prompt details | |
| llmpromptkit prompt get <prompt_id> | |
| # Update a prompt | |
| llmpromptkit prompt update <prompt_id> --content "New content" --tags "new,tags" | |
| # Delete a prompt | |
| llmpromptkit prompt delete <prompt_id> | |
| ``` | |
| ### Version Control | |
| ```bash | |
| # Commit a version | |
| llmpromptkit version commit <prompt_id> --message "Version description" | |
| # List versions | |
| llmpromptkit version list <prompt_id> | |
| # Check out (revert to) a specific version | |
| llmpromptkit version checkout <prompt_id> <version_number> | |
| # Compare versions | |
| llmpromptkit version diff <prompt_id> <version1> <version2> | |
| ``` | |
| ### Testing | |
| ```bash | |
| # Create a test case | |
| llmpromptkit test create <prompt_id> --input '{"location": "New York", "date": "tomorrow"}' --expected "Expected output" | |
| # List test cases | |
| llmpromptkit test list <prompt_id> | |
| # Run a specific test case | |
| llmpromptkit test run <test_case_id> --llm openai | |
| # Run all test cases for a prompt | |
| llmpromptkit test run-all <prompt_id> --llm openai | |
| # Run an A/B test between two prompts | |
| llmpromptkit test ab <prompt_id_a> <prompt_id_b> --inputs '[{"var": "value1"}, {"var": "value2"}]' --llm openai | |
| ``` | |
| ### Evaluation | |
| ```bash | |
| # Evaluate a prompt | |
| llmpromptkit eval run <prompt_id> --inputs '[{"var": "value1"}, {"var": "value2"}]' --llm openai | |
| # List available metrics | |
| llmpromptkit eval metrics | |
| # Register a custom metric | |
| llmpromptkit eval register-metric <metric_file.py> | |
| ``` | |
| ## Environment Configuration | |
| The CLI supports environment variables for configuration: | |
| - `LLMPROMPTKIT_STORAGE`: Path to store prompts and related data | |
| - `LLMPROMPTKIT_OPENAI_API_KEY`: OpenAI API key for built-in LLM support | |
| - `LLMPROMPTKIT_DEFAULT_LLM`: Default LLM to use for testing and evaluation | |
| You can also create a config file at `~/.llmpromptkit/config.json`: | |
| ```json | |
| { | |
| "storage_path": "/path/to/storage", | |
| "default_llm": "openai", | |
| "api_keys": { | |
| "openai": "your-openai-key" | |
| } | |
| } | |
| ``` | |
| ## Advanced Usage | |
| ### Multiple Storage Locations | |
| ```bash | |
| # Specify a storage location for a command | |
| llmpromptkit --storage /path/to/storage prompt list | |
| # Export a prompt to another storage | |
| llmpromptkit prompt export <prompt_id> --output /path/to/output.json | |
| # Import a prompt from a file | |
| llmpromptkit prompt import /path/to/prompt.json | |
| ``` | |
| ### Automation and Scripting | |
| ```bash | |
| # Get output in JSON format | |
| llmpromptkit --json prompt list | |
| # Use in shell scripts | |
| PROMPT_ID=$(llmpromptkit --json prompt create "Script Prompt" --content "Content" | jq -r '.id') | |
| echo "Created prompt with ID: $PROMPT_ID" | |
| ``` | |