# 런타임 AI

## Content

### 개요

Forguncy의 런타임 AI 기능은 개발자가 지능형 인터랙션 기능을 포함한 업무 애플리케이션을 빠르게 구축할 수 있도록 지원하며, 다음 설계 원칙을 따릅니다.

* **빠르고 효율적:** 프롬프트 편집기, 이벤트 메커니즘, 함수 호출을 통해 기존 시스템의 업무 로직과 빠르고 매끄럽게 연결됩니다.
* **개인화 커스터마이징:** 범용 AI 기능을 제공하는 동시에 다양한 업무 시나리오에 맞는 깊이 있는 커스터마이징도 지원합니다.

***

### AI 설정

#### 설정 관리

**1\. 설정 파라미터:**

* 설정 이름(커스텀 식별자)
* API Host(LLM 서비스 주소)
* API Key(인증 키)
* API Model Name(사용할 모델 지정)
* 고급 파라미터(선택 사항, 예: 최대 출력 토큰 수 Max\_Tokens, 샘플링 온도 Temperature, 핵 샘플링 Top\_P)

**2\. 설정 작업:**

* 설정은 프로젝트 파일과 함께 저장됩니다.
* 기본 모델을 지원하며, 다른 설정으로 언제든지 전환할 수 있습니다.
* JSON 가져오기/내보내기를 지원하여 설정 마이그레이션이 편리합니다.
* 애플리케이션 배포 후에는 관리 콘솔에서 설정 파라미터를 변경할 수 있습니다.

> **주의:** 런타임 설정과 디자인 시 설정은 서로 독립적입니다.

***

### 핵심 기능

#### AI 어시스턴트 명령

**기능 특징:**

1. **다중 위치 지원:** 페이지 측과 서버 측 모두에서 사용 가능합니다.
2. **파라미터 설정:**
    * 모델 선택
    * 시스템/사용자 프롬프트 편집
    * 함수 정의 목록(Function Calling)
    * 입출력 설정

**특화 기능: 구조화된 데이터 출력**
기본적으로 대규모 모델은 순수 텍스트 형태로 결과를 반환합니다. 개발 요구를 충족시키기 위해 다음 두 가지 결과 유형 옵션을 제공합니다.

1. **텍스트** — 원본 텍스트 출력(기본 모드)
2. **JSON 자동 추출** — 응답 내 JSON 구조 조각을 식별하고 추출하여 JSON 텍스트를 직접 반환

이 기능은 JSON 데이터 처리 과정을 간소화하여, 개발자가 별도의 파싱 로직을 작성하지 않고도 구조화된 데이터를 얻을 수 있도록 합니다.
**대표적인 활용 예시:**
반환 결과 유형: 텍스트

```auto
사용자 프롬프트: "[%AiUserInput%]을 영어로 번역해줘"
입력: "안녕하세요" → LLM 출력: "Hello"
실제 출력: "Hello"
```

반환 결과 유형: JSON 문자열 추출 시도

```auto
사용자 프롬프트: "[%AiUserInput%]을 몇 가지 나열하고 JSON 목록으로 출력해줘"
입력: "과일" → LLM 출력: "네, 과일 몇 가지를 나열했습니다. ```json["사과","바나나","배"]```"
실제 출력: ["사과","바나나","배"]
```

***

#### AI 대화 셀

**설정 흐름:**

1. 런타임 AI 모델을 설정합니다.
2. 셀 유형을 **"AI 대화 셀"** 로 설정합니다.
3. 페이지를 실행하여 인터랙션을 진행합니다.

**핵심 설정 항목:**

| 설정 항목 | 설명 |
| ----- | --- |
| AI 모델 선택 | 설정된 모델 간 전환 |
| 데이터 소스 바인딩 | 업무 데이터 테이블과 연결 |
| 시스템 프롬프트 | AI의 역할과 작업을 정의 |
| 사용자 프롬프트 | 입력 템플릿 설정 |
| 함수 정의(Function Calling) | AI가 실행 가능한 명령 확장 |

**고급 기능:**

* **이벤트 응답:** 새 대화 생성, 메시지 추가 시 명령을 트리거
* **화면 커스터마이징:** 타이틀바, 타임스탬프 등 표시 제어
* **인터랙션 작업:** 메시지 관리, 대화 초기화 등

**특화 기능: 카드 메시지**
AI 대화 셀은 **"컴포넌트 메시지 추가"** 작업을 통해 Forguncy 컴포넌트(예: 컴포넌트 페이지에 배치된 데이터 테이블, 차트, 폼 등)를 구조화된 카드 형태로 대화 흐름에 삽입할 수 있어 다음을 구현합니다.

* **시각적 데이터 표현:** 동적 업무 데이터를 직접 표시
* **인터랙티브 응답:** 컴포넌트 이벤트와 결합하여 유연한 인터랙션을 구현

**대표적인 활용 시나리오:**

1. 오프닝: 커스텀 오프닝 이미지-텍스트 카드
2. 주문 조회: AI 텍스트 답변 + 주문 상세 카드
3. 보고서 분석: 분석 결론 + 동적 차트 카드

***

### 주의사항

1. **데이터 보안:** AI 인터랙션은 데이터 전송을 포함할 수 있으므로 민감한 정보 전송을 피해야 합니다.
2. **성능 최적화:** 복잡한 함수는 응답 속도에 영향을 줄 수 있습니다.
3. **결과 검증:** 핵심 업무 결정에는 사람의 확인 단계를 추가하는 것을 권장합니다.
4. **모델 한계:** 출력 품질과 Function Calling은 선택한 모델의 능력에 따라 제한됩니다.