Develop/AI

[AI] Prompt Engineering으로 AI 모델 제어하기

bona.com 2025. 4. 23. 08:45

AI가 많은 인기를 끌고 있는 만큼 이를 활용할 수 있는 개발자가 되고 싶어서 AI 스터디에 들어갔다.

스터디에서 AI의 Prompt Engineering에 대해 알아보고 이를 통해 AI 모델을 제어하는 과제를 수행하여 그 과정을 기록하고자 한다.

 

Prompt Engineering

Prompt Engineering이란 다양한 애플리케이션과 연구 주제에 언어 모델(LM)을 효율적으로 사용할 수 있도록 프롬프트를 개발하고 최적화하는 분야를 의미한다.

 

즉, AI 모델을 원하는 형태로 제어하는 것이다.

 

몇 가지 파라미터의 설정만으로도 AI 모델을 제어할 수 있다.

  • max_tokens: 모델이 생성하는 토큰의 최댓값이다.
  • temperature: 창의성을 제어한다. 낮은 temperature일수록 사실적이고 간결한 응답을 얻을 수 있다. 높은 temperature일수록 다양하고 창조적인 결과를 촉진한다. 
  • top_p: 단어의 다양성을 조절한다. 마찬가지로 사실적인 응답을 원한다면 낮은 top_p를 설정하면 된다.
  • frequency_penalty: 단어의 반복을 방지한다.
  • stop: 모델이 멈춰야 할 때를 정의한다.

 

AI 모델 제어

이제부터 직접 코드로 제어하는 방법을 알아보도록 하자.

아래는 과제 명세서이다.

필자는 해당 과제를 Google Colab에서 진행했다.

[과제 명세] Gemini API를 이용한 PDF 데이터 정형화 추출

[과제 목표] Gemini API의 File API와 Structured Output 기능을 활용하여 PDF 문서에서 특정 데이터를 추출하고 Pydantic 모델로 구조화하는 방법을 이해하고 실습할 수 있습니다.

[요구 사항]
- Gemini API의 File API를 이용하여 PDF 파일을 업로드하고, Pydantic 모델을 정의하여 해당 PDF 파일에서 원하는 데이터를 정형화된 형태로 추출하는 코드를 작성합니다.
- 샘플 PDF 파일(invoice.pdf, handwriting_form.pdf) 또는 개인적으로 준비한 PDF 파일을 사용해도 좋습니다.
- 모델은 Gemini 2.5 Flash를 이용합니다.

 

1. google-generativeai 설치

해당 명령어를 통해 프롬프트 엔지니어링을 위한 준비를 해 준다.

 

2. API 키 설정

https://platform.openai.com/playground/prompts

위 링크로 들어가 "API 키 만들기"를 눌러 API 키를 생성해 준다.

* 키 값은 절대로 외부에 유출해서는 안 된다.

 

이제 Google AI Studio에 접속할 준비는 끝났다.

 

3. PDF 파일 업로드 

Colab에 원하는 파일(필자의 경우 invoice.pdf)을 업로드 해 준다.

invoice.pdf 파일은 거래 내역들을 문서화한 것이다.

 

4. Pydantic 모델 정의하기

PDF에서 추출한 내용을 어떤 형태로 받아올지 설계를 한다.

 

5. 모델 생성 및 프롬프트 작성

과제 명세대로 Gemini 2.5 Flash를 활용한 모델을 만들어서 이에 맞는 프롬프트를 작성했다.

 

6. Structured Output 요청하기

그럼 이제 이 모델과 프롬프트를 가지고, PDF 파일을 함께 넣어서 요청을 보내는 것이다.

 

7. 결과 출력

결과는 아래와 같다.

PDF의 내용을 분석해 JSON형태로 정리해준 것을 확인할 수 있다.