본문 바로가기

소프트웨어-이야기/소프트스킬

[Vertex AI] GEMINI에게 질문할 수 있는 것들 모음집

지난 2주간 Inspect Rich Documents with Gemini Multimodality and Multimodal Rag 실습을 들었다. 

 

Inspect Rich Documents with Gemini Multimodality and Multimodal RAG - Gemini의 멀티모달리티 | Google Cloud Skills Boost

이 실습에서는 결합된 텍스트, 이미지, 기타 데이터 유형을 이해하고 처리하는 Gemini의 기능을 다양한 실제 시나리오에서 적용하는 방법을 알아봅니다.

www.cloudskillsboost.google

 

이 실습을 통해, GEMINI가 받아줄 수 있는 질문의 범위를 이해할 수 있었다. 본 글에서는 실습에서 인상깊었던 프롬프트와 코드 일부를 기록해두고자 한다. 

프롬프트와 활용사례 

1. 동영상을 첨부하고, 이미지가 등장한 시점 질문하기

  동영상 속 각 프레임을 주의 깊게 살펴보고 질문에 답하십시오.
  답변은 첨부된 동영상에 제공된 정보만을 엄격히 근거로 하십시오.
  동영상에 포함되지 않은 정보를 임의로 추가하지 마시고, 지나치게 장황하게 설명하지 마십시오. 간결하게 답변하십시오.

  질문:
  - 이미지에 담긴 순간이 영상에서 언제 발생하나요? 타임스탬프를 제시하세요.
  - 해당 순간의 맥락은 무엇이며, 해설자는 이에 대해 무엇을 말하나요?

2. 이미지를 첨부하여 분석을 요청하고, 유사도 질문하기

다음 두 이미지를 살펴보십시오:
이미지 1:{이미지1}
이미지 2:{이미지2}


1. 이미지 1에는 무엇이 보여지나요? 어디에 있나요?
2. 두 이미지 사이의 유사점은 무엇인가요?
3. 이미지 1과 이미지 2는 내용이나 등장인물 측면에서 어떤 차이가 있나요?

3. 다이어그램 해석 요청하기

질문

이 ER 다이어그램의 엔터티와 관계를 문서화하십시오.

대답

4. 코드 분석 요청하기

준비: context-cache

context-cache를 사용하면, 자주 사용하는 입력 토큰을 전용 캐시에 저장할 수 있다. 그리고 이 값을 후속 요청에서 재사용할 수 있다. 그러면 동일한 토큰 세트를 모델에 반복적으로 전달하지 않아도 된다.

repo_url = "https://github.com/GoogleCloudPlatform/microservices-demo"  # @param {type:"string"}
exclude_patterns = {
    "*.png",
    "*.jpg",
    "*.jpeg",
    "*.gif",
    "*.svg",
    "*.ico",
    "*.webp",
    "*.jar",
    ".git/",
    "*.gitkeep",
}
_, code_index, code_text = ingest(repo_url, exclude_patterns=exclude_patterns)
prompt = f"""
Context:
- The entire codebase is provided below.
- Here is an index of all of the files in the codebase:
    \n\n{code_index}\n\n.
- Then each of the files is concatenated together. You will find all of the code you need:
    \n\n{code_text}\n\n
"""

cached_content = client.caches.create(
    model="gemini-2.0-flash-001",
    config=CreateCachedContentConfig(
        contents=prompt,
        ttl="3600s",
    ),
)

3-A. 개발 가이드 요청하기

question = """
  신규 개발자가 코드베이스에 적응할 수 있도록 시작 가이드를 제공하십시오.
"""

response = client.models.generate_content(
    model="gemini-2.0-flash-001",
    contents=question,
    config=GenerateContentConfig(
        cached_content=cached_content.name,
    ),
)
display(Markdown(response.text))

3-B. 코드에서 버그 찾기

question = """
    코드베이스에서 가장 심각한 상위 3개 문제를 찾아라.
"""

response = client.models.generate_content(
    model="gemini-2.0-flash-001",
    contents=question,
    config=GenerateContentConfig(
        cached_content=cached_content.name,
    ),
)
display(Markdown(response.text))

3-C. 코드를 보고 배울점 묻기

question = """
  이 코드베이스에 대한 요약과, 여기서 배울 수 있는 가장 중요한 세 가지를 알려주세요.
"""

response = client.models.generate_content(
    model="gemini-2.0-flash-001",
    contents=question,
    config=GenerateContentConfig(
        cached_content=cached_content.name,
    ),
)
display(Markdown(response.text))

 

아이디어 

실습을 통해 다음과 같은 작업에 GEMINI를 활용할 수 있겠단 생각이 들었다. 

  • 업무 (사내에서 허용하는 AI 도구가 있는 경우에만, 사용가능)  
    • 트러블슈팅
      • 기간별 매트릭을 두개 캡쳐하여 첨부하고, 눈에 띄는 차이점 물어보기 
      • 트러블슈팅에 사용할 여러 지표를 첨부하여, context 공통으로 만들어서 사용하기 
    • QA 
      • 회귀테스트 
        • 전후 API 응답 혹은 화면을 첨부한 후, 차이점 물어보기 
  • 학습 
    • 유튜브 링크와 캡쳐해둔 이미지를 보낸 후, 이미지가 나타난 시점 물어보기

 

참고 자료