次の方法で共有


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

Von Bedeutung

この機能は ベータ版です

このガイドでは、運用 GenAI アプリケーションで MLflow Prompt Registry からのプロンプトを使用する方法について説明します。

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

[前提条件]

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

    pip install --upgrade "mlflow[databricks]>=3.1.0"
    
  2. 環境のセットアップのクイックスタートに従って、MLflow 実験を作成します。

  3. を使用して 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. プロンプト バージョンにエイリアスを追加する

エイリアスを使用すると、特定のプロンプト バージョンに静的な文字列タグを割り当て、運用アプリケーションでプロンプトを簡単に参照できます。 バージョン番号をハードコーディングする代わりに、 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

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

次のステップ