Aller au contenu principal

Registre des invites

info

Bêta

Cette fonctionnalité est en Bêta. Les administrateurs du Workspace peuvent contrôler l'accès à cette fonctionnalité à partir de la page Previews . Consultez Gérer les aperçus Databricks.

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