Von Bedeutung
この機能は ベータ版です。
このガイドでは、運用 GenAI アプリケーションで MLflow Prompt Registry からのプロンプトを使用する方法について説明します。
GenAI アプリケーションをデプロイする場合は、ハードコーディングされたバージョンではなくエイリアスを使用して MLflow Prompt Registry からプロンプトを読み込むよう構成します。 この方法では、再デプロイなしで動的更新が可能になります。
[前提条件]
MLflow と必要なパッケージをインストールする
pip install --upgrade "mlflow[databricks]>=3.1.0"
環境のセットアップのクイックスタートに従って、MLflow 実験を作成します。
を使用して Unity カタログ スキーマにアクセスする
CREATE FUNCTION
- なぜでしょうか。 プロンプトは UC に関数として格納されます
ステップ 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
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}")
次のステップ
- 運用トレースをアプリのバージョンにリンクする - 運用環境で使用されるプロンプト バージョンを追跡する
- 運用環境でスコアラーを実行 する - デプロイされたプロンプトの品質を監視する
- プロンプトを評価する - 運用環境に昇格する前に新しいプロンプト バージョンをテストする