共用方式為


在已部署的應用程式中使用提示

這很重要

這項功能位於 測試版 (Beta) 中。 工作區管理員可以從 「預覽 」頁面控制對此功能的存取。 請參閱 管理 Azure Databricks 預覽。

本指南說明如何在生產 GenAI 應用程式中使用 MLflow 提示註冊中心中的提示。

部署 GenAI 應用程式時,請設定它們以使用別名而非硬式編碼版本從 MLflow 提示登錄載入提示。 此方法可啟用動態更新,而不需重新部署。

先決條件

  1. 安裝 MLflow 和必要套件

    pip install --upgrade "mlflow[databricks]>=3.1.0"
    
  2. 按照 設定環境的快速入門指南,來建立 MLflow 實驗。

  3. 請確定您可以存取具有 CREATE FUNCTIONEXECUTEMANAGE 許可權的 Unity 目錄架構,以使用提示登錄。

步驟 1. 建立新的提示

您可以使用 Python SDK 以程式設計方式建立提示。

使用 mlflow.genai.register_prompt()以程序設計方式建立提示。 提示使用雙括弧語法 ({{variable}}) 作為範本變數。

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

步驟 2. 將別名新增至提示版本

別名可讓您將靜態字串標記指派給特定提示版本,讓您更輕鬆地參考生產應用程式中的提示。 您可以使用有意義的別名,例如 productionstagingdevelopment,而不是硬式編碼版本號碼。 當您需要更新生產提示時,只要重新指派 production 別名以指向較新版本,而不需變更或重新部署應用程式程序代碼。

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

步驟 3:參考應用程式中的提示

註冊提示並指派別名之後,您就可以使用提示 URI 格式,在已部署的應用程式中參考它。 建議的方法是使用環境變數,讓您的應用程式具有彈性,並避免硬式編碼提示參考。

提示 URI 格式為: prompts:/{catalog}.{schema}.{prompt_name}@{alias}

使用我們在步驟 1 中註冊的提示,URI 會是:

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

以下說明如何參考應用程式中的提示:

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

使用 Mosaic AI 代理程式架構,將提示登錄與已部署的代理程式搭配使用

若要從使用代理程式架構部署的代理程式存取提示登錄,您必須使用手動驗證並覆寫安全性環境變數來設定 Databricks 用戶端以連線到登錄。

這很重要

置換這些安全環境變數會停用代理程式所依賴的其他資源的自動傳遞。

如需詳細資訊,請參閱 AI 代理程式的手動驗證

後續步驟