درس 4 — Construire le prototype

Donner des exemples (few-shot)

4 دقائق قراءة

هذا المحتوى غير مترجم بعد. تُعرض النسخة الأصلية.

Donner des exemples (few-shot)

Montrer plutôt que décrire

Décrire un style (« chaleureux mais précis ») est difficile ; le montrer est facile. Un exemple est une paire « entrée → sortie attendue » que l'on place avant la vraie demande.

TechniqueNombre d'exemplesQuand l'utiliser
zero-shot0tâche simple, format libre
one-shot1fixer un format et un ton
few-shot2 à 5cas variés, style très particulier
sequenceDiagram
  participant U as user
  participant M as model
  Note over U,M: Exemple (écrit par vous)
  U->>M: "Tasse céramique 350 ml, émail mat vert sauge..."
  M->>U: fiche idéale en JSON
  Note over U,M: Vraie demande
  U->>M: "Gourde isotherme 500 ml, inox..."
  M-->>U: nouvelle fiche, même style

Le modèle voit une conversation où « il » a déjà répondu parfaitement une fois : il continue sur la même lancée.

Dans AI Studio

Dans le chat, écrivez une description d'exemple, puis modifiez la réponse du modèle (AI Studio permet d'éditer un tour de conversation) pour qu'elle soit exactement la fiche que vous voulez. Les tours suivants s'appuieront dessus.

Dans le code du lab

Les exemples deviennent des tours user / model placés avant la demande :

files/fiche_produit.py
EXEMPLES = [
    (
        "Tasse céramique 350 ml, émail mat vert sauge, passe au lave-vaisselle",
        {
            "titre": "Tasse en céramique 350 ml, émail mat vert sauge",
            "accroche": "Votre boisson chaude préférée mérite une jolie tasse.",
            ...
        },
    ),
]

def build_contents(description: str) -> list[types.Content]:
    """Les exemples deviennent des tours user/model, puis vient la vraie demande."""
    contents = []
    for entree, sortie in EXEMPLES:
        contents.append(types.Content(role="user", parts=[types.Part(text=entree)]))
        contents.append(types.Content(role="model", parts=[
            types.Part(text=json.dumps(sortie, ensure_ascii=False))]))
    contents.append(types.Content(role="user", parts=[types.Part(text=description)]))
    return contents

Code complet : fiche_produit.py.

Votre exemple de fiche contient « Garantie 2 ans » alors que la description d'exemple n'en parle pas. Quel risque ?

Dans la liste contents envoyée à l'API, dans quel ordre apparaissent les éléments ?

Résultat obtenu

Le 2026-10-15, avec un seul exemple (la tasse), gemini-3.5-flash a produit pour la gourde une fiche de même structure et de même ton, et n'a repris que les caractéristiques fournies (extrait) :

sortie
{
  "titre": "Gourde isotherme en inox 500 ml avec bouchon anti-fuite",
  "accroche": "Emportez vos boissons chaudes ou froides partout avec vous en toute sérénité.",
  "points_forts": [
    "Contenance de 500 ml",
    "Conception en inox",
    "Garde le froid 24 h et le chaud 12 h",
    "Bouchon anti-fuite"
  ]
}

Comme dans l'exemple, les points forts reprennent un à un les éléments de la description, sans garantie ni dimension inventées.

Exercice

Ajoutez à EXEMPLES un deuxième exemple, d'une catégorie différente (textile, par exemple), qui montre le cas d'une description pauvre (« Tee-shirt coton bio, blanc »). À quoi ressemble la fiche idéale ?

Voir la solution
files/fiche_produit.py (ajout)
EXEMPLES.append((
    "Tee-shirt coton bio, blanc",
    {
        "titre": "Tee-shirt blanc en coton bio",
        "accroche": "Un basique tout simple, en coton bio.",
        "description": "Ce tee-shirt blanc est confectionné en coton bio. "
                       "Un indispensable facile à associer.",
        "points_forts": ["Coton bio", "Coloris blanc", "Basique polyvalent"],
        "mots_cles": ["tee-shirt", "coton bio", "blanc"],
    },
))

La fiche reste courte : pas de taille, de grammage ni de coupe, puisque la description n'en parle pas. Cet exemple apprend au modèle qu'une fiche brève vaut mieux qu'une fiche inventée.

Je sais faire

  • Expliquer zero-shot, one-shot et few-shot
  • Construire des exemples sous forme de tours user / model
  • Vérifier qu'un exemple respecte toutes les règles du prompt système
  • Choisir des exemples variés, dont un cas difficile
التالي