Dela via


Använda prompter i distribuerade program

Viktigt!

Den här funktionen finns i Beta.

Den här guiden visar hur du använder prompter från MLflow Prompt Registry i dina GenAI-produktionsprogram.

När du distribuerar GenAI-program, konfigurerar du dem för att läsa in uppmaningar från MLflow Prompt Registry med hjälp av alias i stället för hårdkodade versioner. Den här metoden möjliggör dynamiska uppdateringar utan omdistribution.

Förutsättningar

  1. Installera MLflow och nödvändiga paket

    pip install --upgrade "mlflow[databricks]>=3.1.0"
    
  2. Skapa ett MLflow-experiment genom att följa snabbstartsguiden för att ställa in din miljö.

  3. Kontrollera att du har åtkomst till ett Unity Catalog-schema med behörigheterna CREATE FUNCTION, EXECUTEoch för MANAGE att använda promptregistret.

Steg 1. Skapa en ny fråga

Du kan skapa frågor programmatiskt med hjälp av Python SDK.

Skapa prompter programmatiskt med mlflow.genai.register_prompt(). Syntaxen för dubbel klammerparentes ({{variable}}) används av prompter för mallvariabler.

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

Steg 2. Lägga till ett alias i promptversionen

Med alias kan du tilldela en statisk strängtagg till en viss promptversion, vilket gör det enklare att referera till uppmaningar i produktionsprogram. I stället för att hårdkoda versionsnummer kan du använda meningsfulla alias som production, stagingeller development. När du behöver uppdatera produktionsprompten kan du tilldela om aliaset så att det production pekar på en nyare version utan att ändra eller distribuera om programkoden.

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

Steg 3: Referera till uppmaningen i din app

När du har registrerat din fråga och tilldelat ett alias kan du referera till den i dina distribuerade program med hjälp av promptens URI-format. Den rekommenderade metoden är att använda miljövariabler för att göra programmet flexibelt och undvika hårdkodning av promptreferenser.

Promptens URI-format är: prompts:/{catalog}.{schema}.{prompt_name}@{alias}

Med hjälp av uppmaningen som vi registrerade i steg 1 skulle URI:n vara:

  • prompts://workspace.default.summarization_prompt@production

Så här refererar du till uppmaningen i ditt program:

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

Använd promptregistret med en distribuerad agent genom Mosaic AI Agent Framework

För att få åtkomst till promptregistret från en agent som distribueras med agentramverket måste du använda manuell autentisering och åsidosätta säkerhetsmiljövariabler för att konfigurera Databricks-klienten för att ansluta till registret.

Viktigt!

Om du åsidosätter dessa säkerhetsmiljövariabler inaktiveras automatisk genomströmning för andra resurser som agenten är beroende av.

Mer information finns i Manuell autentisering för AI-agenter.

Nästa steg