# Few Shot Prompt Template

LLM에 적절한 예시(few-shot examples)를 제공하여 원하는 출력 형태를 유도하는 프롬프트 템플릿 구성 노드입니다. 사전 정의된 입력-출력 예제를 기반으로 프롬프트를 자동 생성하며, 일관된 출력 형식 확보에 유리합니다. 분류, 변환, 요약 등 다양한 작업에 적합합니다.

***

### 주요 기능

* 여러 개의 입력-출력 예제를 활용해 **few-shot prompting 구조** 자동 생성
* 예제와 사용자 입력 사이에 **Prefix, Suffix, Separator 등 구조화된 텍스트** 삽입 가능
* `f-string` 등 템플릿 형식 지정으로 LLM과의 호환성 강화
* 반복적이고 정형화된 태스크에 유리한 프롬프트 구성 지원
* `FewShotPromptTemplate` 객체로 출력되어 다른 노드와 연계 가능

<figure><img src="https://2658622170-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FfkjMyYilRWTdXwhLDYHx%2Fuploads%2Fgit-blob-b9846ab5e356150bb456b7d22e5391a8257dc9d6%2F%EC%8A%A4%ED%81%AC%EB%A6%B0%EC%83%B7%202025-05-20%20175522.png?alt=media" alt=""><figcaption><p>WindyFlo Few Shot Prompt Template</p></figcaption></figure>

### 입력값 (Inputs)

| 항목                | 설명                                                         | 필수 여부 |
| ----------------- | ---------------------------------------------------------- | ----- |
| Example Prompt    | 각 예제에 사용될 템플릿 형식 (예: `"Word: {word}\nAntonym: {antonym}"`) | 필수    |
| Examples          | JSON 형식의 예제 리스트. 변수명이 템플릿과 일치해야 함                          | 필수    |
| Prefix            | 예제 리스트 상단에 삽입할 안내 문구                                       | 선택    |
| Suffix            | 사용자 입력 전 삽입될 문구. 일반적으로 프롬프트 지시문 포함                         | 선택    |
| Example Separator | 각 예제 간 구분자 (예: )                                           | 필수    |
| Template Format   | 템플릿 렌더링 방식 선택 (`f-string` 또는 `jinja2`)                     | 필수    |

***

### 출력값 (Outputs)

| 출력 항목                 | 설명                                          |
| --------------------- | ------------------------------------------- |
| FewShotPromptTemplate | 구성된 few-shot 프롬프트 객체. LLM 호출 노드에 연결하여 활용 가능 |

***

### 활용 예시

* **단어 유의어/반의어 추론** 예제를 활용한 사전학습 없는 간단한 언어 태스크
* **문장 분류 예시를 제공**하여 분류 태스크 정밀도 향상
* **데이터 변환 예시**를 제공하여 입력 형식 통일 (예: 날짜 포맷 변경, 명함 정보 추출 등)
* 여러 예제를 포함시켜 **LLM의 일관된 출력 포맷 확보**가 필요한 상황

***

### 사용 팁

* `Example Prompt` 내 변수명은 반드시 `Examples`의 key와 일치해야 합니다.
* `Prefix`에는 작업 설명을 간단히 기입하고, `Suffix`에는 사용자의 실제 입력 위치를 유도하는 형식을 사용하는 것이 일반적입니다.
* Separator는 또는 처럼 줄바꿈을 포함하는 경우 가독성과 출력 안정성 측면에서 유리합니다.

***

### 주의사항

* `Examples` 입력은 JSON 배열로 제공되어야 하며, 변수명이 템플릿과 불일치할 경우 오류 발생
* `Template Format`은 지원되는 형식(`f-string`, `jinja2`) 중 하나만 사용해야 하며, 잘못된 포맷 사용 시 렌더링 실패
* 예제가 너무 많거나 프롬프트가 너무 길어질 경우 LLM의 토큰 한도를 초과할 수 있음
