Exemplos de registro de prompts
Esta página oferece exemplos de operações do Prompt Registry.
registrar_prompt()
Referência da 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"
}
)
carregar_prompt()
Referência da API: mlflow.genai.load_prompt
O exemplo a seguir carrega uma versão específica usando o formato URI.
# Load specific version using URI format
v2 = mlflow.genai.load_prompt(name_or_uri="prompts:/mycatalog.myschema.qa_prompt/2")
# Load specific version using name + version parameter
v3 = mlflow.genai.load_prompt(name_or_uri="mycatalog.myschema.qa_prompt", version=3)
# Load with allow_missing flag (returns None if not found)
optional_prompt = mlflow.genai.load_prompt(
name_or_uri="mycatalog.myschema.qa_prompt",
version=3,
allow_missing=True
)
# Use the prompt
if optional_prompt is not None:
response = llm.invoke(optional_prompt.format(
question="What is MLflow?",
context="MLflow is an open source platform..."
))
O exemplo a seguir carrega por meio de um alias usando o formato URI.
# Load by alias using URI
prod = mlflow.genai.load_prompt(name_or_uri="prompts:/mycatalog.myschema.qa_prompt@production")
# Load with allow_missing flag (returns None if not found)
optional_prompt = mlflow.genai.load_prompt(
name_or_uri="mycatalog.myschema.qa_prompt",
version=3,
allow_missing=True
)
# Use the prompt
if optional_prompt is not None:
response = llm.invoke(optional_prompt.format(
question="What is MLflow?",
context="MLflow is an open source platform..."
))
prompts_de_busca()
Referência da API: mlflow.genai.search_prompts
RequisitosUnity Catalog
Para registros de prompts do Unity Catalog, você deve especificar tanto o catálogo quanto o esquema:
# 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'")
Limitações
Os seguintes filtros NÃO são suportados no Unity Catalog:
- Padrões de nomes:
name LIKE '%pattern%' - Filtragem por tags:
tags.field = 'value' - Correspondência exata de nomes:
name = 'specific.name' - Filtros combinados além de catálogo + esquema
Para encontrar prompts específicos, use a lista retornada e filtre programaticamente:
# 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']
definir_alias_do_prompt()
Referência da 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() e delete_prompt_version()
excluir_prompt_versão()
Referência da API: MlflowClient.delete_prompt_version
Exclui uma versão específica de um 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")
excluir_prompt()
Após excluir a versão com prompt, você poderá excluir o prompt.
- Para registros do Unity Catalog,
delete_prompt()falha se ainda existirem versões. Todas as versões devem ser excluídas primeiro usandodelete_prompt_version(). - Para outros tipos de registro,
delete_prompt()funciona normalmente sem verificação de versão.
Referência da 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")