Pular para o conteúdo principal

Exemplos de registro de prompts

Esta página mostra exemplos de operações do Prompt Registry.

registrar_prompt()

Referência da API: mlflow.genai.register_prompt

Python
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 código a seguir mostra diferentes maneiras de carregar uma versão específica do prompt.

Python
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)

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:

Python
# 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:

Python
# 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

Python
# 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:

Python
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.

importante
  • Para registros do Unity Catalog, delete_prompt() falha se ainda existirem versões. Todas as versões devem ser excluídas primeiro usando delete_prompt_version().
  • Para outros tipos de registro, delete_prompt() funciona normalmente sem verificação de versão.

Referência da API: MlflowClient.delete_prompt

Python
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")