Pular para o conteúdo principal

Registro Rápido

info

Beta

Este recurso está em versão Beta.

Visão geral

O MLflow Prompt Registry é um repositório centralizado para gerenciar prompts ao longo de seu ciclo de vida. Isso permite que as equipes:

  • Controle de versão e rastreamento com recursos de versionamento, mensagens de commit e rollback semelhantes ao Git.
  • Implantação segura com aliases usando referências mutáveis (por exemplo, "produção", "staging") para testes A/B e implementações graduais.
  • Colabore sem precisar alterar o código , permitindo que usuários sem conhecimento de engenharia modifiquem os prompts por meio da interface do usuário.
  • Integre-se com qualquer framework, incluindo LangChain, LlamaIndex e outros frameworks GenAI.
  • Mantenha a governança por meio da integração com o Unity Catalog para controle de acesso e trilhas de auditoria.
  • Acompanhe a linhagem vinculando instruções a experimentos e resultados de avaliação.

O Prompt Registry segue um modelo semelhante ao Git:

  • Instruções : Entidades nomeadas no Unity Catalog
  • Versões : Instantâneo imutável com números de incremento automático
  • Aliases : Ponteiros mutáveis para versões específicas
  • tags : par key-valor específico da versão

Pré-requisitos

  1. Instale MLflow com suporte Unity Catalog :

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

  3. Certifique-se de ter acesso a um esquema Unity Catalog com as permissões CREATE FUNCTION, EXECUTE e MANAGE para view ou criar prompts no registro de prompts.

Comece rápido

O código a seguir mostra o fluxo de trabalho essencial para usar o Prompt Registry. Observe a sintaxe de chaves duplas para variáveis padrão:

Python
import mlflow

# Register a prompt template
prompt = mlflow.genai.register_prompt(
name="mycatalog.myschema.customer_support",
template="You are a helpful assistant. Answer this question: {{question}}",
commit_message="Initial customer support prompt"
)
print(f"Created version {prompt.version}") # "Created version 1"

# Set a production alias
mlflow.genai.set_prompt_alias(
name="mycatalog.myschema.customer_support",
alias="production",
version=1
)

# Load and use the prompt in your application
prompt = mlflow.genai.load_prompt(name_or_uri="prompts:/mycatalog.myschema.customer_support@production")
response = llm.invoke(prompt.format(question="How do I reset my password?"))

Visão geral do SDK

A tabela a seguir resume as seis principais funções que o Prompt Registry oferece. Para exemplos, consulte Exemplos de registro de prompts.

Função

Propósito

register_prompt()

Crie novos prompts ou adicione novas versões.

load_prompt()

Recuperar versões ou aliases específicos do prompt

search_prompts()

Encontre sugestões por nome, tags ou metadados.

set_prompt_alias()

Criar ou atualizar ponteiros de alias

delete_prompt_alias()

Remover aliases (as versões permanecem)

delete_prompt()

Exclua prompts inteiros ou versões específicas.

formatos Promptu

O prompt padrão pode ser armazenado em dois formatos: prompts simples ou conversas. Para ambos, as strings de prompt podem ser formatadas usando a sintaxe de chaves duplas "Hello {{name}}".

Formato

Tipo Python

Descrição

Exemplo

Instruções simples

str

Prompt de mensagem única padrão

"Summarize the content below in {{num_sentences}} sentences. Content: {{content}}"

Conversa

List[dict]

Cada dict representa uma mensagem com as chaves 'role' e 'content'.

[{"role": "user", "content": "Hello {{name}}"}, ...]

O exemplo a seguir mostra prompts simples e em estilo de conversa, usando o formato de chaves duplas para variáveis padrão:

Python
# Simple prompt
simple_prompt = mlflow.genai.register_prompt(
name="mycatalog.myschema.greeting",
template="Hello {{name}}, how can I help you today?",
commit_message="Simple greeting"
)

# Conversation or chat-style prompt
complex_prompt = mlflow.genai.register_prompt(
name="mycatalog.myschema.analysis",
template=[
{"role": "system", "content": "You are a helpful {{style}} assistant."},
{"role": "user", "content": "{{question}}"},
],
commit_message="Multi-variable analysis template"
)

# Use the prompt
rendered = complex_prompt.format(
style="edgy",
question="What is a good costume for a rainy Halloween?"
)

Compatibilidade com formato de suporte único

LangChain, LlamaIndex e algumas outras bibliotecas suportam sintaxe de chave única (sintaxe de f-strings Python ) para prompt padrão: "Hello {name}". Para garantir a compatibilidade, o MLflow permite converter prompts para o formato de chave única:

Python
from langchain_core.prompts import ChatPromptTemplate

# Load from registry
mlflow_prompt = mlflow.genai.load_prompt("prompts:/mycatalog.myschema.chat@production")

# Convert to LangChain format
langchain_template = mlflow_prompt.to_single_brace_format()
chat_prompt = ChatPromptTemplate.from_template(langchain_template)

# Use in chain
chain = chat_prompt | llm | output_parser

Próximos passos