這很重要
這項功能位於 測試版 (Beta) 中。 工作區管理員可以從 「預覽 」頁面控制對此功能的存取。 請參閱 管理 Azure Databricks 預覽。
本指南說明如何在生產 GenAI 應用程式中使用 MLflow 提示註冊中心中的提示。
部署 GenAI 應用程式時,請設定它們以使用別名而非硬式編碼版本從 MLflow 提示登錄載入提示。 此方法可啟用動態更新,而不需重新部署。
先決條件
安裝 MLflow 和必要套件
pip install --upgrade "mlflow[databricks]>=3.1.0"按照 設定環境的快速入門指南,來建立 MLflow 實驗。
請確定您可以存取具有
CREATE FUNCTION、EXECUTE和MANAGE許可權的 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. 將別名新增至提示版本
別名可讓您將靜態字串標記指派給特定提示版本,讓您更輕鬆地參考生產應用程式中的提示。 您可以使用有意義的別名,例如 production、 staging或 development,而不是硬式編碼版本號碼。 當您需要更新生產提示時,只要重新指派 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 代理程式的手動驗證。
後續步驟
- 將生產追蹤連結至應用程式版本 - 追蹤生產環境中所使用的提示版本
- 在生產環境中執行計分器 - 監視已部署提示的品質
- 評估提示 - 在部署至生產環境前測試新的提示版本