이 페이지에서는 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 기능을 사용하려면 다음 단계를 따르세요.
Vertex AI SDK의 최신 버전을 설치합니다.
pip install --upgrade google-cloud-aiplatform
다음 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
클래스에 정의되며 다음을 포함합니다.
속성 | |
---|---|
|
필수: 모델 이름입니다. |
|
필수: 모델과의 대화 콘텐츠입니다. 단일 턴 프롬프트만 지원됩니다. |
|
선택사항: 생성 구성 |
|
선택사항: 이 구성은 요청에 제공된 모든 도구에 공유됩니다. |
|
선택사항: 모델이 다음 대답을 생성하는 데 사용할 수 있는 |
|
선택사항: |
|
선택사항: 사용자가 모델에 제공한 시스템 요청 사항입니다. |
|
선택사항: 프롬프트에 템플릿 변수가 포함된 경우 해당 변수에 사용할 값을 제공합니다. 예를 들어 프롬프트 텍스트 콘텐츠가 '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
메서드에서 사용되는 매개변수를 설명합니다.
매개변수 | |
---|---|
|
특정 프롬프트의 데이터입니다. |
|
선택사항: 프롬프트 생성을 위한 구성을 나타내는 |
다음 표에서는 create_version
메서드에서 사용되는 매개변수를 설명합니다.
매개변수 | |
---|---|
|
필수: 특정 프롬프트의 데이터입니다. |
|
선택사항: 프롬프트 버전을 만들기 위한 구성을 나타내는 |
create_version
메서드에서 Prompt
를 반환합니다.
예
Google Cloud 프로젝트에 프롬프트를 저장하려면 client.prompts.create
및 client.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.get
및 client.prompts.get_version
의 두 가지 방법이 있습니다.
매개변수
다음 표에서는 client.prompts.get
메서드에서 사용되는 매개변수를 설명합니다.
매개변수 | |
---|---|
|
필수: 가져올 프롬프트의 ID입니다. |
|
선택사항: 프롬프트를 가져오기 위한 구성을 나타내는 |
다음 표에서는 client.prompts.get_version
메서드에서 사용되는 매개변수를 설명합니다.
매개변수 | |
---|---|
|
필수: 가져올 프롬프트의 ID입니다. |
|
필수: 가져올 프롬프트 버전의 ID입니다. |
|
선택사항: 프롬프트를 가져오기 위한 구성을 나타내는 |
Prompt
는 get
및 get_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.list
및 client.prompts.list_versions
의 두 가지 방법이 있습니다.
매개변수
다음 표에서는 list
메서드에서 사용되는 매개변수를 설명합니다.
매개변수 | |
---|---|
|
선택사항: 프롬프트 목록의 구성을 나타내는 |
다음 표에서는 list_versions
메서드에서 사용되는 매개변수를 설명합니다.
매개변수 | |
---|---|
|
필수: 버전을 나열할 프롬프트의 ID입니다. |
|
선택사항: 프롬프트 버전 목록의 구성을 나타내는 |
list
및 list_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
)
프롬프트 삭제
이 섹션에서는 프롬프트를 삭제하는 방법의 파라미터와 예를 보여줍니다.
delete
및 delete_version
의 두 가지 방법이 있습니다.
매개변수
다음 표에서는 delete
메서드에서 사용되는 매개변수를 설명합니다.
매개변수 | |
---|---|
|
삭제할 프롬프트의 ID입니다. |
|
선택사항: 프롬프트를 삭제하기 위한 구성을 나타내는 |
다음 표에서는 delete_version
메서드에서 사용되는 매개변수를 설명합니다.
매개변수 | |
---|---|
|
버전을 삭제할 프롬프트의 ID입니다. |
|
삭제할 프롬프트의 버전입니다. |
|
선택사항: 프롬프트 버전을 삭제하기 위한 구성을 나타내는 |
예시
프롬프트와 모든 버전을 삭제하려면 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
메서드에서 사용되는 매개변수를 설명합니다.
매개변수 | |
---|---|
|
특정 프롬프트의 ID입니다. |
|
복원할 프롬프트 버전입니다. |
|
프롬프트 버전 복원을 위한 구성입니다. |
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')
다음 단계
- 함수 호출을 지원하는 프롬프트에 대해 자세히 알아보려면 함수 호출 소개를 참고하세요.