다음을 통해 공유


배포된 애플리케이션에서 프롬프트 사용

중요합니다

이 기능은 베타 버전으로 제공됩니다. 작업 영역 관리자는 미리 보기 페이지에서 이 기능에 대한 액세스를 제어할 수 있습니다. Azure Databricks 미리 보기 관리를 참조하세요.

이 가이드에서는 프로덕션 GenAI 애플리케이션에서 MLflow 프롬프트 레지스트리의 프롬프트를 사용하는 방법을 보여 줍니다.

GenAI 애플리케이션을 배포할 때 하드 코딩된 버전이 아닌 별칭을 사용하여 MLflow 프롬프트 레지스트리에서 프롬프트를 로드하도록 구성합니다. 이 방법을 사용하면 다시 배포하지 않고도 동적 업데이트를 사용할 수 있습니다.

필수 조건

  1. MLflow 및 필수 패키지 설치

    pip install --upgrade "mlflow[databricks]>=3.1.0"
    
  2. 환경 설정 빠른 시작 가이드에 따라 MLflow 실험을 생성합니다.

  3. Unity 카탈로그 스키마에 액세스하고 CREATE FUNCTION, EXECUTE, MANAGE 권한을 사용하여 프롬프트 레지스트리를 사용할 수 있는지 확인하십시오.

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 에이전트에 대한 수동 인증을 참조하세요.

다음 단계