How to sync and push prompts
The llm-assistant
comes with a prompt-manager
command that allows you to
do prompt versioning.
Prompt syncing
To enable prompt-versioning, you should first register a git namespace where your prompts are stored and list the prompts you want to pull from the repository.
# llm-assistant-config.toml
[prompt]
git_user = "danoan/prompts"
[prompt.versioning]
correct-text="2.1.0"
Next, you run
prompt-manager versioning sync
In the example above, the prompt correct-text
will be pulled and stored at the specified
prompt collection folder and it will be checkout in version 2.1.0.
Tip
If the version number is an empty string or the word last
, the last version of the
prompt is checkout.
From this point, the prompt correct-text
is available to run by llm-assistant
.
Pushing a new prompt version
It is likely the case that when working in your project you realize that some
of your prompts need some adjustments. The prompt-manager
offers the command
push
to help you with that.
You can think of push
as a wizard that wraps some of the git functionalities
to help enforcing a versioning policy and structure of your prompts.
Let us say that you add a new file apple
in prompt correct-text
and you
decided to create a new version for this prompt. Then, you just need to
execute:
prompt-manager versioning push correct-text
to start the wizard. The following steps will be taken:
Describe the changes: These changes are going to be added in the README.md file of the prompt, which also plays the role of a changelog.
Base version: Which version you want to update?
Nature of Changes: Whether the suggested version will advance the major, the minor or the fix counter.
Suggested Version: To accept the suggested version or enter a new one.
Select the changes to be added: It is a wrapper around
git add -i
. Here it is where you select which changes are going to be part of the new version.Commit changes in branch version:
Update change log;
Commit changes;
Update the changelog in master:
Checkout master;
Update the changelog and commit;
Push master branch;
Push the branch version and create the appropriated tag:
Checkout to the suggested version branch.
Push branch;
Create and push tag.
Below there is an example of the wizard:
prompt-manager versioning push prompt-test
Fetching repository data
Describe the changes (finish the input by outputing a line with $$)
Add apple
$$
╭───────────────────────────────── Current versions ──────────────────────────────────╮
│ 1. 1.0.0 │
╰─────────────────────────────────────────────────────────────────────────────────────╯
Enter a base version (1.0.0):
╭──────────────────────────────── Nature of Changes ──────────────────────────────────╮
│ 1. Prompt tweak: Add extra examples, edit intructions to be more │
│ precise about some aspect or remove ambiguity. │
│ 2. Interface update: The expected input values or the output format has changed. │
│ 3. Scope change: The prompt become more specialized or more general │
╰─────────────────────────────────────────────────────────────────────────────────────╯
What is the nature of the changes? 1
Suggested version (1.0.1):
*** Commands ***
1: status 2: update 3: revert 4: add untracked
5: patch 6: diff 7: quit 8: help
What now> 4
indexé non-indexé chemin
1: apple
Add untracked>> 1
indexé non-indexé chemin
* 1: apple
Add untracked>>
1 chemin ajouté
*** Commands ***
1: status 2: update 3: revert 4: add untracked
5: patch 6: diff 7: quit 8: help
What now> 7
Au revoir.
Commiting changes: Release version 1.0.1
Checkout existing branch: master
Commiting changes: Update changelog: Add 1.0.1
Pushing branch: master
Checkout existing branch: v1.0
Pushing branch: v1.0
Creating tag: v1.0.1