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