Passer au contenu principal
Après avoir créé et publié des prompts, 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. Chaque version peut être référencée par son nom et son numéro de version, récupérée dans le code avec weave.ref(...).get(), et consultée dans le Weave UI.

Versions de prompt

Dans Weave, les prompts sont stockés 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. Les versions de prompt sont accessibles à l’aide de réf. d’objet Weave. Cette page explique comment les versions de prompt sont créées, comment récupérer une version spécifique dans le code, et comment inspecter et comparer les versions dans la Weave UI.

Comment les versions de prompts sont créées

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, car 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 facilement à 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.

Construire une URI de référence pleinement qualifiée

Les objets Weave peuvent être identifiés de manière unique à l’aide d’une URI de référence pleinement qualifiée. Une URI de réf. d’objet Weave pleinement qualifiée ressemble à ceci :
weave:///<your-team-name>/<your-project-name>/object/<object_name>:<object_version>
  • votre-nom-d’équipe: entité W&B (nom d’utilisateur ou nom d’équipe)
  • votre-nom-de-projet: projet W&B
  • nom_objet: nom de l’objet
  • version_objet: 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 :
weave:///your-team-name/your-project-name/object/support_prompt:v3

Récupérer une version de prompt dans le code

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é 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 :
import weave

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

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

Utiliser des prompts en production

Lorsque vous déployez des prompts dans des systèmes de production, utilisez un alias 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 garantit que le comportement en production reste stable et prévisible. Lorsque vous êtes prêt à promouvoir une nouvelle version, basculez l’alias vers cette version, puis tous les consommateurs récupèrent 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.

Afficher et comparer les versions de prompt

Pour afficher les versions du prompt dans l’UI :
  1. Accédez à 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.
UI de Prompt Assets, montrant les versions du prompt sélectionné.
  1. (Facultatif) Vous pouvez comparer des versions de prompt en cochant les cases à côté des prompts listés, puis en cliquant sur le bouton Compare dans la barre d’outils du tableau. Cela vous permet de voir les différences entre vos prompts.
UI Compare prompts montrant les différences entre deux versions de prompt.

Ajouter des tags et des alias aux prompts

Vous pouvez organiser les versions de prompt à l’aide d’alias et de tags. Ces libellés permettent d’identifier des versions spécifiques et d’y faire référence.
  • 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.
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.

Modifier les tags et les alias dans le code

Les tags et les alias peuvent aussi être gérés dans le code, notamment pour :
  • publier des prompts avec des tags et des alias directement à la publication ;
  • 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.
import weave

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

# Publier 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. ---

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

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

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

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

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

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

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

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

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

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

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

# --- Combiné : récupérer les deux en un seul appel. ---

tags, aliases = client.get_tags_and_aliases(v0_ref)

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

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

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.