Guide de démarrage : créer et utiliser un prompt
Dans ce guide de démarrage, vous stockez un prompt système dans Studio, l'utilisez depuis un script Python via l'alias production, puis modifiez le comportement du script en faisant pointer production vers une nouvelle version. Le script lui-même ne change pas.
Vous avez besoin de Python 3.10 ou version ultérieure, de uv et d'une clé API Mistral.
Installer le SDK
Installer le SDK
uv init first-prompt && cd first-prompt
uv add mistralai
export MISTRAL_API_KEY="your-api-key"Créer le prompt
Créer le prompt
Créez create_prompt.py. Le script stocke un prompt de réponse au support avec une variable {{product}} et fait pointer l'alias production vers sa première version :
import os
from mistralai.client import Mistral
client = Mistral(api_key=os.environ["MISTRAL_API_KEY"])
prompt = client.beta.prompts.create(
name="support-reply",
title="Support reply",
description="Tone and structure for customer support replies.",
definition={
"content": (
"You are a customer support assistant for {{product}}. "
"Acknowledge the issue, then propose the next action."
),
"variables": [{"name": "product"}],
},
aliases=["production"],
)
print(f"Prompt ID: {prompt.id}, version {prompt.version}")Si un prompt nommé support-reply existe déjà dans votre espace de travail, create échoue avec une erreur 409. Modifiez name dans le script, puis exécutez-le à nouveau.
Exécutez-le et copiez l'ID du prompt qu'il affiche :
uv run create_prompt.pyLe prompt est privé : vous seul pouvez le voir. Il apparaît désormais dans Studio›Prompts ↗ de Studio.
L'utiliser depuis votre code
L'utiliser depuis votre code
Créez app.py. Le script récupère la version vers laquelle production pointe, renseigne la variable et transmet le résultat en tant que message système :
import os
from mistralai.client import Mistral
PROMPT_ID = "your-prompt-id"
client = Mistral(api_key=os.environ["MISTRAL_API_KEY"])
prompt = client.beta.prompts.get(prompt_id=PROMPT_ID, alias="production")
system_prompt = prompt.definition.content.replace("{{product}}", "Acme Cloud")
response = client.chat.complete(
model="mistral-small-latest",
messages=[
{"role": "system", "content": system_prompt},
{"role": "user", "content": "I can't sign in to my account."},
],
)
print(f"Version {prompt.version}:\n{response.choices[0].message.content}")Remplacez your-prompt-id, puis exécutez-le :
uv run app.pyLe script affiche la version utilisée, 1, et la réponse du modèle.
Promouvoir une nouvelle version
Promouvoir une nouvelle version
Créez promote.py. Le script enregistre une nouvelle version qui demande des réponses plus courtes, puis fait pointer production vers celle-ci :
import os
from mistralai.client import Mistral
PROMPT_ID = "your-prompt-id"
client = Mistral(api_key=os.environ["MISTRAL_API_KEY"])
new_version = client.beta.prompts.create_version(
prompt_id=PROMPT_ID,
definition={
"content": (
"You are a customer support assistant for {{product}}. "
"Acknowledge the issue, then propose the next action. "
"Answer in two sentences at most."
),
"variables": [{"name": "product"}],
},
notes="Shorter replies",
)
client.beta.prompts.update_version_metadata(
prompt_id=PROMPT_ID,
version=new_version.version,
aliases={"values": ["production"]},
)
print(f"production now points to version {new_version.version}")Exécutez-le, puis exécutez à nouveau app.py sans le modifier :
uv run promote.py
uv run app.pyRésultat attendu
Résultat attendu
app.py affiche désormais Version 2 et la réponse compte au maximum deux phrases. Votre application a pris en compte le nouveau prompt sans modification du code ni redéploiement.
Dans Studio›Prompts ↗, ouvrez Réponse au support : l'historique des versions affiche les deux versions, avec les notes de la version 2. L'alias production pointe vers la version 2. Pour revenir en arrière, faites à nouveau pointer production vers la version 1.
Aller plus loin
Aller plus loin