Registro Rápido
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
-
Instale MLflow com suporte Unity Catalog :
Bashpip install --upgrade "mlflow[databricks]>=3.1.0" -
Crie um experimento do MLflow seguindo o guia de início rápido para configurar seu ambiente.
-
Certifique-se de ter acesso a um esquema Unity Catalog com as permissões
CREATE FUNCTION,EXECUTEeMANAGEpara 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:
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 |
|---|---|
Crie novos prompts ou adicione novas versões. | |
Recuperar versões ou aliases específicos do prompt | |
Encontre sugestões por nome, tags ou metadados. | |
Criar ou atualizar ponteiros de alias | |
Remover aliases (as versões permanecem) | |
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 |
| Prompt de mensagem única padrão |
|
Conversa |
| Cada |
|
O exemplo a seguir mostra prompts simples e em estilo de conversa, usando o formato de chaves duplas para variáveis padrão:
# 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:
- LangChain
- LlamaIndex
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
from llama_index.core import PromptTemplate
# Load and convert
mlflow_prompt = mlflow.genai.load_prompt("prompts:/mycatalog.myschema.rag@production")
llama_template = PromptTemplate(mlflow_prompt.to_single_brace_format())
# Use in query engine
query_engine.update_prompts({"response_synthesizer:text_qa_template": llama_template})
Próximos passos
- Crie e edite prompts - Comece com seu primeiro prompt
- Use prompts em aplicativos de implantação - implante prompts em produção com aliases
- Avalie as instruções - Compare as versões das instruções sistematicamente.