Skip to main content

Type-safe prompt template builder for LLM APIs

Project description

philiprehberger-prompt-builder

Tests PyPI version License

Type-safe prompt template builder for LLM APIs.

Install

pip install philiprehberger-prompt-builder

Usage

Fluent Builder

from philiprehberger_prompt_builder import Prompt

messages = (
    Prompt()
    .system("You are a helpful assistant.")
    .user("Summarize this article: {article}")
    .render(article="Long article text here...")
)
# [{"role": "system", "content": "You are a helpful assistant."},
#  {"role": "user", "content": "Summarize this article: Long article text here..."}]

Few-Shot Examples

messages = (
    Prompt()
    .system("Classify the sentiment.")
    .example(user="I love this!", assistant="positive")
    .example(user="Terrible product.", assistant="negative")
    .user("{text}")
    .render(text="Pretty good actually")
)

Reusable Templates

from philiprehberger_prompt_builder import PromptTemplate

summarizer = PromptTemplate(
    system="You are a {tone} summarizer. Output in {format}.",
    user="Summarize: {content}",
    defaults={"tone": "concise", "format": "bullet points"},
)

# Use with defaults
messages = summarizer.render(content="Article text...")

# Override defaults
messages = summarizer.render(content="...", tone="detailed", format="paragraphs")

# Create variant
verbose = summarizer.extend(tone="thorough", format="essay")

Token Estimation

prompt = Prompt().system("...").user("{text}")
estimated = prompt.estimate_tokens(text="Hello world")

API

Method Description
.system(content) Add a system message
.user(content) Add a user message
.assistant(content) Add an assistant message
.example(user, assistant) Add a few-shot example pair
.render(**kwargs) Render with variable substitution → list of dicts
.estimate_tokens(**kwargs) Rough token count (~4 chars/token)

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

philiprehberger_prompt_builder-0.1.2.tar.gz (4.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

File details

Details for the file philiprehberger_prompt_builder-0.1.2.tar.gz.

File metadata

File hashes

Hashes for philiprehberger_prompt_builder-0.1.2.tar.gz
Algorithm Hash digest
SHA256 91b35da1c96bd416c210f848b606262877d04cb4d3b58083ff0e62b7a1288f23
MD5 44e4e9e4e71f5ee7c593f89b3603e4ab
BLAKE2b-256 283c08347e63f6fd0b001140b8fe5435b43964efe25557c06866d17587776adf

See more details on using hashes here.

File details

Details for the file philiprehberger_prompt_builder-0.1.2-py3-none-any.whl.

File metadata

File hashes

Hashes for philiprehberger_prompt_builder-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 d90f334e61817f886df41f6211a11d6eb49e2622cd9d9447ef4c347a2456034e
MD5 7855272b678aef5d00d87474563b0580
BLAKE2b-256 37ad2ffd35491a39d24df563b96d4bbf28d2f5c157dcc86249179f191223a3d1

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page