본문 바로가기

Biusiness Insight/Gen AI · Data Analytics

[Google Cloud] Vertex AI 활용 Prompt Design

반응형

 

 

Vertex AI Studio 접속

1. Google Cloud 콘솔 로그인 ☞ GCP Console

2. Vertex AI Studio 접속 ☞ Verex AI Studio

  • Vertex AI Studio를 사용하면 생성형 AI 모델을 신속하게 테스트하고 맞춤 설정하여 Application 에서 활용 가능
  • Google Cloud 콘솔에서 Gemini 멀티모달을 이용해 이미지 분석 및 프롬프트를 설계하고 대화 생성 가능
  • API나 Python SDK를 활용하지 않아도 직관적인 UI를 통해 모든 기능 액세스 가능

 

Gemini 이미지 분석 도구 빌드

1. GCP 콘솔에서 탐색 메뉴 > 인공지능 > Vertex AI > Vertex AI Studio > 개요 이동

 

2. Gemini 기반 멀티모달에서 Gemini 사용해보기 클릭

 

3. gemini-1.0-pro-vision 모델 선택 후, 아래 이미지를 업로드

 

 

Gemini 소개 문구 생성기 빌드

 


1. 프롬프트 만들기 : Vertex AI Studio > Language > Create a new Prompt > Generate Text [ Text PROMPT ] 클릭

 

2. 구조화 모드 (Structured) 프롬프트 선택

 

3. gemini-1.0-pro 모델 선택

4. 컨텍스트 (Context)와 예시(examples) 입/출력 설정 후 프롬프트(Prompt) 기반 소개 문구 생성

- 컨텍스트 (Context) 

Cymbal Direct는 아웃도어 장비 소매업체와 제휴를 맺고 있습니다. 
젊은 층의 아웃도어 활동을 장려하는 새로운 제품 라인을 출시할 예정입니다. 
이 제품 라인에 맞는 인상적인 소개 문구를 만드는 데 도움이 필요합니다.

- 예시 입출력

# 입력
등산객을 위해 설계된 내구성 좋은 배낭을 소개하는 문구를 작성하세요. 
등산객에게 준비된 느낌을 전달해야 합니다. 
미니멀리스트와 같은 스타일로 작성하세요.

# 출력
당신의 여정을 위해 준비된 배낭: 모험을 위한 필수품

- 프롬프트

제품 속성(예: 내구성, 경량성)
타겟층(예: 탐험을 좋아하는 젊은 층, 가족)
정서적 공감(예: 자립성, 유대감)

 

 

이미지 분석 코드로 실험 (JupyterLab)

 

1. Google Cloud 콘솔  GCP Console >  탐색 메뉴에서 > Vertex AI > Workbench로 이동하기

2. 인스턴스 페이지에서 JupyterLab 열기 버튼 클릭

3. 위에서 생성/저장해둔 "Cymbal 제품 분석" 멀티모달 프롬프트로 이동

4. 프롬프트 우측 상단에 [ 코드 가져오기 ] 클릭 

 

5. 코드를 복사하여 노트북의 코드 셀에서 실행

 

import base64
import vertexai
from vertexai.generative_models import GenerativeModel, Part, FinishReason
import vertexai.preview.generative_models as generative_models

def generate():
  vertexai.init(project="qwiklabs-gcp-00-58e923cdaf60", location="us-central1")
  model = GenerativeModel(
    "gemini-1.0-pro-vision-001",
  )
  responses = model.generate_content(
      [image1, """이미지에서 영감을 받은 간결한 설명 텍스트광고에 적합한 눈길을 사로잡는 문구자연에 중점을 둔 캠페인의 시적 묘사"""],
      generation_config=generation_config,
      safety_settings=safety_settings,
      stream=True,
  )

  for response in responses:
    print(response.text, end="")

image1 = Part.from_data(
    mime_type="image/png",
    data=base64.b64decode(""" < 값 변경 > """))

generation_config = {
    "max_output_tokens": 6,
    "temperature": 1,
    "top_p": 0.4,
    "top_k": 32,
}

safety_settings = {
    generative_models.HarmCategory.HARM_CATEGORY_HATE_SPEECH: generative_models.HarmBlockThreshold.BLOCK_MEDIUM_AND_ABOVE,
    generative_models.HarmCategory.HARM_CATEGORY_DANGEROUS_CONTENT: generative_models.HarmBlockThreshold.BLOCK_MEDIUM_AND_ABOVE,
    generative_models.HarmCategory.HARM_CATEGORY_SEXUALLY_EXPLICIT: generative_models.HarmBlockThreshold.BLOCK_MEDIUM_AND_ABOVE,
    generative_models.HarmCategory.HARM_CATEGORY_HARASSMENT: generative_models.HarmBlockThreshold.BLOCK_MEDIUM_AND_ABOVE,
}

generate()

 

 

소개 문구 생성 코드 실험

1. 위에서 생성/저장해둔 "Cymbal 소개 문구 생성기 템플릿" 프롬프트로 이동

2. 프롬프트 우측 상단에 [ 코드 가져오기 ] 클릭 

3. 코드를 복사하여 노트북의 코드 셀에서 실행

  • 삼중 따옴표(""") 사이의 문구 수정
  • 자리표시자 <your example input>을 소개 문구 프롬프트의 예시 입력으로, <your example output>을 소개 문구 프롬프트의 예시 출력으로 변경
  • <your test input>을 테스트 입력으로 변경
from vertexai.preview.generative_models import GenerativeModel

model = GenerativeModel("gemini-1.0-pro")

prompt = """Cymbal Direct는 아웃도어 장비 소매업체와 제휴를 맺고 있습니다. 젊은 층의 아웃도어 활동을 장려하는 새로운 제품 라인을 출시할 예정입니다. 이 제품 라인에 맞는 인상적인 소개 문구를 만드는 데 도움이 필요합니다.

input: 등산객을 위해 설계된 내구성 좋은 배낭을 소개하는 문구를 작성하세요. 등산객에게 준비된 느낌을 전달해야 합니다. 미니멀리스트와 같은 스타일로 작성하세요.
output: 당신의 여정을 위해 준비된 배낭: 모험을 위한 필수품

input: 여행과 자연을 강조하는 문구를 작성하세요. 광고 카피 처럼 심플하게 작성하세요.
output: 여행을 위한 감성 백팩 : 자연을 위한 필수품

input: 제품 속성(예: 내구성, 경량성)
타겟층(예: 탐험을 좋아하는 젊은 층, 가족)
정서적 공감(예: 자립성, 유대감)
소개 문구에 자연 nature 이라는 키워드를 한국어와 영어 모두 포함해주세요.
output: 
"""

responses = model.generate_content(
    prompt,
    generation_config={
        "temperature": 0.5,
        "max_output_tokens": 2048,
        "top_p": 1.0,
        "top_k": 40,
    },
    stream=True
    )

for response in responses:
    print(response.text)

 

 

 

 

 

 

 

 

 

(source : Google Cloud)

반응형