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}")
i
Information

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

Le 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.py

Le 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.py

Ré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