Pular para o conteúdo principal

Usar prompts em aplicativos implantados

info

Beta

Esse recurso está na versão beta.

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. Acesso a um esquema do Unity Catalog com CREATE FUNCTION

    • Por quê? Os prompts são armazenados na UC como funções

Etapa 1. Crie um novo prompt

O senhor pode criar prompts de forma programática usando o Python SDK.

Crie prompts programaticamente com mlflow.genai.register_prompt(). Os prompts usam a sintaxe de dupla trava ({{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 que o senhor atribua uma tag de cadeia de caracteres estática a uma versão específica do prompt, facilitando a referência a prompts em aplicativos de produção. Em vez de codificar números de versão, você pode usar aliases significativos, como production, staging ou development. Quando precisar atualizar seu prompt de produção, basta reatribuir o alias production para apontar para uma versão mais recente sem alterar ou reimplantar o código do aplicativo.

Python
import mlflow
mlflow.genai.set_prompt_alias(
name=f"{uc_schema}.{prompt_name}",
alias="production",
version=1
)

Etapa 3: consulte o prompt em seu aplicativo

Depois de registrar o prompt e atribuir um alias, é possível fazer referência a ele nos aplicativos implantados usando o formato URI do prompt. A abordagem recomendada é usar a variável de ambiente para tornar seu aplicativo flexível e evitar a codificação de referências de prompt.

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

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

Próximas etapas