Exemples de Prompt Registry
Cette page présente des exemples pour les opérations du registre d'invites.
register_prompt()
Référence de l'API : mlflow.genai.register_prompt
prompt = mlflow.genai.register_prompt(
name="mycatalog.myschema.summarization",
template="""Summarize the following text in {{num_sentences}} sentences:
Text: {{content}}
Focus on: {{focus_areas}}""",
commit_message="Added focus areas parameter",
tags={
"tested_with": "gpt-4",
"avg_latency_ms": "1200",
"team": "content",
"project": "summarization-v2"
}
)
load_prompt()
Référence de l'API : mlflow.genai.load_prompt
Le code suivant montre différentes manières de charger une version spécifique d'invite.
import mlflow
from databricks.sdk import WorkspaceClient
model = "databricks-claude-sonnet-4-5"
llm = WorkspaceClient().serving_endpoints.get_open_ai_client()
# Load specific version using URI format
mlflow.genai.load_prompt(name_or_uri="prompts:/docs.default.customer_support/1")
# Load specific version using name + version parameter
mlflow.genai.load_prompt(
name_or_uri="docs.default.customer_support",
version=3,
# allow optional parameters to be missing when constructing the prompt
allow_missing=True,
)
# Use the prompt
prompt = mlflow.genai.load_prompt(name_or_uri="prompts:/docs.default.customer_support/1")
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(f"\nResponse using version {prompt.version}:")
print(response.choices[0].message.content)
search_prompts()
**Référence d'API :** mlflow.genai.search_prompts
Exigences d'Unity Catalog
Pour les registres d'invite Unity Catalog, vous devez spécifier à la fois le catalogue et le schéma :
# REQUIRED format - list all prompts in a catalog.schema
results = mlflow.genai.search_prompts("catalog = 'mycatalog' AND schema = 'myschema'")
# This is the ONLY supported filter format
results = mlflow.genai.search_prompts("catalog = 'rohit' AND schema = 'default'")
Limitations
Les filtres suivants NE sont PAS pris en charge dans Unity Catalog :
- Modèles de nom :
name LIKE '%pattern%' - Filtrage des tags :
tags.field = 'value' - Correspondance exacte des noms :
name = 'specific.name' - Filtres combinés au-delà du catalogue + schéma
Pour trouver des invites spécifiques, utilisez la liste renvoyée et filtrez de manière programmatique :
# Get all prompts in schema
all_prompts = mlflow.genai.search_prompts("catalog = 'mycatalog' AND schema = 'myschema'")
# Filter programmatically
customer_prompts = [p for p in all_prompts if 'customer' in p.name.lower()]
tagged_prompts = [p for p in all_prompts if p.tags.get('team') == 'support']
set_prompt_alias()
**Référence d'API :** mlflow.genai.set_prompt_alias
# Promote version 3 to production
mlflow.genai.set_prompt_alias(
name="mycatalog.myschema.chat_assistant",
alias="production",
version=3
)
# Set up staging for testing
mlflow.genai.set_prompt_alias(
name="mycatalog.myschema.chat_assistant",
alias="staging",
version=4
)
delete_prompt() et delete_prompt_version()
delete_prompt_version()
**Référence d'API :** MlflowClient.delete_prompt_version
Supprime une version spécifique d'une invite :
from mlflow import MlflowClient
client = MlflowClient()
# Delete specific versions first (required for Unity Catalog)
client.delete_prompt_version("mycatalog.myschema.chat_assistant", "1")
client.delete_prompt_version("mycatalog.myschema.chat_assistant", "2")
client.delete_prompt_version("mycatalog.myschema.chat_assistant", "3")
# Then delete the entire prompt
client.delete_prompt("mycatalog.myschema.chat_assistant")
# For convenience with Unity Catalog, you can also search and delete all versions:
search_response = client.search_prompt_versions("mycatalog.myschema.chat_assistant")
for version in search_response.prompt_versions:
client.delete_prompt_version("mycatalog.myschema.chat_assistant", str(version.version))
client.delete_prompt("mycatalog.myschema.chat_assistant")
delete_prompt()
Une fois que vous avez supprimé la version d'invite, vous pouvez supprimer l'invite.
- Pour les registres Unity Catalog,
delete_prompt()échoue si des versions existent toujours. Toutes les versions doivent d'abord être supprimées à l'aide dedelete_prompt_version(). - Pour les autres types de registres,
delete_prompt()fonctionne normalement sans vérification de version.
**Référence d'API :** MlflowClient.delete_prompt
from mlflow import MlflowClient
client = MlflowClient()
# Delete specific versions first (required for Unity Catalog)
client.delete_prompt_version("mycatalog.myschema.chat_assistant", "1")
client.delete_prompt_version("mycatalog.myschema.chat_assistant", "2")
client.delete_prompt_version("mycatalog.myschema.chat_assistant", "3")
# Then delete the entire prompt
client.delete_prompt("mycatalog.myschema.chat_assistant")
# For convenience with Unity Catalog, you can also search and delete all versions:
search_response = client.search_prompt_versions("mycatalog.myschema.chat_assistant")
for version in search_response.prompt_versions:
client.delete_prompt_version("mycatalog.myschema.chat_assistant", str(version.version))
client.delete_prompt("mycatalog.myschema.chat_assistant")