> ## Documentation Index
> Fetch the complete documentation index at: https://docs.wandb.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Stocker et suivre les versions des prompts

> Récupérer et gérer les versions de vos prompts pour les applications LLM

Après [avoir créé et publié des prompts](/fr/weave/guides/core-types/prompts.mdx), vous pouvez faire référence à des versions spécifiques, les récupérer et les utiliser dans le code comme en production.

Lorsque vous publiez un prompt avec `weave.publish`, W\&B Weave crée une version immuable. Vous pouvez référencer chaque version par son nom et son numéro de version, la récupérer dans le code avec `weave.ref(...).get()`, et la consulter dans le Weave UI.

<div id="prompt-versions">
  ## Versions de prompt
</div>

Weave stocke les prompts sous forme d'**objets versionnés**. Cela vous permet de faire évoluer vos prompts en toute sécurité, tout en garantissant que les évaluations, les expériences et les systèmes de production peuvent faire référence à la version exacte du prompt avec laquelle ils ont été exécutés.

Vous accédez aux versions de prompt à l'aide de réf. d'objet Weave. Cette page explique comment Weave crée les versions de prompt, comment récupérer une version spécifique dans le code, et comment inspecter et comparer les versions dans la Weave UI.

<div id="how-prompt-versions-are-created">
  ## Comment les versions de prompts sont créées
</div>

Weave suit automatiquement chaque version de vos prompts et crée un historique complet de leur évolution. Ce système de gestion des versions est essentiel pour les flux de travail de prompt engineering. Il vous permet d'expérimenter en toute sécurité, de suivre les modifications qui ont amélioré ou dégradé les performances, et de revenir à des versions antérieures si nécessaire. Chaque fois que vous publiez un prompt portant le même nom mais avec un contenu différent, Weave crée une nouvelle version tout en conservant toutes les versions précédentes.

Chaque version est immuable. Une fois créée, le contenu de cette version ne peut plus être modifié. Si vous mettez à jour un prompt et le republiez, Weave crée une nouvelle version tout en conservant les versions précédentes.

La gestion des versions vous permet de :

* Reproduire des expériences passées.
* Itérer en toute sécurité sur les modifications apportées aux prompts.
* Déployer les mises à jour de prompts de manière contrôlée.

<div id="construct-a-fully-qualified-ref-uri">
  ## Construire une URI de référence pleinement qualifiée
</div>

Avant de récupérer une version de prompt dans le code, il est utile de comprendre comment Weave identifie les objets stockés. Une URI de référence pleinement qualifiée identifie de manière unique un objet Weave.

Une URI de réf. d'objet Weave pleinement qualifiée ressemble à ceci :

```text theme={null}
weave:///<your-team-name>/<your-project-name>/object/<object_name>:<object_version>
```

* `your-team-name`: entité W\&B (nom d’utilisateur ou nom d’équipe)
* `your-project-name`: projet W\&B
* `object_name`: nom de l’objet
* `object_version`: soit un hachage de version, un index de version comme `v0` ou `v1`, soit un alias comme `:latest` ou `:production`. Tous les objets ont l’alias `:latest`.

Par exemple, l’URI pleinement qualifié d’un prompt Weave ressemble à ceci :

```text theme={null}
weave:///your-team-name/your-project-name/object/support_prompt:v3
```

<div id="retrieve-a-prompt-version-in-code">
  ## Récupérer une version de prompt dans le code
</div>

Pour récupérer un prompt, créez une référence à son nom et à sa version, puis appelez `.get()` pour le charger. Une ref pointe vers un objet stocké ; `.get()` récupère cet objet pour que vous puissiez l'utiliser dans votre application.

Vous pouvez créer des refs de différentes façons :

* `weave.ref(<name>)` : récupère la version `:latest` d'un prompt. Nécessite d'appeler `weave.init(...)`.
* `weave.ref(<name>:<alias_or_version>)` : récupère un prompt par alias, hash de version ou index de version. Nécessite d'appeler `weave.init(...)`.
* `weave.ref(<fully_qualified_ref_uri>)` : récupère le prompt situé à l'[URI de référence pleinement qualifié](#construct-a-fully-qualified-ref-uri) indiquée. Ne nécessite pas d'appeler `weave.init(...)`.

L'exemple suivant charge la version `support_prompt:v3` pour que vous puissiez l'utiliser dans votre application :

```python lines theme={null}
import weave

weave.init("your-team-name/your-project-name")

prompt = weave.ref("support_prompt:v3").get()
```

<div id="use-prompts-in-production">
  ## Utiliser des prompts en production
</div>

Lorsque vous déployez des prompts dans des systèmes de production, utilisez un [alias](#add-prompt-tags-and-aliases) comme `production` au lieu d’un index de version ou de la dernière version. Dans votre application de production, chargez le prompt avec `weave.ref(<name>:<alias>).get()`.

L’utilisation d’un alias permet de maintenir un comportement en production stable et prévisible. Lorsque vous êtes prêt à promouvoir une nouvelle version, basculez l’alias vers cette version. Tous les consommateurs récupèrent alors automatiquement ce changement.

Un flux de travail courant se présente ainsi :

1. Développez et testez une nouvelle version du prompt.
2. Évaluez le nouveau prompt sur des jeux de données ou des suites d’évaluation.
3. Déplacez l’alias `production` vers la nouvelle version avec `client.set_aliases(new_ref, "production")`.

Cette approche permet aux équipes d’itérer en toute sécurité sur les prompts, sans modifier de façon inattendue le comportement en production.

## <a id="view-prompts" aria-label="Afficher et comparer les versions de prompt" />Afficher et comparer les versions de prompt

L’interface Weave vous permet de parcourir toutes les versions d’un prompt et d’afficher les différences côte à côte, ce qui est utile pour examiner comment un prompt a évolué.

Pour afficher les versions du prompt dans l’UI :

1. Accédez à [wandb.ai](https://wandb.ai/) et sélectionnez votre projet.
2. Dans la barre latérale du projet Weave, cliquez sur **Assets**. La page Assets s’ouvre.
3. Dans la page Assets, cliquez sur **Prompts**. La page Prompts s’ouvre et affiche les prompts de votre projet.
4. Dans la colonne **Versions**, cliquez sur **(x) Versions** pour le prompt que vous voulez afficher. Une liste des versions du prompt s’ouvre.

<img src="https://mintcdn.com/wb-21fd5541/XuuaAkn-Q5DZfV3b/weave/guides/core-types/imgs/prompt-object.png?fit=max&auto=format&n=XuuaAkn-Q5DZfV3b&q=85&s=2a076bd88ae8a2c1aa6ba62b54a8eb17" alt="UI de Prompt Assets, montrant les versions du prompt sélectionné." width="987" height="405" data-path="weave/guides/core-types/imgs/prompt-object.png" />

1. (Facultatif) Pour comparer des versions de prompt, cochez les cases à côté des prompts listés, puis cliquez sur le bouton **Compare** dans la barre d’outils du tableau. Cela vous permet de voir les différences entre vos prompts.

<img src="https://mintcdn.com/wb-21fd5541/6UHHO9Wn0FEtNKHz/weave/guides/core-types/imgs/prompt-comparison.png?fit=max&auto=format&n=6UHHO9Wn0FEtNKHz&q=85&s=2a0e557afced38dc250ad155ed8b6509" alt="UI Compare prompts montrant les différences entre deux versions de prompt." width="3144" height="1290" data-path="weave/guides/core-types/imgs/prompt-comparison.png" />

<div id="add-prompt-tags-and-aliases">
  ## Ajouter des tags et des alias aux prompts
</div>

Vous pouvez organiser les versions de prompt à l’aide d’alias et de tags. Ces libellés vous aident à identifier des versions spécifiques et à y faire référence dans les flux de travail de développement, d’évaluation et de production.

* Alias : un nom unique qui renvoie à une seule version de prompt. Vous pouvez à tout moment faire pointer un alias vers une autre version, ce qui le rend utile pour des références stables comme `production` ou `staging`.
* Tag : un libellé descriptif associé à une version. Une version peut avoir plusieurs tags. Utilisez les tags pour classer et filtrer les versions, par exemple `reviewed` ou `passed-eval`.

Pour définir des alias et des tags pour vos prompts dans l’UI :

1. Dans la barre latérale du projet Weave, cliquez sur **Assets**. Cela ouvre la page Assets.
2. Sur la page Assets, cliquez sur **Prompts**. Notez que vous pouvez voir les **Aliases** et les **Tags** attribués dans le tableau.
3. Dans le tableau Prompts, cliquez sur le lien du prompt que vous souhaitez modifier.
4. Dans le panneau de détails du prompt sélectionné, la barre de titre affiche le nom du prompt et une version spécifique. Choisissez la version du prompt que vous souhaitez mettre à jour.
5. Dans la barre d’outils du panneau, utilisez les contrôles pour ajouter ou supprimer les alias et tags attribués à cette version spécifique.

<img src="https://mintcdn.com/wb-21fd5541/saazGndG7tH2E_xh/weave/guides/core-types/imgs/prompt-alias-tags.png?fit=max&auto=format&n=saazGndG7tH2E_xh&q=85&s=f510d478e3ac43afe250357c440591b1" alt="Une version de prompt sélectionnée dans le panneau de détails du prompt sur la page Prompts, avec des contrôles pour les Aliases et les Tags." width="1489" height="477" data-path="weave/guides/core-types/imgs/prompt-alias-tags.png" />

<div id="modify-tags-and-aliases-in-code">
  ### Modifier les tags et les alias dans le code
</div>

Vous pouvez aussi gérer les tags et les alias dans le code pour des tâches telles que :

* Publier des prompts avec des tags et des alias directement.
* Faire pointer des alias vers des versions spécifiques et les résoudre pour charger des prompts.
* Ajouter, supprimer ou lister des tags et des alias sur des versions.

L'exemple de code suivant ajoute un prompt `my-prompt` à votre projet avec trois versions, chacune ayant différents tags et alias. Mettez à jour `'your-team-name/your-project-name'` en fonction de votre projet.

<CodeGroup>
  ```python Python lines theme={null}
  import weave

  // TODO: Définissez 'your-team-name/your-project-name' avec les valeurs correctes.
  client = weave.init('your-team-name/your-project-name')

  # Publiez deux versions d'un prompt.
  v0_ref = weave.publish(
      weave.StringPrompt("Answer the user's question: {question}"),
      name="my-prompt",
  )
  v1_ref = weave.publish(
      weave.StringPrompt("Answer the user's question helpfully and concisely: {question}"),
      name="my-prompt",
  )

  # --- Alias : pointeurs nommés vers une version spécifique. ---

  # Faites pointer des alias vers une version.
  client.set_aliases(v0_ref, "staging")
  client.set_aliases(v1_ref, "production")

  # Récupérez les alias d'une version.
  client.get_aliases(v1_ref)  # ["production", "latest"]

  # Déplacez un alias en le définissant sur une autre version.
  client.set_aliases(v0_ref, "production")  # Se détache automatiquement de v1.

  # Résolvez un alias pour charger l'objet.
  prompt = weave.ref("my-prompt:production").get()

  # Listez tous les alias du projet.
  client.list_aliases()

  # Supprimez un alias.
  client.remove_aliases(v0_ref, "production")

  # --- Tags : libellés sur une version spécifique. ---

  # Ajoutez des tags à une version.
  client.add_tags(v0_ref, ["reviewed", "passed-eval"])
  client.add_tags(v1_ref, ["reviewed", "needs-improvement"])

  # Obtenez les tags d'une version.
  client.get_tags(v0_ref)  # ["passed-eval", "reviewed"]

  # Listez tous les tags distincts du projet.
  client.list_tags()

  # Supprimez des tags d'une version.
  client.remove_tags(v1_ref, ["needs-improvement"])

  # --- Combiné : récupérez les deux en un appel unique. ---

  tags, aliases = client.get_tags_and_aliases(v0_ref)

  # --- Publiez avec des tags et des alias directement. ---

  ref = weave.publish(
      weave.StringPrompt("Be brief: {question}"),
      name="my-prompt",
      tags=["reviewed"],
      aliases=["production"],
  )

  ```

  ```plaintext TypeScript lines theme={null}
  Cette fonctionnalité n'est pas encore disponible dans le SDK TypeScript.
  ```
</CodeGroup>

Lorsque vous exécutez l'exemple, Weave affiche des liens vers vos objets dans le tableau de bord Weave. Suivez ces liens pour voir vos prompts.
