| # 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 | |
| ``` | |