Quickstart¶
Install¶
From PyPI:
pip install ooai-promptdb
With optional extras:
pip install ooai-promptdb[minio,redis,observability]
For development (using PDM):
pdm install -G dev -G test -G docs -G dashboard -G observability -G minio -G redis
Initialize a workspace¶
promptdb init
This creates:
prompts/support_assistant.yaml— a sample chat prompt spec.env.example— default environment variablesbuild/anddocs/directories
Register a prompt from a file¶
promptdb register-file prompts/support_assistant.yaml demo assistant --alias production
Render it¶
promptdb render demo/assistant:production --var question="Where is my refund?"
Use the Python client¶
from promptdb import PromptClient, PromptKind, PromptMetadata
client = PromptClient.from_env()
# Register a string prompt
client.register_text(
namespace="support",
name="triage",
template="You are a {persona}. Question: {question}",
kind=PromptKind.STRING,
alias="production",
metadata=PromptMetadata(title="Support triage", user_version="v1"),
partial_variables={"persona": "senior support analyst"},
)
# Resolve and render
resolved = client.get("support/triage:production")
print(resolved.render_text({"question": "Where is my refund?"}))
# => "You are a senior support analyst. Question: Where is my refund?"
Materialize as a LangChain prompt¶
langchain_prompt = resolved.as_langchain()
result = langchain_prompt.invoke({"question": "Where is my refund?"})
print(result.text)
Run the API server¶
uvicorn promptdb.api:app --reload
Then visit http://localhost:8000/docs for the interactive OpenAPI docs.
Configuration¶
All settings are read from PROMPTDB_* environment variables:
Variable |
Default |
Description |
|---|---|---|
|
|
SQLAlchemy database URL |
|
|
Local blob storage directory |
|
|
|
|
|
API route prefix |
|
— |
MinIO endpoint (required if |
|
— |
MinIO access key |
|
— |
MinIO secret key |
|
|
MinIO bucket name |
|
|
Expose Prometheus |
|
|
Enable OpenTelemetry instrumentation |
|
|
Root log level |