Usar prompts em aplicativos implantados
Beta
Este recurso está em versão Beta. Os administradores do espaço de trabalho podem controlar o acesso a este recurso na página de Pré-visualizações . Veja as prévias do Gerenciador Databricks.
Este guia mostra como usar prompts do MLflow Prompt Registry em seus aplicativos GenAI de produção.
Ao implantar aplicativos GenAI, configure-os para carregar prompts do MLflow Prompt Registry usando aliases em vez de versões codificadas. Essa abordagem permite atualizações dinâmicas sem reimplantação.
Pré-requisitos
-
Instale o site MLflow e o pacote necessário
Bashpip install --upgrade "mlflow[databricks]>=3.1.0" -
Crie um experimento MLflow seguindo o início rápido de configuração do ambiente.
-
Verifique se você tem acesso a um esquema do Unity Catalog com as permissões
CREATE FUNCTION,EXECUTEeMANAGEpara usar o registro de prompt.
Etapa 1. Crie um novo prompt
O senhor pode criar prompts de forma programática usando o Python SDK.
Crie prompts programaticamente commlflow.genai.register_prompt(). Os prompts utilizam sintaxe de chaves duplas ({{variable}}) para variáveis padrão.
import mlflow
# Replace with a Unity Catalog schema where you have CREATE FUNCTION permission
uc_schema = "workspace.default"
# This table will be created in the above UC schema
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 parameters below 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})")
Etapa 2. Adicionar um alias à versão do prompt
Os aliases permitem atribuir uma tag de string estática a uma versão específica do prompt, facilitando a referência a prompts em aplicações de produção. Em vez de codificar números de versão fixos, você pode usar aliases significativos como production, staging ou development. Quando você precisar atualizar seu prompt de produção, reatribua o alias production para apontar para uma versão mais recente sem alterar ou reimplantar o código do seu aplicativo.
import mlflow
mlflow.genai.set_prompt_alias(
name=f"{uc_schema}.{prompt_name}",
alias="production",
version=1
)
o passo 3. Consulte o prompt no seu aplicativo
Após registrar seu prompt e atribuir um alias, você poderá referenciá-lo em seus aplicativos implantados usando o formato URI do prompt. A abordagem recomendada é usar variáveis de ambiente para tornar sua aplicação flexível e evitar codificar referências de prompts diretamente no código.
O formato do URI do prompt é: prompts:/{catalog}.{schema}.{prompt_name}@{alias}
Usando o prompt que registramos na Etapa 1, o URI seria:
prompts://workspace.default.summarization_prompt@production
Veja como fazer referência ao prompt em seu aplicativo:
import mlflow
import os
from typing import Optional
mlflow.set_tracking_uri("databricks")
mlflow.set_registry_uri("databricks-uc")
class ProductionApp:
def __init__(self):
# Use environment variable for flexibility
self.prompt_alias = os.getenv("PROMPT_ALIAS", "production")
self.prompt_name = os.getenv("PROMPT_URI", "workspace.default.summarization_prompt")
def get_prompt(self) -> str:
"""Load prompt from registry using alias."""
uri = f"prompts:/{self.prompt_name}@{self.prompt_alias}"
prompt = mlflow.genai.load_prompt(uri)
return prompt
# Rest of your application's code
# Example usage
app = ProductionApp()
prompt = app.get_prompt()
print(f"Loaded prompt: {prompt}")
Fluxo de trabalho de gerenciamento de versões
Os aliases permitem iterar sobre os prompts durante o desenvolvimento e promovê-los em diferentes ambientes sem alterar o código do aplicativo.
Desenvolvimento do fluxo de trabalho
Use um alias de desenvolvimento para testar alterações de prompt antes de promovê-las para produção:
from datetime import datetime
import mlflow
def develop_prompt(base_name: str, changes: str):
"""Iterate on prompts during development."""
# Register new version
new_version = mlflow.genai.register_prompt(
name=base_name,
template=changes,
commit_message=f"Dev iteration: {datetime.now()}"
)
# Update dev alias
mlflow.genai.set_prompt_alias(
name=base_name,
alias="dev",
version=new_version.version
)
return new_version
Promoção do fluxo de trabalho
Promova a troca de prompts entre ambientes reatribuindo aliases:
import mlflow
def promote_prompt(name: str, from_env: str, to_env: str):
"""Promote prompt from one environment to another."""
# Get current version in source environment
source = mlflow.genai.load_prompt(f"prompts:/{name}@{from_env}")
# Point target environment to same version
mlflow.genai.set_prompt_alias(
name=name,
alias=to_env,
version=source.version
)
print(f"Promoted {name} v{source.version} from {from_env} to {to_env}")
estratégias de pseudônimos
Elabore sua estratégia de aliases com base nos padrões de implantação da sua equipe. Os exemplos a seguir demonstram abordagens comuns:
import mlflow
# Standard environment aliases
ENVIRONMENT_ALIASES = ["dev", "staging", "production"]
# Feature branch aliases
def create_feature_alias(prompt_name: str, feature: str, version: int):
"""Create alias for feature development."""
mlflow.genai.set_prompt_alias(
name=prompt_name,
alias=f"feature-{feature}",
version=version
)
# Regional aliases
REGIONAL_ALIASES = {
"us": "production-us",
"eu": "production-eu",
"asia": "production-asia"
}
# Rollback-ready aliases
def safe_production_update(name: str, new_version: int):
"""Update production with rollback capability."""
try:
# Save current production
current = mlflow.genai.load_prompt(f"prompts:/{name}@production")
mlflow.genai.set_prompt_alias(name, "production-previous", current.version)
except:
pass # No current production
# Update production
mlflow.genai.set_prompt_alias(name, "production", new_version)
Usar o registro de prompt com um agente implantado usando o Mosaic AI Agent Framework
Para acessar o registro de prompt de um agente implantado usando o Agent Framework, é necessário usar a autenticação manual e substituir a segurança variável de ambiente para configurar o Cliente Databricks para se conectar ao registro.
A substituição dessas variáveis de ambiente de segurança desativa a passagem automática para outros recursos dos quais seu agente depende.
Para obter mais informações, consulte Autenticação manual para AI agents.
Próximos passos
- Vincule os rastreamentos de produção às versões do aplicativo - Rastreie as versões de prompt usadas em produção.
- scorers de execução em produção - Monitore a qualidade de seus prompts implantados
- Avalie solicitações - Teste novas versões de solicitações antes de promovê-las para produção