Créer et modifier des prompts
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.
Cette page vous explique comment créer de nouveaux prompts et gérer leurs versions dans le registre de prompts MLflow à l'aide du SDK Python MLflow. Il inclut des instructions pour l'utilisation du SDK Python MLflow et de l'interface utilisateur MLflow de Databricks. Tout le code de cette page est inclus dans l'exemple de Notebook.
Prérequis
-
Installer MLflow et les packages requis
Bashpip install --upgrade "mlflow[databricks]>=3.1.0" openai -
Créez une expérience MLflow en suivant le démarrage rapide de configuration de votre environnement.
-
Créez ou identifiez un schéma Unity Catalog pour stocker les invites. Vous devez disposer des privilèges
CREATE FUNCTION,EXECUTEetMANAGEsur le schéma Unity Catalog.
Un schéma Unity Catalog avec les autorisations CREATE FUNCTION, EXECUTE et MANAGE est requis pour afficher ou créer des invites. Si vous utilisez un compte d'essai Databricks, vous disposez des autorisations requises sur le schéma Unity Catalog main.default.
Étape 1. Créez une nouvelle invite
Vous pouvez créer des prompts dans l'interface utilisateur de Databricks MLflow, ou par programmation en utilisant le SDK Python MLflow.
Utilisez l'interface utilisateur Databricks MLflow
Pour créer une invite dans l'interface utilisateur :
-
Accédez à votre expérience MLflow.
-
Cliquez sur le Prompts tab.

-
Cliquez
. Une boîte de dialogue apparaît.

-
Si vous n’avez pas encore sélectionné de schéma pour cette Experimentation, la boîte de dialogue inclut un champ Schéma cible . Pour choisir un schéma :
- À côté du champ Schéma cible , cliquez sur Choisir pour ouvrir le sélecteur de schéma.
- Dans le sélecteur, sélectionnez le schéma souhaité et cliquez sur **Confirmer**. Vous devez disposer des autorisations suivantes sur le schéma :
CREATE FUNCTION,EXECUTEetMANAGE.
-
Dans le champ Nom , saisissez un nom pour l'invite. Les noms d’invite ne peuvent contenir que des lettres, des chiffres, des traits d’union, des traits de soulignement et des points.
-
Pour le type de prompt , sélectionnez l'un des éléments suivants :
- Texte : un seul Template de texte. Utilisez ceci pour les invites de style achèvement.
- Chat : Une liste de messages basés sur les rôles (par exemple,
systemetuser). Utilisez ceci pour les invites de style conversationnel qui ciblent les modèles conversationnels.
-
Dans le champ Prompt , saisissez le contenu de votre prompt. Utilisez la syntaxe
{{variable_name}}pour définir les variables que vous renseignez au moment de l'exécution. -
(Facultatif) Dans le champ Message de commit , saisissez une brève description de cette version. Les messages de commit sont stockés avec la version de prompt et vous aident à suivre les modifications entre les versions.
-
Cliquez sur Créer .
L'invite apparaît dans l'interface utilisateur :

Utiliser le SDK Python
-
Link votre expérimentation MLflow à un emplacement de registre de prompts par default en définissant une balise d'expérimentation à l'aide de
mlflow.set_experiment_tags. Cela permet aux SDK et aux outils de déduire automatiquement votre schéma d'invite Unity Catalog.Utilisez le tag
mlflow.promptRegistryLocationavec la valeurcatalog.schema:Pythonimport mlflow
# Link the current MLflow experiment to a UC schema for prompts
mlflow.set_experiment_tags({
"mlflow.promptRegistryLocation": "main.default"
}) -
Créez des prompts à l’aide de
mlflow.genai.register_prompt(). Les invites utilisent la syntaxe à double accolade ({{variable}}) pour les variables de Template.Python# Replace with a Unity Catalog schema where you have CREATE FUNCTION, EXECUTE, and MANAGE privileges
uc_schema = "main.default"
# This table is created in the UC schema specified in the previous line
prompt_name = "summarization_prompt"
# Define the prompt template with variables
initial_template = """\
Summarize content you are provided with in {{num_sentences}} sentences.
Content: {{content}}
"""
# Register a new prompt
prompt = mlflow.genai.register_prompt(
name=f"{uc_schema}.{prompt_name}",
template=initial_template,
# all following parameters are optional
commit_message="Initial version of summarization prompt",
tags={
"author": "data-science-team@company.com",
"use_case": "document_summarization",
"task": "summarization",
"language": "en",
"model_compatibility": "gpt-4"
}
)
print(f"Created prompt '{prompt.name}' (version {prompt.version})")
Étape 2 : Utilisez l’invite dans votre application
Les étapes suivantes créent une application simple qui utilise votre template d'invite à l'aide du SDK Python.
Charger l'invite depuis le registre
# Load a specific version using URI syntax
prompt = mlflow.genai.load_prompt(name_or_uri=f"prompts:/{uc_schema}.{prompt_name}/1")
# Alternative syntax without URI
prompt = mlflow.genai.load_prompt(name_or_uri=f"{uc_schema}.{prompt_name}", version="1")
Utiliser le prompt dans votre application
- Initialisez un client OpenAI pour vous connecter soit à des LLM hébergés par Databricks, soit à des LLM hébergés par OpenAI.
- Databricks-hosted LLMs
- OpenAI-hosted LLMs
Utilisez databricks-openai pour obtenir un client OpenAI qui se connecte aux LLM hébergés par Databricks. Sélectionnez un modèle parmi les modèles de fondation disponibles.
import mlflow
from databricks_openai import DatabricksOpenAI
# Enable MLflow's autologging to instrument your application with Tracing
mlflow.openai.autolog()
# Set up MLflow tracking to Databricks
mlflow.set_tracking_uri("databricks")
mlflow.set_experiment("/Shared/docs-demo")
# Create an OpenAI client that is connected to Databricks-hosted LLMs
client = DatabricksOpenAI()
# Select an LLM
model_name = "databricks-claude-sonnet-4"
Utilisez le SDK natif OpenAI pour vous connecter aux modèles hébergés par OpenAI. Sélectionnez un modèle parmi les modèles OpenAI disponibles.
import mlflow
import os
import openai
# Ensure your OPENAI_API_KEY is set in your environment
# os.environ["OPENAI_API_KEY"] = "<YOUR_API_KEY>" # Uncomment and set if not globally configured
# Enable auto-tracing for OpenAI
mlflow.openai.autolog()
# Set up MLflow tracking to Databricks
mlflow.set_tracking_uri("databricks")
mlflow.set_experiment("/Shared/docs-demo")
# Create an OpenAI client connected to OpenAI SDKs
client = openai.OpenAI()
# Select an LLM
model_name = "gpt-4o-mini"
-
Définissez votre application :
Python# Use the trace decorator to capture the application's entry point
@mlflow.trace
def my_app(content: str, num_sentences: int):
# Format with variables
formatted_prompt = prompt.format(
content=content,
num_sentences=num_sentences
)
response = client.chat.completions.create(
model=model_name, # This example uses a Databricks hosted LLM. You can replace this with any AI Gateway or Model Serving endpoint, or with a valid OpenAI model like gpt-4o.
messages=[
{
"role": "system",
"content": "You are a helpful assistant.",
},
{
"role": "user",
"content": formatted_prompt,
},
],
)
return response.choices[0].message.content
result = my_app(content="This guide shows you how to integrate prompts from the MLflow Prompt Registry into your GenAI applications. You'll learn to load prompts, format them with dynamic data, and ensure complete lineage by linking prompt versions to your MLflow Models.", num_sentences=1)
print(result)
Étape 3. Modifiez le prompt
Les versions de prompt sont immuables après que vous les ayez créées. Pour modifier une invite, vous devez créer une nouvelle version. Ce système de gestion de version similaire à Git conserve l'historique complet et permet les retours en arrière.
Utilisez l'interface utilisateur Databricks MLflow
Pour créer une nouvelle version :
-
Dans l'onglet Prompts tab , cliquez sur
à côté de l'invite que vous souhaitez modifier.

-
Saisissez votre invite et cliquez sur Enregistrer .
Comparer les versions d'invite
Pour comparer les versions d’invite :
-
Dans l’onglet Prompts , cliquez sur le nom de l’invite.

-
En haut à gauche, cliquez sur Comparer et sélectionnez les versions à comparer.

Utiliser le SDK Python
Créez une nouvelle version en appelant mlflow.genai.register_prompt() avec un nom d'invite existant :
import mlflow
# Define the improved template
new_template = """\
You are an expert summarizer. Condense the following content into exactly {{ num_sentences }} clear and informative sentences that capture the key points.
Content: {{content}}
Your summary should:
- Contain exactly {{num_sentences}} sentences
- Include only the most important information
- Be written in a neutral, objective tone
- Maintain the same level of formality as the original text
"""
# Register a new version
updated_prompt = mlflow.genai.register_prompt(
name=f"{uc_schema}.{prompt_name}",
template=new_template,
commit_message="Added detailed instructions for better output quality",
tags={
"author": "data-science-team@company.com",
"improvement": "Added specific guidelines for summary quality"
}
)
print(f"Created version {updated_prompt.version} of '{updated_prompt.name}'")
Étape 4. Utilisez la nouvelle invite
Le code suivant montre comment utiliser l'invite.
# Load a specific version using URI syntax
prompt = mlflow.genai.load_prompt(name_or_uri=f"prompts:/{uc_schema}.{prompt_name}/2")
# Or load from specific version
prompt = mlflow.genai.load_prompt(name_or_uri=f"{uc_schema}.{prompt_name}", version="2")
Étape 5. Rechercher et découvrir des invites
Pour trouver des invites dans votre schéma Unity Catalog :
# REQUIRED format for Unity Catalog - specify catalog and schema
results = mlflow.genai.search_prompts("catalog = 'main' AND schema = 'default'")
# Using variables for your schema
catalog_name = uc_schema.split('.')[0] # 'main'
schema_name = uc_schema.split('.')[1] # 'default'
results = mlflow.genai.search_prompts(f"catalog = '{catalog_name}' AND schema = '{schema_name}'")
# Limit results
results = mlflow.genai.search_prompts(
filter_string=f"catalog = '{catalog_name}' AND schema = '{schema_name}'",
max_results=50
)
Exemple de Notebook
Créer et modifier un notebook d'exemples d'invites
Ressources supplémentaires
- Évaluer les versions d'invite – Comparez différentes versions d'invite pour identifier la plus performante.
- Suivre les invites avec les versions d'application – Link les versions d'invite à vos versions d'application.
- Utiliser des prompts dans les applications déployées — Déployer des prompts en production avec des alias.