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:

  1. 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.

  2. Base version: Which version you want to update?

  3. Nature of Changes: Whether the suggested version will advance the major, the minor or the fix counter.

  4. Suggested Version: To accept the suggested version or enter a new one.

  5. 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.

  6. Commit changes in branch version:

    • Update change log;

    • Commit changes;

  7. Update the changelog in master:

    • Checkout master;

    • Update the changelog and commit;

    • Push master branch;

  8. 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