A package for loading promptdown files, which are a special type of markdown file for defining structured LLM prompts
Project description
Promptdown
Promptdown is a Python package that allows you to express structured prompts for language models in a markdown format. It provides a simple and intuitive way to define and manage prompts, making it easier to work with language models in your projects.
Installation
Using PDM
Promptdown can be installed using PDM:
pdm add promptdown
Using pip
Alternatively, you can install Promptdown using pip:
pip install promptdown
Usage
Basic Usage
To use Promptdown, simply create a Promptdown file (.prompt.md
) with the following format:
# My Prompt
## System Message
You are a helpful assistant.
## Conversation
| Role | Content |
|-----------|---------------------------------------------|
| User | Hi, can you help me? |
| Assistant | Of course! What do you need assistance with?|
| User | I'm having trouble with my code. |
| Assistant | I'd be happy to help. What seems to be the problem? |
Then, you can parse this file into a StructuredPrompt
object using Promptdown:
from promptdown import StructuredPrompt
structured_prompt = StructuredPrompt.from_promptdown_file('path/to/your_prompt_file.prompt.md')
print(structured_prompt)
Advanced Usage
Promptdown provides several methods for loading and utilizing structured prompts beyond the basic file usage. Here are more advanced ways to integrate Promptdown into your projects:
Parsing a Prompt from a String
For scenarios where you have the prompt data as a string (perhaps dynamically generated or retrieved from an external source), you can parse it directly:
from promptdown import StructuredPrompt
promptdown_string = """
# My Prompt
## System Message
You are a helpful assistant.
## Conversation
| Role | Content |
|-----------|---------------------------------------------|
| User | Hi, can you help me? |
| Assistant | Of course! What do you need assistance with?|
| User | I'm having trouble with my code. |
| Assistant | I'd be happy to help. What seems to be the problem? |
"""
structured_prompt = StructuredPrompt.from_promptdown_string(promptdown_string)
print(structured_prompt)
Loading Prompts from Package Resources
For applications where prompts are bundled within Python packages, Promptdown can load prompts directly from these resources. This approach is useful for distributing prompts alongside Python libraries or applications:
from promptdown import StructuredPrompt
# Replace 'your_package' with the actual package name and 'your_prompt_file.prompt.md' with the resource file name
structured_prompt = StructuredPrompt.from_package_resource('your_package', 'your_prompt_file.prompt.md')
print(structured_prompt)
This method facilitates easy management of prompts within a package, ensuring that they can be versioned, shared, and reused effectively.
Contributing
Contributions are welcome! Feel free to open an issue or submit a pull request.
License
Promptdown is released under the MIT License.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file promptdown-0.3.0.tar.gz
.
File metadata
- Download URL: promptdown-0.3.0.tar.gz
- Upload date:
- Size: 4.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.0.0 CPython/3.12.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 84615c43122bdc5b37332fe2b791b16d91132dfa403d63d78e939f98688ccda5 |
|
MD5 | 503dca67079119d3bfa32853dfac096c |
|
BLAKE2b-256 | 4f2455172a70f24e6c2bfc4508ad9528ec38b2206ab01b523cd5c5be5d5351b7 |
File details
Details for the file promptdown-0.3.0-py3-none-any.whl
.
File metadata
- Download URL: promptdown-0.3.0-py3-none-any.whl
- Upload date:
- Size: 6.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.0.0 CPython/3.12.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c3a352171d05fa7cfb9163ca7006aa01ce1c4bcae454f7893950ce910b848e55 |
|
MD5 | ada59373f1724e3787fa86afc95c6757 |
|
BLAKE2b-256 | 06c4ba32d0faca4ec2549ac84a688c9ef7533976370a0c48b17686dede66e2ad |