メインコンテンツまでスキップ

デプロイされたアプリケーションでプロンプトを使用する

備考

ベータ版

この機能は ベータ版です。

このガイドでは、 MLflow Prompt Registryのプロンプトを本番運用 生成AIアプリケーションで使用する方法を説明します。

生成AI アプリケーションをデプロイするときは、ハードコーディングされたバージョンではなくエイリアスを使用して MLflow プロンプト レジストリからプロンプトを読み込むように構成します。このアプローチにより、再デプロイせずに動的な更新が可能になります。

前提 条件

  1. MLflow と必要なパッケージをインストールする

    Bash
    pip install --upgrade "mlflow[databricks]>=3.1.0"
  2. MLflow エクスペリメントを作成するには、環境のセットアップに関するクイックスタートに従ってください。

  3. Unity Catalog スキーマへのアクセス CREATE FUNCTION

    • なぜでしょうか。プロンプトは、関数として UC に格納されます
注記

プロンプト レジストリを使用するには、 CREATE FUNCTION アクセス許可を持つ Unity Catalog スキーマが必要です。Databricks 試用版アカウントを使用している場合は、Unity Catalog スキーマ workspace.defaultに対する CREATE TABLE 権限があります。

ステップ1.新しいプロンプトを作成する

プロンプトは、Python SDK を使用してプログラムで作成できます。

プロンプトをプログラムで作成するには、 mlflow.genai.register_prompt()を使用します。プロンプトでは、テンプレート変数に二重中括弧構文 ({{variable}}) を使用します。

Python
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 エイリアスを新しいバージョンを指すように再割り当てするだけです。

Python
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

アプリケーションでプロンプトを参照する方法を次に示します。

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

次のステップ

関連リンク