haive.core.contracts.prompt_library¶
Prompt template library for reusable prompts.
This module provides a library of reusable prompt templates with versioning and composition support, extracted from scattered prompt management.
Classes¶
Category of prompt templates. |
|
Library of reusable prompt templates. |
|
Versioned prompt template. |
Module Contents¶
- class haive.core.contracts.prompt_library.PromptCategory(/, **data)[source]¶
Bases:
pydantic.BaseModelCategory of prompt templates.
- Parameters:
data (Any)
- name¶
Category name.
- description¶
Category description.
- templates¶
Templates in this category.
- subcategories¶
Nested categories.
Create a new model by parsing and validating input data from keyword arguments.
Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.
self is explicitly positional-only to allow self as a field name.
- class haive.core.contracts.prompt_library.PromptLibrary(/, **data)[source]¶
Bases:
pydantic.BaseModelLibrary of reusable prompt templates.
Provides: - Template storage with versioning - Category-based organization - Template composition - Usage tracking - Template evolution
- Parameters:
data (Any)
- templates¶
Templates by name and version.
- categories¶
Template categories.
- tag_index¶
Templates indexed by tag.
- latest_versions¶
Latest version of each template.
- composition_rules¶
Rules for template composition.
Examples
- Add a template:
>>> library = PromptLibrary() >>> library.add_template( ... name="analysis", ... template=analysis_prompt, ... contract=analysis_contract ... )
- Get latest version:
>>> prompt = library.get_latest("analysis")
Create a new model by parsing and validating input data from keyword arguments.
Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.
self is explicitly positional-only to allow self as a field name.
- add_template(name, template, contract, version='1.0.0', tags=None, category=None)[source]¶
Add a template to the library.
- Parameters:
name (str) – Template name.
template (langchain_core.prompts.BasePromptTemplate) – Prompt template.
contract (haive.core.contracts.prompt_config.PromptContract) – Template contract.
version (str) – Template version.
tags (Optional[Set[str]]) – Template tags.
category (Optional[str]) – Template category.
- Returns:
Self for chaining.
- Return type:
- compose_templates(template_names, composed_name, mode='sequential')[source]¶
Compose multiple templates into one.
- fork_template(name, new_name, new_version='1.0.0', modifications=None)[source]¶
Fork a template to create a new version.
- Parameters:
- Returns:
Self for chaining.
- Return type:
- get_latest(name)[source]¶
Get latest version of a template.
- Parameters:
name (str) – Template name.
- Returns:
Latest template or None.
- Return type:
Optional[langchain_core.prompts.BasePromptTemplate]
- class haive.core.contracts.prompt_library.PromptTemplate(/, **data)[source]¶
Bases:
pydantic.BaseModelVersioned prompt template.
- Parameters:
data (Any)
- name¶
Template identifier.
- version¶
Template version.
- template¶
The actual prompt template.
- contract¶
Template contract.
- tags¶
Categorization tags.
- created_at¶
Creation timestamp.
- updated_at¶
Last update timestamp.
- usage_count¶
Number of times used.
- parent_version¶
Parent version if forked.
Create a new model by parsing and validating input data from keyword arguments.
Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.
self is explicitly positional-only to allow self as a field name.