Aller au contenu principal

Registre des invites

info

Bêta

Cette fonctionnalité est en version bêta.

Présentation​

Le MLflow Prompt Registry est un repository centralisé pour gérer les templates d’invite tout au long de leur cycle de vie. Cela permet aux équipes de :

  • Versionner et suivre les invites avec un versioning de type Git, des messages de commit et des capacités de restauration.
  • Déployez en toute sécurité avec des alias en utilisant des références mutables (par exemple, « production », « staging ») pour les tests A/B et les déploiements progressifs
  • **Collaborez sans modification de code** en permettant aux non-ingénieurs de modifier les invites via l’interface utilisateur.
  • Intégrez-vous à n'importe quel framework , y compris LangChain, LlamaIndex et d'autres frameworks GenAI.
  • Maintenez la gouvernance grâce à l'intégration de Unity Catalog pour le contrôle d'accès et les pistes d'audit.
  • Suivez la lignée en liant les invites aux expérimentations et aux résultats d’évaluation.

Le Registre de prompts suit un modèle de type Git :

  • Invites : entités nommées dans Unity Catalog
  • Versions : Instantanés immuables avec des numéros à incrémentation automatique
  • Alias : pointeurs mutables vers des versions spécifiques
  • Tags : Paires clé-valeur spécifiques à la version

Prérequis​

  1. Installez MLflow avec prise en charge d'Unity Catalog :

    Bash
    pip install --upgrade "mlflow[databricks]>=3.1.0"
  2. Créez une expérimentation MLflow en suivant le guide de démarrage rapide de configuration de votre environnement.

  3. Assurez-vous d'avoir accès à un schéma Unity Catalog avec les autorisations CREATE FUNCTION, EXECUTE et MANAGE pour afficher ou créer des invites dans le registre d'invites.

Quick start​

Le code suivant montre le workflow essentiel pour l'utilisation du registre de prompts. Remarquez la syntaxe des doubles accolades pour les variables de Template :

Python
import mlflow
from databricks.sdk import WorkspaceClient

model = "databricks-claude-sonnet-4-5"
llm = WorkspaceClient().serving_endpoints.get_open_ai_client()

# Register a prompt template
prompt = mlflow.genai.register_prompt(
name="docs.default.customer_support",
template="You are a helpful assistant. Answer this question: {{question}}",
commit_message="Initial customer support prompt"
)
print(f"Created version {prompt.version}") # "Created version 1"

# Set a production alias
mlflow.genai.set_prompt_alias(
name="docs.default.customer_support",
alias="production",
version=1
)

# Load and use the prompt in your application
prompt = mlflow.genai.load_prompt(name_or_uri="prompts:/docs.default.customer_support@production")
formatted_prompt = prompt.format(question="How do I reset my password?")

response = llm.chat.completions.create(
model=model,
messages=[{"role": "user", "content": formatted_prompt}],
)
print(response.choices[0].message.content)

Présentation du SDK​

Le tableau suivant récapitule les six fonctions principales que Prompt Registry offre. Pour des exemples, consultez Exemples de Registre d'invites.

Fonction

Objectif

register_prompt()

Créez de nouvelles invites ou ajoutez de nouvelles versions

load_prompt()

Récupérer des versions de prompt ou des alias spécifiques

search_prompts()

Rechercher des prompts par nom, tags ou métadonnées

set_prompt_alias()

Créer ou mettre à jour des pointeurs d'alias

delete_prompt_alias()

Supprimer les alias (les versions restent)

delete_prompt()

Supprimer toutes les invites ou des versions spécifiques

Fonction

Objectif

register_prompt()

Créez de nouvelles invites ou ajoutez de nouvelles versions

load_prompt()

Récupérer des versions de prompt ou des alias spécifiques

search_prompts()

Rechercher des prompts par nom, tags ou métadonnées

set_prompt_alias()

Créer ou mettre à jour des pointeurs d'alias

delete_prompt_alias()

Supprimer les alias (les versions restent)

delete_prompt()

Supprimer toutes les invites ou des versions spécifiques

Template formats​

Les templates de prompt peuvent être stockés sous deux formats : les prompts simples ou les conversations. Pour les deux, les chaînes de prompt peuvent être templatées à l'aide de la syntaxe des doubles accolades "Hello {{name}}".

Format

Type Python

Description

Exemple

Prompt simple

str

Single-message prompt Template

"Summarize the content below in {{num_sentences}} sentences. Content: {{content}}"

Conversation

List[dict]

Chaque dict est un message avec des clés « role » et « content »

[{"role": "user", "content": "Hello {{name}}"}, ...]

Format

Type Python

Description

Exemple

Prompt simple

str

Single-message prompt Template

"Summarize the content below in {{num_sentences}} sentences. Content: {{content}}"

Conversation

List[dict]

Chaque dict est un message avec des clés « role » et « content »

[{"role": "user", "content": "Hello {{name}}"}, ...]

L'exemple suivant présente des prompts de style simple et conversationnel, en utilisant le format à double accolade pour les variables de template :

Python
# Simple prompt
simple_prompt = mlflow.genai.register_prompt(
name="mycatalog.myschema.greeting",
template="Hello {{name}}, how can I help you today?",
commit_message="Simple greeting"
)

# Conversation or chat-style prompt
complex_prompt = mlflow.genai.register_prompt(
name="mycatalog.myschema.analysis",
template=[
{"role": "system", "content": "You are a helpful {{style}} assistant."},
{"role": "user", "content": "{{question}}"},
],
commit_message="Multi-variable analysis template"
)

# Use the prompt
rendered = complex_prompt.format(
style="edgy",
question="What is a good costume for a rainy Halloween?"
)

Compatibilité de format d'accolade simple​

LangChain, LlamaIndex et d’autres bibliothèques prennent en charge la syntaxe à accolade unique (syntaxe de chaîne de format Python) pour les Template de prompt : "Hello {name}". Pour des raisons de compatibilité, MLflow prend en charge la conversion des prompts au format à accolade unique :

Python
from langchain_core.prompts import ChatPromptTemplate

# Load from registry
mlflow_prompt = mlflow.genai.load_prompt("prompts:/mycatalog.myschema.chat@production")

# Convert to LangChain format
langchain_template = mlflow_prompt.to_single_brace_format()
chat_prompt = ChatPromptTemplate.from_template(langchain_template)

# Use in chain
chain = chat_prompt | llm | output_parser

Ressources supplémentaires​