Appearance
Prompts โ
You can think of a prompt as an instruction for a Large Language Model (LLM). The better the prompt, the better the completion.
You can create a new prompt by clicking on the icon next to the "Prompts" label in the navigation section of the sidebar.
Related resources
- Prompt Engineering 101 (guide)
- Prompt Engineering Tips & Tricks (blog post)
Model (LLM) selection and configuration โ
Take a look at the Models (LLMs) section for more information on how to select and configure a model for your prompt.
Messages โ
At the core of Promptmetheus's design is composability. Every prompt consists of a system message and/or a user message.
The system message can be used to provide instructions to the model, while the user message is the actual prompt that the LLM is presented with to complete.
What makes Promptmetheus different from other prompt engineering tools is that you can compose each of those messages via blocks (aka. sections, fragments, or however you want to call them).
When you execute a prompt, Promptmetheus compiles all blocks in a message into a single text string before sending it to the inference API.
Blocks โ
Blocks are just sections of a message. They allow you to better structure your prompts and test different variants. They can also generate valuable performance insights to efficiently optimize the prompt.
To add a block you can just hover over the "Add block" label at the bottom of each message or over the icon between blocks to insert a block at the desired position (see block types below).
Blocks can also be re-ordered by drag-and-dropping the block by its icon.
To rename a block, you can double click on its identifier (which is "Block#" plus the last 6 digits of its unique ID) or select the respective action from the block menu.
There are no hard rules on how to break up your prompt, just experiment and find out what works for you.
Block types โ
There are different types of blocks you can use to compose your prompt.
Text blocks โ
Text blocks are simple prose sections and probably what you want to use for most of your prompt composition. Text blocks are specific to each prompt and cannot be reused in other prompts.
Data blocks โ
Data blocks inject a dataset into your prompt, where each item in the dataset will be available as a variant (see below). Since data blocks can be re-used across multiple prompts in a project, their content is not editable from the prompt page. To edit a dataset item, you have to open the dataset.
For more info on datasets and how they work, please take a look at the Datasets section.
Variants โ
Each block can have multiple variants (or alternatives) and you can seamlessly switch between them to test and experiment with different versions of the section. Variants are not concatenated like blocks, only the selected variant will be part of the prompt. To add a new variant, just click on the icon next to the existing variant tabs or right-click on a variant and select "duplicate" to create a copy of it.
Variant versioning (history) โ
In the making...
Block actions โ
When you hover over a block, you'll see a selection of several quick actions and a action dropdown menu at the top right of the block.
Deactivate block ;
Highlight variant ;
Copy to clipboard
Deactivate block โ
With the toggle icon you can deactivate/re-activate blocks to test how the prompt performs without them. Deactivated blocks will be grayed out and do not get included in preview and the compiled prompt.
Highlight variant โ
The highlight action is a convenient way to quickly identify all completions that use the selected variant of the current block. Just click on the icon to activate/deactivate the feature. All completions that do not use the selected variant will be grayed out.
Copy to clipboard โ
With the copy action you can copy the content of a block in plain text to the clipboard. See the copy/pasting content section below for more details.
Execute for all variants โ
The "execute for all variants" action is a shortcut to loop through all variants of the respective block and simultaneously execute the prompt once for each of them as selected choice.
Code highlighting โ
Promptmetheus can highlight code in your prompts with Shiki. Simply type ```
followed by the to initiate a code section. There are no special properties to code blocks except the visual formatting.
Here's the list of language indicators that are currently supported:
c
, cpp
, csharp
, css
, dart
, go
, html
, java
, json
, jsx
, kotlin
, python
, rust
, svelte
, swift
, ts
, tsx
, vue
Copy/pasting content โ
Promptmetheus uses the TipTap rich-text editor to provide the best possible user experience and to enable features like formatting, variables, affixation, etc.
This comes with a small drawback when copy/pasting content between Promptmetheus and a plain text editors:
- Pasting external content into Promptmetheus should just work as expected.
- When copying block content there are two scenarios:
- To copy content from one block to another within Promptmetheus, you have to select the content and use
ctrl+c/v
or right-clickcopy/paste
to correctly preserve linebreaks, variables, etc. - Using method
1
will lead to excess linebreaks however when pasting the content into a plain text editor. This is due to how the operating systems converts formatted HTML to plain text. To get around this, you can use the block copy actionto correctly convert the content to plain text and avoid the extra linebreaks. Note that using the copy action and then pasting the content back into Promptmetheus will erase linebreaks, variables, etc.
- To copy content from one block to another within Promptmetheus, you have to select the content and use
Prompt variables โ
Take a look at the Variables section for more information on how global and local variables work and on how to properly use them in your prompts.
Prompt preview โ
On the top right of the left panel on the prompt page you can find a preview button that will let you see how your compiled prompt will look like when it is sent to the API provider. The preview is in plain text and should have variable values substituted in.
Prompt fingerprint โ
Directly below the dialog title you'll see a random-looking alphanumeric sequence marked with a icon. This is the prompt's unique fingerprint. The fingerprint is a SHA-256 hash of the plain text version of the compiled prompt.
For most users the fingerprint will likely not be relevant, but in some cases it might be very useful to uniquely identify a prompt and its exact version. The same prompt will always generate the same fingerprint. If the fingerprint is different, them prompt is also different.
You can also find fingerprints for the prompts that generated each completion in the respective completion prompt dialogs.