Pular para o conteúdo principal

Usar prompts em aplicativos implantados

info

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

  1. Instale o site MLflow e o pacote necessário

    Bash
    pip install --upgrade "mlflow[databricks]>=3.1.0"
  2. Crie um experimento MLflow seguindo o início rápido de configuração do ambiente.

  3. Verifique se você tem acesso a um esquema do Unity Catalog com as permissões CREATE FUNCTION, EXECUTE e MANAGE para usar o registro de prompt.

nota

É necessário um esquema Unity Catalog com permissões CREATE FUNCTION, EXECUTE e MANAGE para view ou criar prompts. Se você estiver usando uma accountde avaliaçãoDatabricks, você tem as permissões necessárias no esquema Unity Catalog workspace.default.

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.

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

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

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

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

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

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

importante

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