> For the complete documentation index, see [llms.txt](https://docs.allganize.ai/allganize-alli-works/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.allganize.ai/allganize-alli-works/alli-dashboard/setting/prompt/appprompt.md).

# 앱 프롬프트

### 앱 편집 화면에서 프롬프트 추가 및 관리하기&#x20;

앱 편집 화면에서 프롬프트를 실시간으로 작성하고 즉시 앱에 반영할 수 있습니다.\
프롬프트는 아래 두 가지 범위로 구분됩니다.

* **앱 프롬프트: 특정 앱에만 종속되어 사용되는 프롬프트입니다. 해당 가이드에서 자세히 설명합니다.**
* 프로젝트 프롬프트: 하나의 프로젝트 내 여러 앱에서 공유 가능한 프롬프트입니다. 상세 내용은 [프로젝트 프롬프트 ](/allganize-alli-works/alli-dashboard/setting/prompt/projectprompt.md)가이드를 참고해 주세요.

### 1. 앱 편집 화면에서 앱 프롬프트 추가하기

<figure><img src="/files/uQ8lym0hDuzw2YZ8bsMW" alt=""><figcaption></figcaption></figure>

1. 프롬프트 범위를 선택합니다. 앱 프롬프트를 선택합니다.&#x20;
2. 프롬프트를 실행할 LLM 모델을 선택합니다.
3. 기존에 만들어진 프롬프트를 활용하려면 '프롬프트' 드롭다운에서 사용하고자 하는 프롬프트를 선택합니다.

<figure><img src="/files/24aClXC0ZpFYaQlZMoGK" alt=""><figcaption></figcaption></figure>

4. 새 프롬프트를 만들기 위해서는 + 추가 버튼을 클릭합니다.

<figure><img src="/files/YBYv0Tb7jZUrlyOm8lNR" alt=""><figcaption></figcaption></figure>

5. **프롬프트 추가 및 작성**\
   \
   5-1. 프롬프트 이름을 입력합니다.\
   \
   5-2. 프롬프트 설명을 입력합니다(프롬프트의 용도를 쉽게 구분하기 위한 설명으로, 실제 실행에는 영향을 주지 않습니다).\
   \
   5-3. 시스템 프롬프트를 입력합니다. \
   시스템 프롬프트는 LLM의 동작을 설정하는 데 사용됩니다. 예를 들어, 모델에게 특정 페르소나를 부여하거나, 대화 전반에서 모델이 따라야 하는 행동 지침을 정의할 수 있습니다.

   > ⚠프롬프트 내에서 동적 인풋 사용 시에는 중괄호 `{}`를 반드시 사용해야 합니다.&#x20;

   \
   \
   5-4. 유저 프롬프트 입력\
   유저 프롬프트에서는 LLM이 응답해야 할 요청이나 질문을 작성합니다. 쿼리 및 질문 작성이 권장됩니다. 입력하지 않아도 무방합니다.

   > ⚠프롬프트 내에서 동적 인풋 사용 시에는 중괄호 `{}`를 반드시 사용해야 합니다.&#x20;

   \
   \
   5-5. 동적 인풋 추가\
   프롬프트 내에서 동적으로 값이 변하는 변수를 할당할 수 있습니다.

#### 동적 인풋 추가하기

<figure><img src="/files/t2lS4S7kfjvWCSFeE9cN" alt=""><figcaption></figcaption></figure>

1. 프롬프트 내에서 사용할 동적 인풋 항목명을 입력합니다.
2. 해당 항목에 대입할 변수 값을 지정합니다. 동적 인풋에 할당할 수 있는 변수 값 종류에는 시스템과 앱 두 가지 옵션이 있습니다.

#### a. 시스템 변수  Alli 시스템과 연동되어 자동으로 값이 할당되는 입력입니다.&#x20;

* `EMAIL`, `LANGUAGE` 등 시스템에서 자동으로 제공되는 변수입니다.

#### b. 앱 변수

앱 내에서 직접 변수를 지정하고 값을 입력할 수 있는 옵션입니다.

* 입력값은 상황과 필요에 따라 자유롭게 할당 가능하며, 앱 내 대화 흐름에 따라 값이 변동될 수 있습니다.

#### 앱 변수 추가하기

<figure><img src="/files/xQnahUtSzDJlU1DuHJDB" alt=""><figcaption></figcaption></figure>

1. 변수명을 입력합니다.
2. 변수 유형을 선택합니다.

* **대화**: 대화 내에서만 해당 값이 저장되고 반영됩니다.
* **유저**: 대화 종료 후에도 해당 유저의 값이 저장되어 반영됩니다.

3. 변수 종류를 선택합니다. (총 11종)

* 상세 정보는 [변수 값 가이](https://app.gitbook.com/o/-MCUOqJ56TWZMFzlC1xc/s/hfOaW8xkP2ul7rAY1EBF/~/changes/391/alli-dashboard/setting/variable/value)에서 확인할 수 있습니다.

4. 저장 버튼을 클릭합니다.
5. 필요 시 토큰 자르기 ON/OFF 옵션을 선택합니다. 긴 토큰을 가진 변수는 ON으로 설정하는 것을 권장합니다.

### 2. 앱 프롬프트 관리하기

1. 대시보드 내 설정 > 프롬프트 관리 > 앱 페이지로 이동합니다.

이 때 앱 페이지에 접근할 수 있는 멤버의 권한은 **앱 마켓 또는 앱 관리 접근 권한**을 따라갑니다.

<figure><img src="/files/7UYnW3uxfGK2qLhXmHDh" alt=""><figcaption></figcaption></figure>

2. 뷰어 혹은 편집 권한을 가지고 있는 공개된 앱과 작성 중인 모든 대화형 앱이 목록에 표시됩니다.&#x20;

<figure><img src="/files/gMVSnUkH8qUcCMX5hp9T" alt=""><figcaption></figcaption></figure>

### 3. 권한에 따른 앱 프롬프트 관리 동작

앱 프롬프트 관리 기능은 사용자가 해당 앱에 대해 뷰어 권한을 가지고 있는지, 편집자 권한을 가지고 있는지에 따라 동작 방식이 달라집니다.

<figure><img src="/files/8YKq97XXgjAgKhfF3tm6" alt=""><figcaption></figcaption></figure>

앱에 권한이 없는 멤버는 프롬프트 관리 화면에서 해당 앱을 확인할 수 없습니다.

<figure><img src="/files/Ximpx5A56FBYz5sVsose" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/YsAXQC5zUXmTWaFPvrvM" alt=""><figcaption></figcaption></figure>

반대로, 앱에 열람 또는 편집 권한이 있는 멤버는 프롬프트 관리 화면에서 앱이 목록에 표시됩니다.

#### 바로가기 버튼 클릭 시&#x20;

바로가기 버튼을 클릭하면, 해당 앱에서 어떤 프롬프트가 실제로 어떤 노드에서 사용되고 있는지를 앱 편집 화면에서 확인할 수 있습니다.

<figure><img src="/files/D1g0LLMxoKyvDxNTQhwR" alt=""><figcaption></figcaption></figure>

앱에 대한 편집 권한이 없는 경우에는 열람만 가능합니다.

<figure><img src="/files/hz8v5mRE7PYDV0ixTD9M" alt=""><figcaption></figcaption></figure>

앱에 대한 편집 권한이 있는 경우에는 앱을 ‘작성 중’ 상태로 변경하여 바로 편집할 수 있습니다.

#### 앱 상세 프롬프트 클릭 시&#x20;

앱을 클릭하여 앱 프롬프트 화면에 진입하면, 해당 앱에서 작성된 프롬프트 목록이 표시됩니다.

<figure><img src="/files/ami25Zzx2xbbi9aa795J" alt=""><figcaption></figcaption></figure>

* 앱에 대한 편집 권한이 없는 경우(열람 권한만 있는 경우) 프롬프트를 직접 삭제하거나 수정할 수는 없지만, 다른 앱으로 복사하거나 프로젝트에서 공유할 수 있도록 복사할 수는 있습니다.

<figure><img src="/files/ItmKzmEac13NWGPu6qE5" alt=""><figcaption></figcaption></figure>

* 앱에 대한 편집 권한이 있는 경우에는 프롬프트를 새로 작성하거나 삭제 및 수정할 수 있습니다. 다만 실제 앱 내에서 사용 중인 프롬프트는 직접 변경할 수 없습니다. 이 경우에는 프롬프트를 복사한 후 수정하는 방식으로 진행해야 합니다.

#### 프로젝트 프롬프트로 복사하기

앱에서 사용 중이던 프롬프트를 프로젝트 내 모든 앱에서 공유할 수 있는 프로젝트 프롬프트로 복사하여 수정해보겠습니다.

<figure><img src="/files/kzUrBRsLWZipZTUsOsTn" alt=""><figcaption></figcaption></figure>

1. 프로젝트 프롬프트 복사하기 버튼을 클릭합니다.

<figure><img src="/files/r9QBLx4hhKvSPcOXolvz" alt=""><figcaption></figcaption></figure>

2. 복사된 프롬프트에 필요한 내용을 추가로 수정할 수 있습니다. 수정하지 않고 그대로 두어도 무방하며, 완료되면 저장 버튼을 클릭합니다.

<figure><img src="/files/9jCIclbTthIqKp2BYsa9" alt=""><figcaption></figcaption></figure>

3. 앱에 종속되어 있던 프롬프트가 프로젝트 프롬프트로 단일 프롬프트 형태로 복사된 것을 확인할 수 있습니다. 이렇게 복사된 프롬프트는 하나의 앱이 아닌 여러 앱에서 공통으로 사용할 수 있으며, LLM 실행 노드의 프롬프트 드롭다운 리스트에서 선택하여 활용할 수 있습니다.

#### 앱 프롬프트로 복사하기

앱에서 사용 중이던 프롬프트를 다른 앱으로 복사하여 공유할 수 있도록, 앱 프롬프트 복사 기능을 사용해 보겠습니다.

<figure><img src="/files/kzUrBRsLWZipZTUsOsTn" alt=""><figcaption></figcaption></figure>

1. 앱 프롬프트 복사하기 버튼을 클릭합니다.

<figure><img src="/files/nqTm2pVQWIf75G1NDUCi" alt=""><figcaption></figcaption></figure>

2. 프롬프트를 복사할 대상 앱을 선택합니다.\
   예를 들어, `테스트앱2`에 있는 `테스트1` 프롬프트를 `NEW앱`으로 복사해 보도록 하겠습니다.

<figure><img src="/files/bpVhUCAJwEL7Vx3b0zGD" alt=""><figcaption></figcaption></figure>

3. 복사 버튼을 클릭합니다.

<figure><img src="/files/p17cVmdzyA8aEKNA6YTp" alt=""><figcaption></figcaption></figure>

4. 선택한 `NEW앱`에 `테스트1` 프롬프트가 복사되어 있는 것을 확인할 수 있습니다

<figure><img src="/files/eMIMF9xzblDihbTciRDG" alt=""><figcaption></figcaption></figure>

* 이때, 선택한 앱에 편집 권한이 있어야만 복사가 가능하며, 편집 권한이 없는 경우에는 불가능하다는 안내 메시지가 표시됩니다.
