promptu
v1.0.0
Write dynamic LLM prompts as natural language
Promptu provides a suite of natural language generation utilities for prompt engineers, such as truncation, pluralization and natural language list formatting.
pip install promptu
from promptu import join
def find_matching_color(existing_colors):
return f'What color goes well with {join(items=existing_colors, conjunction="and")}?'
# Prints "What color goes well with blue, purple and white?"
print(find_matching_color(['blue', 'purple', 'white']))
runnable = (
{'prompt': RunnableLambda(find_matching_color)}
| PromptTemplate.from_template('{prompt}')
| model
)
runnable.invoke(['blue', 'purple', 'white'])
join()
Formats a list of items as a natural language list.
Syntax:
join(items: Sequence, conjunction: str) -> str
pluralize()
Selects the singular or plural form of a word based on the number of items.
Syntax:
pluralize(singular: str, plural: str, items: Sized) -> str
truncate()
Truncates a string to a maximum length. If the text is longer than the maximum length, all characters after the maximum length are replaced with the suffix.
Syntax:
truncate(
text: str, max_length: int, mode=TruncateMode.CHARACTER, suffix="..."
) -> str
PRs are welcome! Please add or update the relevant unit tests and format the
project with black .