프롬프트 관리

이 페이지에서는 Vertex AI SDK 프롬프트 관리 모듈을 사용하여 Google Cloud 프로젝트 내에서 프롬프트를 정의, 저장, 검색, 관리할 수 있는 통합 기능 세트를 소개합니다.

개요

Vertex AI는 프롬프트 템플릿과 프롬프트 데이터를 관리하는 데 도움이 되는 도구를 제공합니다. 프롬프트 템플릿은 버전을 지정할 수 있으며 Vertex AI의 생성형 모델과 함께 사용할 수 있습니다. 각 프롬프트는 서로 조합하여 Vertex AI Studio 또는 Vertex AI SDK에서 버전을 지정할 수 있습니다.

Vertex AI SDK의 프롬프트 관리에는 고객 관리 암호화 키 (CMEK) 및 VPC 서비스 제어 (VPCSC) 지원을 비롯한 완전한 엔터프라이즈 지원이 포함됩니다.

프롬프트 관리 기능

Vertex AI SDK의 생성형 AI 기능을 사용하려면 다음 단계를 따르세요.

  1. Vertex AI SDK의 최신 버전을 설치합니다.

    pip install --upgrade google-cloud-aiplatform
    
  2. 다음 Python 코드 샘플을 사용하여 생성형 AI 클라이언트를 만듭니다.

        import vertexai
        from vertexai import types
    
        # Instantiate GenAI client from Vertex SDK
        # Replace with your project ID and location
        client = vertexai.Client(project='my-project', location='my-location')
    

생성형 AI 클라이언트를 만든 후 Vertex AI SDK에서 다음 프롬프트 관리 기능을 사용할 수 있습니다.

로컬 프롬프트 만들기

이 섹션에서는 이 페이지 전체에서 사용할 types.Prompt 변수를 정의하는 방법을 보여주는 예를 제공합니다.

Prompt 클래스는 프롬프트를 정의하고, 어셈블하고, 사용하는 데 사용됩니다. prompt_data 속성은 Prompt 클래스에 정의되며 다음을 포함합니다.

속성

model

필수: 모델 이름입니다.

contents

필수: 모델과의 대화 콘텐츠입니다. 단일 턴 프롬프트만 지원됩니다.

generation_config

선택사항: 생성 구성

tool_config

선택사항: 이 구성은 요청에 제공된 모든 도구에 공유됩니다.

tools

선택사항: 모델이 다음 대답을 생성하는 데 사용할 수 있는 Tools 목록입니다. Tool은 시스템이 모델의 지식과 범위를 벗어나 외부 시스템과 상호작용하여 작업 또는 작업 집합을 수행할 수 있도록 하는 코드 조각입니다.

safety_settings

선택사항: GenerateContentResponse.candidates에서 적용되는 안전하지 않은 콘텐츠를 차단하는 요청 설정입니다.

system_instruction

선택사항: 사용자가 모델에 제공한 시스템 요청 사항입니다.

variables

선택사항: 프롬프트에 템플릿 변수가 포함된 경우 해당 변수에 사용할 값을 제공합니다. 예를 들어 프롬프트 텍스트 콘텐츠가 'Hello, {name}'인 경우 변수 목록에는 '{name}' 변수의 가능한 모든 값의 사전이 포함되어야 합니다. 예:

        "variables": [
            {"name": {"text": "Alice"}},
            {"name": {"text": "Bob"}},
        ],
        

이 코드 샘플은 types.Prompt 변수를 정의하는 방법을 보여줍니다.

  import vertexai
  from vertexai import types
  from google.genai import types

  prompt = types.Prompt(
      prompt_data=types.PromptData(
        contents=[genai_types.Content(parts=[genai_types.Part(text="Hello, {name}! How are you?")])],
        variables=[
          {"name": genai_types.Part(text="Alice")},
          {"name": genai_types.Part(text="Bob")},
        ],
        model="your-model",
      ),
  )

프롬프트를 Google Cloud 프로젝트에 저장

이 섹션에서는 프롬프트를 Google Cloud 프로젝트에 저장하는 방법의 매개변수와 예를 보여줍니다.

매개변수

다음 표에서는 create 메서드에서 사용되는 매개변수를 설명합니다.

매개변수

prompt

특정 프롬프트의 데이터입니다.

config

선택사항: 프롬프트 생성을 위한 구성을 나타내는 types.CreatePromptConfig 객체입니다.

다음 표에서는 create_version 메서드에서 사용되는 매개변수를 설명합니다.

매개변수

prompt

필수: 특정 프롬프트의 데이터입니다.

config

선택사항: 프롬프트 버전을 만들기 위한 구성을 나타내는 types.CreatePromptConfig 객체입니다.

create_version 메서드에서 Prompt를 반환합니다.

Google Cloud 프로젝트에 프롬프트를 저장하려면 client.prompts.createclient.prompts.create_version 메서드를 사용합니다.

client.prompts.create 메서드는Google Cloud 프로젝트에 프롬프트 리소스를 만듭니다. client.prompts.create_version 메서드는 해당 리소스 내에 프롬프트 버전을 생성하며Google Cloud 콘솔에서 리소스에 액세스할 수 있습니다.

client.prompts.create 메서드는 Prompt 객체를 입력으로 사용하고 Google Cloud 프로젝트에 프롬프트를 만듭니다. client.prompts.create_version 메서드에는 버전을 만들 프롬프트 리소스의 ID인 prompt_id도 전달해야 합니다. Google Cloud 프로젝트와 연결된 새 Prompt 객체가 반환됩니다. Prompt 객체에 적용된 모든 업데이트는 create 또는 create_version이 호출될 때까지는 로컬입니다.

다음 코드 샘플은 프롬프트와 프롬프트 버전을 저장하는 방법을 보여줍니다.

  # Save `Prompt` to a Google Cloud project.
  # Returns a new `Prompt` object associated with the saved prompt resource.
  prompt_resource = client.prompts.create(prompt=prompt)
  prompt_version_resource = client.prompts.create_version(prompt=prompt, prompt_id=prompt_resource.prompt_id)

저장된 프롬프트 가져오기

이 섹션에서는 프롬프트와 프롬프트 버전을 가져오는 방법의 파라미터와 예를 보여줍니다.

client.prompts.getclient.prompts.get_version의 두 가지 방법이 있습니다.

매개변수

다음 표에서는 client.prompts.get 메서드에서 사용되는 매개변수를 설명합니다.

매개변수

prompt_id

필수: 가져올 프롬프트의 ID입니다.

config

선택사항: 프롬프트를 가져오기 위한 구성을 나타내는 types.GetPromptConfig 객체입니다.

다음 표에서는 client.prompts.get_version 메서드에서 사용되는 매개변수를 설명합니다.

매개변수

prompt_id

필수: 가져올 프롬프트의 ID입니다.

version_id

필수: 가져올 프롬프트 버전의 ID입니다.

config

선택사항: 프롬프트를 가져오기 위한 구성을 나타내는 types.GetPromptConfig 객체입니다.

Promptgetget_version 메서드에 의해 반환됩니다.

예시

Google Cloud 프로젝트에 저장된 프롬프트를 가져오려면 (로드하려면) client.prompts.get 메서드를 사용합니다. 이 메서드는 프롬프트 ID를 입력으로 가져와서 해당 Prompt 객체를 반환합니다. 이 코드 샘플은 저장된 프롬프트를 로드하는 방법을 보여줍니다.

  # Get prompt
  retrieved_prompt = client.prompts.get(prompt_id=prompt_resource.prompt_id)

다음 코드 샘플은 프롬프트 버전을 가져오는 방법을 보여줍니다.

  retrieved_prompt_version = client.prompts.get_version(prompt_id='your-prompt-id', version_id='your-prompt-version-id')

다음 코드는 생성형 AI SDK에서 generate_content를 호출하도록 프롬프트를 변환하는 방법을 보여줍니다.

  from google import genai
  from google.genai import types as genai_types

  genai_client = genai.Client(vertexai=True, project="my-project", location="my-location")

  response = genai_client.models.generate_content(
      model=retrieved_prompt.prompt_data.model,
      contents=retrieved_prompt.assemble_contents(),
  )

프롬프트 및 버전 나열

이 섹션에서는 프롬프트와 프롬프트 버전을 나열하는 방법의 파라미터와 예를 보여줍니다.

client.prompts.listclient.prompts.list_versions의 두 가지 방법이 있습니다.

매개변수

다음 표에서는 list 메서드에서 사용되는 매개변수를 설명합니다.

매개변수

config

선택사항: 프롬프트 목록의 구성을 나타내는 types.ListPromptsConfig 객체입니다.

다음 표에서는 list_versions 메서드에서 사용되는 매개변수를 설명합니다.

매개변수

prompt_id

필수: 버전을 나열할 프롬프트의 ID입니다.

config

선택사항: 프롬프트 버전 목록의 구성을 나타내는 types.ListPromptsConfig 객체입니다.

listlist_versions 메서드는 모두 types.PromptRef 객체의 Iterator을 반환합니다. PromptRef에는 프롬프트에 대한 참조가 포함되어 있습니다.

Google Cloud 프로젝트에 저장된 모든 프롬프트의 프롬프트 ID와 모델을 보려면 list 메서드를 사용합니다.

다음 코드 샘플은 현재 프로젝트에 저장된 모든 프롬프트의 PromptRef를 가져오는 방법을 보여줍니다.

  prompt_refs = list(client.prompts.list())

  # Get a prompt from the list
  prompt1 = client.prompts.get(prompt_id=prompt_refs[0].prompt_id)

다음 코드 샘플은 프롬프트 내에 저장된 모든 프롬프트 버전의 프롬프트 및 버전 ID를 나열하는 방법을 보여줍니다.

  prompt_versions_metadata = client.prompts.list_versions(prompt_id="123456789")

  # Get a specific prompt version from the versions metadata list
  prompt1 = client.prompts.get_version(
      prompt_id=prompt_versions_metadata[0].prompt_id,
      version_id=prompt_versions_metadata[0].version_id
  )

프롬프트 삭제

이 섹션에서는 프롬프트를 삭제하는 방법의 파라미터와 예를 보여줍니다.

deletedelete_version의 두 가지 방법이 있습니다.

매개변수

다음 표에서는 delete 메서드에서 사용되는 매개변수를 설명합니다.

매개변수

prompt_id

삭제할 프롬프트의 ID입니다.

config

선택사항: 프롬프트를 삭제하기 위한 구성을 나타내는 types.DeletePromptConfig 객체입니다.

다음 표에서는 delete_version 메서드에서 사용되는 매개변수를 설명합니다.

매개변수

prompt_id

버전을 삭제할 프롬프트의 ID입니다.

version_id

삭제할 프롬프트의 버전입니다.

config

선택사항: 프롬프트 버전을 삭제하기 위한 구성을 나타내는 types.DeletePromptConfig 객체입니다.

예시

프롬프트와 모든 버전을 삭제하려면 delete 메서드를 사용합니다.

  client.prompts.delete(prompt_id=retrieved_prompt.prompt_id)

프롬프트 리소스에서 특정 버전을 삭제하려면 delete_version 메서드를 사용합니다.

  client.prompts.delete_version(prompt_id=retrieved_prompt.prompt_id, version_id='your-version-id')

프롬프트 버전 복원

이 섹션에서는 프롬프트 버전을 복원하는 방법의 파라미터와 예를 보여줍니다.

매개변수

다음 표에서는 restore_version 메서드에서 사용되는 매개변수를 설명합니다.

매개변수

prompt_id

특정 프롬프트의 ID입니다.

version_id

복원할 프롬프트 버전입니다.

config

프롬프트 버전 복원을 위한 구성입니다.

Prompt 객체는 restore_version 메서드에 의해 반환됩니다.

프롬프트 리소스에는 이전에 저장된 프롬프트 버전을 저장하는 버전 기록도 포함되어 있습니다. restore_version() 메서드를 사용하여 이전 버전을 프롬프트의 최신 버전으로 복원할 수 있습니다. 그러면 Prompt 객체가 반환됩니다.

  # Restore to prompt version id 1
  restored_prompt = client.prompts.restore_version(prompt_id=retrieved_prompt.prompt_id, version_id='1')

다음 단계

  • 함수 호출을 지원하는 프롬프트에 대해 자세히 알아보려면 함수 호출 소개를 참고하세요.