Aller au contenu principal

Chapitre 1 : Versionnage des prompts

Prompts en tant que code​

# prompts/customer_support/v2.1.0.yaml
name: customer_support_agent
version: 2.1.0
description: "Prompt d'assistant de support client"
author: ml-team@company.com
created: 2024-01-15

system_prompt: |
Vous êtes un agent de support client serviable pour TechCorp.

Directives :
- Soyez poli et professionnel
- Répondez uniquement aux questions concernant nos produits
- En cas de doute, escaladez au support humain
- Ne partagez jamais d'informations confidentielles

user_template: |
Client : {customer_name}
Abonnement : {subscription_tier}
Question : {query}

Contexte précédent : {context}

parameters:
temperature: 0.7
max_tokens: 500
model: gpt-4

evaluation:
golden_dataset: tests/customer_support_golden.json
metrics:
- utilité > 4.0
- précision > 0.9

Registre des prompts​

class PromptRegistry:
def __init__(self, storage_path: str):
self.storage_path = storage_path
self.prompts = {}

def register(self, prompt: Prompt) -> str:
"""Enregistrer une nouvelle version de prompt."""
key = f"{prompt.name}/{prompt.version}"
self.prompts[key] = prompt
self._save_to_storage(prompt)
return key

def get(self, name: str, version: str = "latest") -> Prompt:
"""Obtenir un prompt par nom et version."""
if version == "latest":
version = self._get_latest_version(name)
return self.prompts.get(f"{name}/{version}")

def get_production(self, name: str) -> Prompt:
"""Obtenir la version de production d'un prompt."""
metadata = self._get_metadata(name)
return self.get(name, metadata.get("production_version"))

Suivant : Chapitre 2 : Tests A/B des prompts