> For the complete documentation index, see [llms.txt](https://genos-docs.gitbook.io/default/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://genos-docs.gitbook.io/default/v1.9.6/basic-tutorials/guides/prompt.md).

# 프롬프트 엔지니어링

### 프롬프트 엔지니어링

<figure><img src="https://3853761281-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FIAP3EtxIDdFGAeKwwGTl%2Fuploads%2Fgit-blob-38d6110e732eec9bce6b9058b91f047eca82bc33%2Fprompt_01.png?alt=media" alt=""><figcaption></figcaption></figure>

* 도구 > 프롬프트 라이브러리에서 프롬프트 생성을 클릭하고 필요한 정보를 입력합니다.
  * **관리 그룹**: 프롬프트를 관리할 관리그룹을 선택합니다.
  * **제목**: 표시할 제목을 입력합니다.
  * **프롬프트 상세 설정 메뉴**: 기본 문구를 클릭하여 재사용 가능합니다.
  * **프롬프트**: 프롬프트 내용을 직접 편집 합니다.
  * **컨텍스트**: RAG 유형의 프롬프트 사용시 {context} 부분에 들어갈 텍스트를 입력합니다.
  * **서빙**: 현재 서빙 되어있는 LLM 중 하나를 선택할 수 있습니다.
  * **메세지 창**: 테스트를 위한 메세지를 입력합니다.

<figure><img src="https://3853761281-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FIAP3EtxIDdFGAeKwwGTl%2Fuploads%2Fgit-blob-4bd5e3b4615921939ca41b0c99475bdc6fb9d15d%2Fprompt_02.png?alt=media" alt=""><figcaption></figcaption></figure>

* 프롬프트 상세 설정 창을 누르면 미리 셋팅 되어있는 문구가 버튼으로 만들어져 있습니다. 원하는 버튼을 클릭하고 생성 버튼을 누르면 문구가 추가됩니다.

### 프롬프트 테스트

<figure><img src="https://3853761281-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FIAP3EtxIDdFGAeKwwGTl%2Fuploads%2Fgit-blob-716c06919efc2073cb698f3e6cdc650b61090942%2Fprompt_03.png?alt=media" alt=""><figcaption></figcaption></figure>

* 컨텍스트 창에 컨텍스트를 추가하고, 메세지 창에서 질문을 입력하여 프롬프트를 테스트할 수 있습니다.
* 화면 파라미터에 없는 옵션은 파라미터 아래 **요청 본문(JSON)** 에 적어 함께 보낼 수 있습니다. 아래 「요청 본문(JSON) 덧붙이기」를 참고하세요.

### 프롬프트상세

<figure><img src="https://3853761281-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FIAP3EtxIDdFGAeKwwGTl%2Fuploads%2Fgit-blob-d336cdc87dca83f91cb0508efd38598a6c862a12%2Fprompt_04.png?alt=media" alt=""><figcaption></figcaption></figure>

중요 정보 탭에서는 현재 적용되어있는 프롬프트 상세 정보를 확인할 수 있습니다.

<figure><img src="https://3853761281-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FIAP3EtxIDdFGAeKwwGTl%2Fuploads%2Fgit-blob-6bb0f09506ec276ee7c13ca4d90739d429cf45ba%2Fprompt_05.png?alt=media" alt=""><figcaption></figcaption></figure>

버전 이력 탭에서는 버전별 프롬프트 상세 정보를 확인할 수 있습니다.

여러 버전 중, 원하는 프롬프트를 선택하여 운영에 반영할 수 있습니다.

<figure><img src="https://3853761281-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FIAP3EtxIDdFGAeKwwGTl%2Fuploads%2Fgit-blob-c0091e91373eb8359b32b12ad99b53cf12244324%2Fprompt_06.png?alt=media" alt=""><figcaption></figcaption></figure>

<figure><img src="https://3853761281-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FIAP3EtxIDdFGAeKwwGTl%2Fuploads%2Fgit-blob-e0ed7024a9ecaccc7505471674afe46ee8ccf135%2Fprompt_07.png?alt=media" alt=""><figcaption></figcaption></figure>

운영 버전으로 적용 클릭 시, 해당 프롬프트가 반영됩니다.

### 프롬프트 A/B 테스트

<figure><img src="https://3853761281-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FIAP3EtxIDdFGAeKwwGTl%2Fuploads%2Fgit-blob-5902eee830dc373479ac123f68bc053915492153%2Fprompt_08.png?alt=media" alt=""><figcaption></figcaption></figure>

프롬프트 상세 화면의 테스트 버튼을 통해 서빙별, 프롬프트별 A/B 테스트를 지원합니다.

A · B 칸마다 파라미터와 요청 본문(JSON)을 따로 정할 수 있습니다.

### 요청 본문(JSON) 덧붙이기

**요청 본문(JSON)** 에 적은 키를 테스트 요청에 덧붙여 서빙으로 보냅니다. 화면 파라미터에 없는 옵션(예: `reasoning_effort`)을 넣어 테스트할 때 씁니다.

| 화면      | 위치                                  |
| ------- | ----------------------------------- |
| 프롬프트 생성 | 도구 > 프롬프트 라이브러리 > 프롬프트 생성 창의 테스트 영역 |
| 중요 정보 탭 | 프롬프트 상세 > 중요 정보 탭의 채팅 테스트           |
| A/B 테스트 | 프롬프트 상세 > `[테스트]` 창의 A · B 칸마다 하나   |

카탈로그의 프롬프트 상세 화면도 같습니다.

<figure><img src="https://3853761281-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FIAP3EtxIDdFGAeKwwGTl%2Fuploads%2Fgit-blob-15076e44fb5e2e5ae75109ab39006c48f0d30b32%2Fprompt_14.png?alt=media" alt=""><figcaption></figcaption></figure>

* 입력칸은 **파라미터** 를 펼치면 Max Completion Tokens 바로 아래에 있습니다.
* 처음 값은 `{}` 입니다. `{}` 그대로 두면 지금까지와 같은 요청이 갑니다.
* 입력칸 아래에 안내 두 줄이 항상 표시됩니다.
  * 「입력한 값을 테스트 요청에 덧붙여 보냅니다. 위 파라미터와 같은 키는 이 값으로 보냅니다.」
  * 「외부 API 서빙에 등록된 키는 그 값으로 보냅니다. \[등록된 값 보기]로 확인하세요.」

입력 예시

```json
{"reasoning_effort": "high"}
```

#### 같은 키가 겹칠 때

같은 키가 여러 곳에 있으면 다음 순서로 앞의 값이 실립니다.

**외부 API 서빙에 등록된 값 > 요청 본문(JSON) > 화면 파라미터**

* 화면 파라미터(Temperature 등)와 같은 키를 적으면 요청 본문(JSON)의 값으로 보냅니다.
* 외부 API 서빙 리비전에 등록된 body와 같은 키를 적으면 등록된 값으로 바뀝니다. 키 하나가 통째로 바뀌므로, 등록값이 `{"reasoning": {"effort": "low"}}` 일 때 `{"reasoning": {"effort": "low", "exclude": true}}` 를 적어도 `exclude` 는 실리지 않습니다.
* 겹치지 않는 키는 모두 합쳐서 보냅니다.
* 내부 서빙에는 등록된 body가 없어 적은 값이 그대로 실립니다.
* VertexAI 형식 외부 API는 요청을 Gemini 형식으로 바꿔 보냅니다. Gemini 형식으로 바꿀 수 없는 키는 오류 없이 빠집니다.
* 이 순서는 프롬프트 테스트뿐 아니라 워크플로우 · API 호출에도 같게 적용됩니다.

#### 등록된 값 보기

요청 본문(JSON) 이름 오른쪽의 `[등록된 값 보기]` 를 누르면 「서빙에 등록된 값」 창이 열려, 선택한 서빙의 리비전에 등록된 body를 읽기 전용으로 보여 줍니다.

<figure><img src="https://3853761281-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FIAP3EtxIDdFGAeKwwGTl%2Fuploads%2Fgit-blob-30538ffe2fe97f064d4cb181c5c90efcf2d8ba1a%2Fprompt_15.png?alt=media" alt=""><figcaption></figcaption></figure>

* 서빙을 고르기 전에는 버튼이 비활성입니다. A/B 테스트에서는 칸마다 그 칸의 서빙 기준으로 보여 줍니다.
* 창 제목 아래에 「<서빙 이름> (ID=<서빙 ID>) · 트래픽을 받는 리비전 N개」가 표시됩니다.
* 트래픽을 받는 리비전마다 「리비전 ID <번호>」와 「트래픽 N%」를 붙여 리비전 ID가 큰 순으로 보여 줍니다. 비율은 서빙 상세의 분배 비율과 같습니다.
* 트래픽에서 제외된 리비전은 표시하지 않습니다.
* 등록된 body가 없거나 내부 서빙 리비전이면 「등록된 값이 없습니다.」로 표시됩니다.
* 트래픽을 받는 리비전이 하나도 없으면 창 대신 「등록된 값이 없습니다.」 토스트가 뜹니다. 불러오지 못하면 「등록된 값을 불러오지 못했습니다.」 토스트가 뜹니다.

리비전이 여럿이면 테스트 요청은 트래픽 비율에 따라 그중 한 리비전으로 갑니다. 리비전마다 등록된 값이 다르면 같은 요청이어도 결과가 달라질 수 있습니다.

#### 보낼 때 검사

전송 아이콘을 누르거나 Enter 로 보낼 때 입력값을 검사합니다. 문제가 있으면 보내지 않고 입력칸 아래에 빨간 글씨로 알립니다.

| 경우                                            | 표시 문구                                  |
| --------------------------------------------- | -------------------------------------- |
| JSON 형식이 아니거나, `{ }` 로 감싼 객체가 아닌 경우           | 올바르지 않은 JSON 형식입니다                     |
| 바깥 키에 `messages` · `stream` · `model` 이 있는 경우 | messages · stream · model 키는 넣을 수 없습니다 |

<figure><img src="https://3853761281-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FIAP3EtxIDdFGAeKwwGTl%2Fuploads%2Fgit-blob-1527459c9a01e9d2887f48563232bd9a775d0d70%2Fprompt_16.png?alt=media" alt=""><figcaption></figcaption></figure>

* 입력을 고치면 문구가 사라집니다.
* 내용을 전부 지우면 `{}` 로 보고 보냅니다.
* A/B 테스트에서 한쪽 칸만 오류면 그 칸만 보내지 않고 다른 칸은 보냅니다.
* 키 이름의 오타나 서빙이 지원하지 않는 키는 화면에서 걸러지지 않고, 서빙에 따라 오류 없이 무시될 수 있습니다. 값이 틀린 경우에는 서빙이 오류를 돌려줍니다.

#### 서빙 오류

서빙이 오류를 돌려주면 답변 자리에 서빙이 보낸 오류 문구를 빨간 글씨로 보여 줍니다. 서빙 문구가 없거나 네트워크 오류 · 시간 초과면 「테스트 실행 중 오류가 발생했습니다. 잠시 후 다시 시도해주세요.」가 표시됩니다.

#### 초기화

다음 경우 요청 본문(JSON)이 `{}` 로 돌아갑니다.

* 서빙을 바꿀 때(화면 파라미터도 기본값으로 돌아갑니다)
* `[테스트]` 창에서 `[전체 초기화]` 를 누르거나 창을 다시 열 때
* 중요 정보 탭 · 프롬프트 생성 창을 떠날 때

### 워크플로우에 프롬프트 연결

<figure><img src="https://3853761281-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FIAP3EtxIDdFGAeKwwGTl%2Fuploads%2Fgit-blob-ff85aeb2049e4db2dc31c67fad12b4ccc8ff0929%2Fprompt_09.png?alt=media" alt=""><figcaption></figcaption></figure>

* 워크플로우 생성을 시작합니다.

<figure><img src="https://3853761281-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FIAP3EtxIDdFGAeKwwGTl%2Fuploads%2Fgit-blob-279a80bf3633157f091ca2d542e03b7f87ac5f28%2Fprompt_10.png?alt=media" alt=""><figcaption></figcaption></figure>

* 위와 같은 노드들을 캔버스에 추가 하고 연결합니다.
* Genos Unified RAG Chain과 Genos Prompt 노드를 추가하고 연결하였습니다.
* MNC Prompt 노드에서 프롬프트 리스트 중 사용할 프롬프트를 선택합니다.

<figure><img src="https://3853761281-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FIAP3EtxIDdFGAeKwwGTl%2Fuploads%2Fgit-blob-e68debd1c71545c597712457f1a59b330c4f5032%2Fprompt_11.png?alt=media" alt=""><figcaption></figcaption></figure>

* 워크플로우를 저장합니다.

<figure><img src="https://3853761281-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FIAP3EtxIDdFGAeKwwGTl%2Fuploads%2Fgit-blob-619d702d8cc474385393ce055d0c0f3093597872%2Fprompt_12.png?alt=media" alt=""><figcaption></figcaption></figure>

* 워크플로우의 리비전이 저장되면 다시 수정 버튼을 클릭하, flowise의 챗 테스트 아이콘을 클릭합니다.

<figure><img src="https://3853761281-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FIAP3EtxIDdFGAeKwwGTl%2Fuploads%2Fgit-blob-c881a6fce28fe03931f34905ae912ba86663a3aa%2Fprompt_13.png?alt=media" alt=""><figcaption></figcaption></figure>

* 질문을 입력하여 RAG 워크플로우를 테스트합니다.

***


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://genos-docs.gitbook.io/default/v1.9.6/basic-tutorials/guides/prompt.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
