| # API Reference |
|
|
| This document provides detailed API documentation for the main components of LLMPromptKit. |
|
|
| ## PromptManager |
|
|
| The `PromptManager` class is the core component for managing prompts. |
|
|
| ```python |
| from llmpromptkit import PromptManager |
| ``` |
|
|
| ### Methods |
|
|
| #### `__init__(storage_path=None)` |
| - **Description**: Initialize a new PromptManager. |
| - **Parameters**: |
| - `storage_path` (str, optional): Path to store prompts. Defaults to "~/llmpromptkit_storage". |
| |
| #### `create(content, name, description='', tags=None, metadata=None)` |
| - **Description**: Create a new prompt. |
| - **Parameters**: |
| - `content` (str): The prompt text with optional variables in {variable_name} format. |
| - `name` (str): Name of the prompt. |
| - `description` (str, optional): Description of the prompt. |
| - `tags` (list of str, optional): Tags for categorization. |
| - `metadata` (dict, optional): Additional metadata. |
| - **Returns**: `Prompt` object. |
|
|
| #### `get(prompt_id)` |
| - **Description**: Get a prompt by ID. |
| - **Parameters**: |
| - `prompt_id` (str): The ID of the prompt. |
| - **Returns**: `Prompt` object or None if not found. |
|
|
| #### `update(prompt_id, content=None, name=None, description=None, tags=None, metadata=None)` |
| - **Description**: Update a prompt. |
| - **Parameters**: |
| - `prompt_id` (str): The ID of the prompt to update. |
| - `content` (str, optional): New prompt text. |
| - `name` (str, optional): New name. |
| - `description` (str, optional): New description. |
| - `tags` (list of str, optional): New tags. |
| - `metadata` (dict, optional): New metadata. |
| - **Returns**: Updated `Prompt` object. |
|
|
| #### `delete(prompt_id)` |
| - **Description**: Delete a prompt. |
| - **Parameters**: |
| - `prompt_id` (str): The ID of the prompt to delete. |
| - **Returns**: True if deleted, False otherwise. |
|
|
| #### `list_all()` |
| - **Description**: List all prompts. |
| - **Returns**: List of `Prompt` objects. |
| |
| #### `search_by_tags(tags, match_all=False)` |
| - **Description**: Search prompts by tags. |
| - **Parameters**: |
| - `tags` (list of str): Tags to search for. |
| - `match_all` (bool, optional): If True, prompt must have all tags. |
| - **Returns**: List of matching `Prompt` objects. |
|
|
| ## VersionControl |
|
|
| The `VersionControl` class manages prompt versions. |
|
|
| ```python |
| from llmpromptkit import VersionControl |
| ``` |
|
|
| ### Methods |
|
|
| #### `__init__(prompt_manager)` |
| - **Description**: Initialize the version control system. |
| - **Parameters**: |
| - `prompt_manager` (PromptManager): A PromptManager instance. |
|
|
| #### `commit(prompt_id, commit_message, metadata=None)` |
| - **Description**: Create a new version of a prompt. |
| - **Parameters**: |
| - `prompt_id` (str): The ID of the prompt. |
| - `commit_message` (str): Message describing the changes. |
| - `metadata` (dict, optional): Additional version metadata. |
| - **Returns**: Version number (int). |
|
|
| #### `list_versions(prompt_id)` |
| - **Description**: List all versions of a prompt. |
| - **Parameters**: |
| - `prompt_id` (str): The ID of the prompt. |
| - **Returns**: List of version objects. |
|
|
| #### `get_version(prompt_id, version_number)` |
| - **Description**: Get a specific version of a prompt. |
| - **Parameters**: |
| - `prompt_id` (str): The ID of the prompt. |
| - `version_number` (int): The version number. |
| - **Returns**: Version data. |
|
|
| #### `checkout(prompt_id, version_number)` |
| - **Description**: Revert a prompt to a specific version. |
| - **Parameters**: |
| - `prompt_id` (str): The ID of the prompt. |
| - `version_number` (int): The version to revert to. |
| - **Returns**: Updated `Prompt` object. |
|
|
| #### `diff(prompt_id, version1, version2)` |
| - **Description**: Compare two versions of a prompt. |
| - **Parameters**: |
| - `prompt_id` (str): The ID of the prompt. |
| - `version1` (int): First version number. |
| - `version2` (int): Second version number. |
| - **Returns**: Diff object. |
|
|
| ## PromptTesting |
|
|
| The `PromptTesting` class provides testing capabilities. |
|
|
| ```python |
| from llmpromptkit import PromptTesting |
| ``` |
|
|
| ### Methods |
|
|
| #### `__init__(prompt_manager)` |
| - **Description**: Initialize the testing system. |
| - **Parameters**: |
| - `prompt_manager` (PromptManager): A PromptManager instance. |
|
|
| #### `create_test_case(prompt_id, input_vars, expected_output=None, name=None, description=None)` |
| - **Description**: Create a test case for a prompt. |
| - **Parameters**: |
| - `prompt_id` (str): The ID of the prompt to test. |
| - `input_vars` (dict): Variables to substitute in the prompt. |
| - `expected_output` (str, optional): Expected response. |
| - `name` (str, optional): Test case name. |
| - `description` (str, optional): Test case description. |
| - **Returns**: Test case object. |
|
|
| #### `run_test_case(test_case_id, llm_callback)` |
| - **Description**: Run a test case. |
| - **Parameters**: |
| - `test_case_id` (str): The ID of the test case. |
| - `llm_callback` (callable): Function to call LLM. |
| - **Returns**: Test result. |
|
|
| #### `run_all_tests(prompt_id, llm_callback)` |
| - **Description**: Run all tests for a prompt. |
| - **Parameters**: |
| - `prompt_id` (str): The ID of the prompt. |
| - `llm_callback` (callable): Function to call LLM. |
| - **Returns**: List of test results. |
|
|
| #### `ab_test(prompt_id_a, prompt_id_b, test_cases, llm_callback, metrics=None)` |
| - **Description**: Run A/B tests comparing two prompts. |
| - **Parameters**: |
| - `prompt_id_a` (str): First prompt ID. |
| - `prompt_id_b` (str): Second prompt ID. |
| - `test_cases` (list): Test cases to run. |
| - `llm_callback` (callable): Function to call LLM. |
| - `metrics` (list, optional): Metrics to compare. |
| - **Returns**: A/B test results. |
|
|
| ## Evaluator |
|
|
| The `Evaluator` class handles prompt evaluation. |
|
|
| ```python |
| from llmpromptkit import Evaluator |
| ``` |
|
|
| ### Methods |
|
|
| #### `__init__(prompt_manager)` |
| - **Description**: Initialize the evaluator. |
| - **Parameters**: |
| - `prompt_manager` (PromptManager): A PromptManager instance. |
|
|
| #### `register_metric(metric)` |
| - **Description**: Register a new evaluation metric. |
| - **Parameters**: |
| - `metric` (EvaluationMetric): The metric to register. |
| |
| #### `evaluate_prompt(prompt_id, inputs, llm_callback, expected_outputs=None, metric_names=None)` |
| - **Description**: Evaluate a prompt with the given inputs and metrics. |
| - **Parameters**: |
| - `prompt_id` (str): The ID of the prompt. |
| - `inputs` (list): List of input dictionaries. |
| - `llm_callback` (callable): Function to call LLM. |
| - `expected_outputs` (list, optional): Expected outputs. |
| - `metric_names` (list, optional): Metrics to use. |
| - **Returns**: Evaluation results. |
|
|
| ## PromptTemplate |
|
|
| The `PromptTemplate` class provides advanced templating. |
|
|
| ```python |
| from llmpromptkit import PromptTemplate |
| ``` |
|
|
| ### Methods |
|
|
| #### `__init__(template_string)` |
| - **Description**: Initialize a template. |
| - **Parameters**: |
| - `template_string` (str): Template with variables, conditionals, and loops. |
|
|
| #### `render(**variables)` |
| - **Description**: Render the template with given variables. |
| - **Parameters**: |
| - `variables` (dict): Variables to substitute. |
| - **Returns**: Rendered string. |
| |
| ## EvaluationMetric |
| |
| The `EvaluationMetric` is the base class for evaluation metrics. |
| |
| ```python |
| from llmpromptkit import EvaluationMetric |
| ``` |
| |
| ### Methods |
| |
| #### `__init__(name, description=None)` |
| - **Description**: Initialize a metric. |
| - **Parameters**: |
| - `name` (str): Metric name. |
| - `description` (str, optional): Metric description. |
| |
| #### `compute(generated_output, expected_output=None, **kwargs)` |
| - **Description**: Compute the metric score. |
| - **Parameters**: |
| - `generated_output` (str): Output from LLM. |
| - `expected_output` (str, optional): Expected output. |
| - `**kwargs`: Additional parameters. |
| - **Returns**: Score (float between 0 and 1). |
| |
| ### Built-in Metrics |
| |
| - `ExactMatchMetric`: Scores exact matches between generated and expected output. |
| - `ContainsKeywordsMetric`: Scores based on keyword presence. |
| - `LengthMetric`: Scores based on output length. |
| |
| ```python |
| from llmpromptkit import ExactMatchMetric, ContainsKeywordsMetric, LengthMetric |
| ``` |
| |