Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Von Bedeutung
Dieses Feature befindet sich in der Betaversion.
Überblick
Die MLflow Prompt-Registrierung ist ein zentrales Repository für die Verwaltung von Prompt-Vorlagen während ihres gesamten Lebenszyklus. Es ermöglicht Teams Folgendes:
- Versions- und Tracking-Prompts mit Git-ähnlicher Versionierung, Commit-Meldungen und Rollback-Funktionen
- Sichere Bereitstellung mit Aliasen unter Verwendung veränderbarer Referenzen (z.B. „production“, „staging“) für A/B-Tests und schrittweise Rollouts
- Arbeiten Sie ohne Codeänderungen zusammen, indem Sie es Nicht-Technikern ermöglichen, Aufforderungen über die Benutzeroberfläche zu ändern
- Integration mit allen Frameworks , einschließlich LangChain, LlamaIndex und anderen GenAI-Frameworks
- Governance aufrechterhalten durch Unity Catalog-Integration für Zugriffssteuerung und Prüfpfade
- Verfolgen Sie die Linien , indem Sie Aufforderungen zu Experimenten und Auswertungsergebnissen verknüpfen.
Die Prompt Registry folgt einem Git-ähnlichen Modell:
- Eingabeaufforderungen: Benannte Entitäten im Unity-Katalog
- Versionen: Unveränderliche Snapshots mit automatisch inkrementierenden Zahlen
- Aliase: Veränderbare Pointer auf bestimmte Versionen
- Tags: Versionsspezifische Schlüssel-Wert-Paare
Voraussetzungen
- Installieren von MLflow mit Unity-Katalogunterstützung:
pip install --upgrade "mlflow[databricks]>=3.1.0" - Erstellen Sie ein MLflow-Experiment, indem Sie die Schnellstartanleitung zum Einrichten Ihrer Umgebung ausführen.
- Stellen Sie sicher, dass Sie Zugriff auf ein Unity-Katalogschema mit den Berechtigungen
CREATE FUNCTION,EXECUTEundMANAGEhaben, um Eingabeaufforderungen im Prompt-Register anzeigen oder erstellen zu können.
Schnellstart
Der folgende Code zeigt den wesentlichen Workflow für die Verwendung der Eingabeaufforderungsregistrierung. Beachten Sie die Syntax mit doppelten geschweiften Klammern für Vorlagenvariablen:
import mlflow
from databricks.sdk import WorkspaceClient
model = "databricks-claude-sonnet-4-5"
llm = WorkspaceClient().serving_endpoints.get_open_ai_client()
# Register a prompt template
prompt = mlflow.genai.register_prompt(
name="docs.default.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="docs.default.customer_support",
alias="production",
version=1
)
# Load and use the prompt in your application
prompt = mlflow.genai.load_prompt(name_or_uri="prompts:/docs.default.customer_support@production")
formatted_prompt = prompt.format(question="How do I reset my password?")
response = llm.chat.completions.create(
model=model,
messages=[{"role": "user", "content": formatted_prompt}],
)
print(response.choices[0].message.content)
SDK-Übersicht
In der folgenden Tabelle sind die sechs Hauptfunktionen zusammengefasst, die die Prompt Registry bereitstellt. Beispiele finden Sie unter Prompt Registry Beispiele.
| Funktion | Zweck |
|---|---|
register_prompt() |
Erstellen neuer Eingabeaufforderungen oder Hinzufügen neuer Versionen |
load_prompt() |
Bestimmte Prompt-Versionen oder Aliasnamen abrufen |
search_prompts() |
Suchen von Eingabeaufforderungen nach Name, Tags oder Metadaten |
set_prompt_alias() |
Erstellen oder Aktualisieren von Aliaszeigern |
delete_prompt_alias() |
Aliasnamen entfernen (Versionen bleiben erhalten) |
delete_prompt() |
Löschen ganzer Eingabeaufforderungen oder bestimmter Versionen |
Formate für Promptvorlagen
Aufforderungsvorlagen können in zwei Formaten gespeichert werden: einfache Eingabeaufforderungen oder Unterhaltungen. Für beide können Promptzeichenfolgen mithilfe der Syntax mit doppelten geschweiften Klammern "Hello {{name}}" als Vorlage formatiert werden.
| Format | Python-Typ | Description | Example |
|---|---|---|---|
| Einfache Eingabeaufforderung | str |
Eingabeaufforderungsvorlage für einzelne Nachrichten | "Summarize the content below in {{num_sentences}} sentences. Content: {{content}}" |
| Unterhaltung | List[dict] |
Jede dict Nachricht ist eine Nachricht mit den Schlüsseln "Rolle" und "Inhalt". |
[{"role": "user", "content": "Hello {{name}}"}, ...] |
Das folgende Beispiel zeigt sowohl einfache als auch konversationsartige Prompts, bei denen das Format mit doppelten geschweiften Klammern für Vorlagenvariablen verwendet wird:
# 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?"
)
Kompatibilität des Formats mit einfachen geschweiften Klammern
LangChain, LlamaIndex und einige andere Bibliotheken unterstützen die Syntax mit einfachen geschweiften Klammern (Python-f-String-Syntax) für Promptvorlagen: "Hello {name}". Aus Kompatibilitätsgründen unterstützt MLflow das Konvertieren von Prompts in das Format mit einfachen geschweiften Klammern:
LangChain
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
LlamaIndex
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})
Weitere Ressourcen
- Erstellen und Bearbeiten von Eingabeaufforderungen – Erste Schritte mit Ihrer ersten Eingabeaufforderung
- Verwenden von Eingabeaufforderungen in bereitgestellten Apps – Bereitstellen von Eingabeaufforderungen für die Produktion mit Aliasen
- Eingabeaufforderungen auswerten – Systematisch Aufforderungsversionen vergleichen