> 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.2/basic-tutorials/guides/data/ai-drive.md).

# AI 드라이브

## 개요

AI 드라이브는 GenOS 관리자 콘솔에서 **문서함**을 다루는 기능입니다. 드라이브·폴더·파일을 폴더 구조로 관리하고, 업로드한 문서를 자동으로 RAG(검색 증강 생성)용으로 적재해 채팅에서 검색·참조할 수 있게 합니다. 여기에 더해 다른 사용자·그룹과 공유하거나, 여러 항목을 zip으로 묶어 내려받고, 삭제한 항목을 휴지통에서 복원하는 기능을 하나의 화면에서 제공합니다.

v1.9.x에서는 개인 전용 공간인 **내 드라이브**, 파일 콘텐츠 스냅샷을 관리하는 **버전 관리**, 리소스별 변경 이력을 시간순으로 보여주는 **활동 내역**이 새로 추가되었습니다.

v1.9.2에서는 **공유받은 문서함의 '제거' 동작이 공유 관계 해제로 변경**되고, 다른 화면에서 AI 드라이브를 데이터 소스·첨부 대상으로 고르는 **선택 피커가 3탭 구조로 통일**되었습니다. 젠포탈 채팅 첨부에는 **폴더 단위 첨부**와 **페이지 단위 전체 선택**이 추가되고 선택 개수 제한이 없어졌습니다([채팅에서 파일·폴더 첨부하기](#채팅에서-파일폴더-첨부하기)). 자세한 변경 내역은 문서 끝의 [Changelog](#changelog)를 참고하세요.

`데이터 > AI 드라이브` 메뉴에서 진입하며, 화면은 **그룹 드라이브 · 내 드라이브 · 공유받은 문서함 · 휴지통** 네 개의 탭으로 구성됩니다.

<figure><img src="/files/1JJHRM43NnpukcR8VMvA" alt="AI 드라이브 목록 — 그룹 드라이브 탭"><figcaption><p>AI 드라이브 목록 — 그룹 드라이브 탭</p></figcaption></figure>

## 주요 개념

| 개념                | 설명                                                                                                    |
| ----------------- | ----------------------------------------------------------------------------------------------------- |
| 그룹 드라이브           | 소속 관리 그룹이 소유한 문서함. 관리 그룹 IAM 정책과 공유로 접근을 통제합니다.                                                       |
| 내 드라이브            | 본인이 단독 소유하는 개인 문서함. 관리 그룹 개념이 적용되지 않으며, 용량도 개인 단위로 관리됩니다.                                             |
| 폴더                | 드라이브 내부에서 파일을 계층으로 정리하는 단위. 최대 10단계까지 만들 수 있습니다.                                                      |
| 파일                | 드라이브·폴더 안에 업로드한 문서. 업로드 후 자동으로 적재(임베딩·인덱싱)됩니다.                                                        |
| 버전                | 파일 콘텐츠의 특정 시점 스냅샷. 최초 업로드 시 v1이 생성되고, 동일 이름 덮어쓰기 시 메이저가 +1됩니다. 파일에만 제공되며 드라이브·폴더에는 없습니다.              |
| 영구 보관(핀)          | 자동 제거 대상에서 제외하는 버전 지정. 드라이브별 최대 200개까지 지정할 수 있습니다.                                                    |
| 활동                | 리소스(드라이브·폴더·파일)에 발생한 변경을 시간순으로 누적 기록한 이력. 감사 로그와 달리 사람·시스템이 한 비즈니스 액션만 추립니다. 사후 수정·삭제가 불가능한 영구 기록입니다. |
| 보안등급              | 파일 단위로 지정하는 열람 등급(공개·대외비·기밀 등). 등급이 높을수록 열람 범위가 제한되며, 파일 목록에 등급 배지로 표시됩니다. 폴더·드라이브에는 지정하지 않습니다.       |
| 적재(RAG ingestion) | 업로드한 문서를 임베딩·인덱싱해 검색·AI 답변 참조 대상으로 만드는 과정입니다.                                                         |
| 재적재               | 드라이브 설정(임베딩 모델·전처리기·파라미터)을 바꾼 뒤 기존 문서를 최신 설정으로 다시 적재하는 작업입니다.                                         |
| 공유받은 문서함          | 다른 사용자·그룹으로부터 공유받은 드라이브·폴더·파일을 모아 보는 공간입니다.                                                           |
| 휴지통               | 삭제한 항목이 30일간 보관되는 공간. 복원하거나 영구 삭제할 수 있습니다.                                                            |
| 관리 그룹             | 그룹 드라이브를 소유하고 권한을 부여받는 단위. 권한은 그룹 단위로 부여됩니다. 내 드라이브에는 적용되지 않습니다.                                      |
| 채팅 첨부             | 젠포탈 채팅에서 적재된 파일·폴더를 골라 그 대화의 참고 자료로 붙이는 것. 관리자가 워크플로우 플러그인 토글로 켭니다.                                   |
| 폴더 칩              | 폴더를 첨부했을 때 입력창·메시지에 남는 칩 1개. 폴더명과 하위 파일 수(`파일 N개`)를 함께 보여줍니다.                                         |
| 매 턴 재인가           | 채팅의 매 사용자 턴마다 붙은 문서의 권한·보안등급·적재 상태를 다시 검증하는 것. 첨부 시점 권한만 신뢰하지 않습니다.                                   |

## 권한 안내

AI 드라이브의 기능은 관리 그룹 단위로 부여되는 권한(AI Drive)에 따라 노출·실행됩니다. 권한이 없는 기능의 버튼은 화면에 표시되지 않습니다.

| 권한      | 가능한 작업                                                                        |
| ------- | ----------------------------------------------------------------------------- |
| 읽기      | 메뉴 진입, 목록·상세 정보 조회, 활동 내역 조회, 버전 파일 열기, 다운로드                                  |
| 읽기 및 쓰기 | 위 기능에 더해 드라이브·폴더 생성, 파일 업로드, 삭제, 공유 설정, 재적재 실행, 드라이브 설정 수정, 버전 복원·영구 보관·버전 삭제 |

* 폴더와 파일의 권한은 **상위 드라이브의 권한을 상속**받습니다.
* 메뉴 진입은 `nav / ai_drive` 접근 제어로 통제되며, 권한이 없으면 라우트 진입이 차단됩니다.
* 드라이브 단건에 대한 읽기 권한이 없으면 상세 진입 시 "권한 없음" 안내 화면으로 분기됩니다(서버 오류 코드 `00040002`).
* **내 드라이브**는 본인 단독 소유 리소스로 IAM 정책 노출 대상이 아닙니다. 본인이 항상 소유자이며, 타인 접근은 공유를 통해서만 부여됩니다.
* **공유가 회수되면 URL 직접 접근도 차단**됩니다. 관리 그룹·역할 공유에서 특정 사용자가 제외되거나 공유 자체가 해제되면, 이전에 열어 둔 상세 URL로 재진입해도 접근할 수 없습니다(권한 없음 화면으로 분기).

> 예외) **공유받은 파일의 재적재**는 AI 드라이브에 쓰기 권한이 없어도 가능합니다. 읽기 권한으로 공유받은 경우에도 재적재할 수 있습니다.

## 드라이브 생성

**그룹 드라이브** 또는 **내 드라이브** 탭에서 \[드라이브 생성] 버튼을 눌러 새 문서함을 만듭니다. 생성은 두 단계의 마법사로 진행됩니다.

<figure><img src="/files/g814tPfKhh6Zb5MBdS3g" alt="드라이브 생성 진입 — 드라이브 생성 버튼"><figcaption><p>드라이브 생성 진입 — 드라이브 생성 버튼</p></figcaption></figure>

### 1단계 — 기본 정보

* **이름**: 드라이브 이름 (4\~30자).
* **상세 설명**: 드라이브의 목적이나 용도.
* **관리 그룹**: 드라이브를 소유할 관리 그룹 선택. **내 드라이브에서는 이 단계가 제공되지 않으며**, 생성과 동시에 본인이 자동으로 소유자가 됩니다.

<figure><img src="/files/zA5Orf3YFdWbPdO3ZpQc" alt="드라이브 생성 1단계 — 기본 정보 입력"><figcaption><p>드라이브 생성 1단계 — 기본 정보 입력</p></figcaption></figure>

### 2단계 — 임베딩 및 전처리기

* **임베딩**
  * 임베딩 서빙: Direct Serving 또는 Service Router를 선택하고 사용할 서빙을 지정.
  * 배치 크기: 한 번에 처리할 데이터의 배치 크기 (기본값 64).
* **전처리기**
  * 전처리기: 적재 시 사용할 전처리 방식 선택. 전처리기에 따라 지원하는 문서 확장자가 다릅니다.
  * 파라미터: 문서 분할 기준인 Chunk Size(기본값 1000)와 Chunk Overlap(기본값 100).
* **수동 스키마(선택)**: 데이터 스키마를 직접 정의할 때 사용. 기본값은 사용 안 함이며, 활성화하면 벡터 인덱스 등 스키마 설정값을 직접 지정할 수 있습니다.

마지막으로 \[생성] 버튼을 눌러 완료합니다.

<figure><img src="/files/Fhe5qsB9cDDmREFWkBai" alt="드라이브 생성 2단계 — 임베딩 및 전처리기 설정"><figcaption><p>드라이브 생성 2단계 — 임베딩 및 전처리기 설정</p></figcaption></figure>

> 그룹 드라이브는 같은 관리 그룹 내에 동일한 이름의 드라이브를 만들 수 없습니다. \[다음]을 누르는 시점에 서버가 제목 중복을 선검증합니다(중복 시 "관리그룹내에 동일한 이름의 리소스가 이미 존재합니다.").

## 내 드라이브

**내 드라이브**는 본인이 단독으로 소유하는 개인 문서함입니다. 그룹 드라이브와 화면·동작이 거의 동일하지만, **관리 그룹 개념이 적용되지 않는 것**이 핵심 차이입니다.

<figure><img src="/files/Rkly4vdgMe6uRckeUOmk" alt="내 드라이브 — 탭 목록"><figcaption><p>내 드라이브 — 탭 목록</p></figcaption></figure>

**그룹 드라이브와의 차이.**

| 항목            | 그룹 드라이브           | 내 드라이브                     |
| ------------- | ----------------- | -------------------------- |
| 소유 단위         | 관리 그룹(그룹 멤버 전체)   | 개인(본인 단독)                  |
| 생성 시 관리 그룹 지정 | 필요                | 불필요(본인 자동 소유)              |
| 권한 모델         | 관리 그룹 IAM 정책 + 공유 | 본인 단독 권한 + 공유              |
| 기본 접근자        | 관리 그룹 모든 멤버       | 본인 1명                      |
| 관리 그룹 컬럼      | 노출                | 미노출                        |
| 용량 한도         | 그룹 단위             | 개인 단위                      |
| 외부 공유         | 가능                | 가능(관리 그룹 / 역할 / 사용자 단위 모두) |

* **관리 그룹 미제공**: 생성 단계, 목록 컬럼, 검색·필터 드롭다운, 기본 정보 필드 어디에도 관리 그룹 항목이 나타나지 않습니다.
* **제작자·수정자 컬럼**: 하위 목록(폴더·파일)에서 제작자·수정자 컬럼을 노출하지 않습니다(본인 소유이므로 불필요). 단, 공유를 고려해 **기본 정보**에는 제작자 정보를 표시합니다.
* **용량**: 내 드라이브 용량은 개인 단위로 집계됩니다(용량 표시 라벨: "내 드라이브 용량").
* **공유받은 문서함 연계**: 내 드라이브의 파일을 타인에게 공유하면 상대의 공유받은 문서함에 노출되며, 개인 드라이브 출처이므로 관리 그룹은 `-`로 표시됩니다.
* 표시 차이 외의 모든 동작(폴더·파일 관리, 업로드, 적재, 재적재, 버전, 활동 등)은 그룹 드라이브와 동일합니다.

## 폴더 및 파일 관리

**드라이브 진입.** 목록에서 드라이브 항목을 더블 클릭하면 내부로 진입합니다. 드라이브 내부에서는 폴더와 파일을 폴더 구조로 관리하며, 폴더는 최대 10단계까지 만들 수 있습니다.

<figure><img src="/files/KbiNgTl3S8Hf28pf2p5q" alt="드라이브 진입 — 폴더·파일 목록과 새 폴더 버튼"><figcaption><p>드라이브 진입 — 폴더·파일 목록과 새 폴더 버튼</p></figcaption></figure>

### 폴더 생성

1. 드라이브 내부에서 \[+ 새 폴더] 버튼을 클릭합니다.
2. 폴더 이름을 입력합니다 (4\~30자).
3. \[생성] 버튼을 눌러 완료합니다.

<figure><img src="/files/EzXJDlfBR5KUAfdtkvRv" alt="새 폴더 — 폴더 이름 입력 모달"><figcaption><p>새 폴더 — 폴더 이름 입력 모달</p></figcaption></figure>

### 파일 업로드

1. 드라이브 또는 폴더 내부에서 \[업로드] 버튼을 클릭하고 \[파일 업로드]를 선택합니다.
2. 업로드 영역에 파일을 끌어다 놓거나 클릭하여 파일을 선택합니다.
3. **보안등급**을 선택합니다. 이 등급은 이번 업로드로 확정되는 모든 파일에 일괄 적용됩니다. 기본값은 가장 낮은 등급(공개·전체 열람, 레벨 0)이며, 선택 목록에는 본인의 유효 등급 이하만 노출됩니다.
4. \[생성]을 클릭하면 확인 모달이 표시되며, \[예]를 선택하면 업로드가 시작됩니다.

여러 파일을 한 번에 업로드할 수 있고, 화면 하단 진행률 표시줄에서 전체 진행 상태를 확인할 수 있습니다. 업로드 시 지정한 보안등급은 개별 파일의 기본 정보에서 다시 변경할 수 있습니다.

<figure><img src="/files/76EBdjdLV2PTJVo1JIUe" alt="파일 업로드 — 업로드 모달"><figcaption><p>파일 업로드 — 업로드 모달</p></figcaption></figure>

<figure><img src="/files/vwEKAhhmD1epFKuDO93r" alt="파일 업로드 — 진행률 표시"><figcaption><p>파일 업로드 — 진행률 표시</p></figcaption></figure>

> **폴더 업로드.** 파일뿐 아니라 **폴더를 통째로 끌어다 놓으면** 폴더 안의 하위 파일이 자동으로 펼쳐져 함께 업로드됩니다. 이때 OS가 폴더에 남기는 숨김·시스템 파일(macOS `.DS_Store`, Windows `Thumbs.db`·`desktop.ini` 등)은 자동으로 제외되어, 그로 인한 "지원하지 않는 확장자" 안내도 뜨지 않습니다.

### 동일 이름 업로드 옵션

동일한 파일명이 이미 있는 경우 **\[업로드 옵션] 모달**이 표시됩니다. 두 가지 처리 방식 중 하나를 선택할 수 있습니다.

* **덮어쓰기**: 기존 파일에 새 콘텐츠를 덮어씁니다. 기존 콘텐츠는 버전 기록으로 보관되고 새 파일은 "재적재 대상" 상태가 됩니다(안내 문구: 덮어쓰면 기존 파일은 버전 기록으로 보관되며 새 파일은 "재적재 대상" 상태가 됩니다).
* **두 파일 모두 유지(사본 생성)**: 기존 파일을 그대로 두고 새 파일을 별개의 사본으로 저장합니다. 사본 이름은 원본 이름 뒤에 `(1)`, `(2)` … 형식으로 번호가 붙으며, 신규 리소스(별개 ID)로 생성됩니다.

> 주의
>
> * 파일명 비교는 **대소문자를 구분하지 않으며** 유니코드 정규화(NFC) 기준으로 이뤄집니다. 예를 들어 `Work_test`와 `work_test`처럼 대소문자만 다른 이름도 같은 이름으로 보아 \[업로드 옵션] 모달을 띄웁니다. macOS 등에서 겉보기에 같은 이름이 우회로 중복되는 것도 함께 막습니다.
> * 사본 이름이 저장 한도(확장자 포함 255자, stem 250자)를 넘으면 업로드가 차단되고 안내가 표시됩니다.
> * 그룹 용량(또는 내 드라이브 용량)이 가득 찬 경우 업로드 시점에 차단되고 안내 메시지가 표시됩니다.

### 이름 입력 규칙

이름은 앞뒤 공백을 제거(trim)한 뒤 길이를 검증하며, `\ / : * ? " < > |` 문자는 사용할 수 없습니다.

| 대상                       | 길이      |
| ------------------------ | ------- |
| 드라이브 이름                  | 4\~30자  |
| 폴더 이름                    | 4\~30자  |
| 파일 이름(확장자 포함, 저장 기준)     | 4\~255자 |
| 파일 이름(확장자 제외, 편집 입력란 노출) | 최대 250자 |

파일 이름 편집 시 입력란에는 확장자를 제외한 부분(stem)만 노출되고, 확장자는 별도로 표시된 뒤 저장할 때 다시 합쳐집니다. `.sqlite3`처럼 긴 확장자가 붙으면 `stem + 확장자`가 저장 한도(255자)를 넘지 않도록 stem 허용 길이가 자동으로 줄어듭니다.

## 문서 적재 및 상태 확인

업로드한 파일은 별도의 버튼 조작 없이 자동으로 적재(임베딩·인덱싱)됩니다. 적재 진행 상태는 목록의 **상태 컬럼**에서 확인합니다.

<figure><img src="/files/4UgwpZCapSddrDQRV1sT" alt="적재 상태 — 목록 상태 컬럼"><figcaption><p>적재 상태 — 목록 상태 컬럼</p></figcaption></figure>

| 상태     | 의미                         |
| ------ | -------------------------- |
| 대기중    | 적재 대기                      |
| 실행 중   | 적재 진행 중                    |
| 완료     | 적재 완료 — 검색·AI 참조 가능        |
| 오류발생   | 적재 실패 — 상태 버튼 클릭으로 재시작 가능  |
| 재적재 대상 | 설정 변경·덮어쓰기 등으로 재적재가 필요한 상태 |

* **오류발생** · **재적재 대상** 상태의 항목은 상태 버튼을 클릭해 재시작할 수 있습니다. 오류 상태는 상태 라벨의 툴팁으로 실패 사유가 노출됩니다.
* 목록은 대기중·실행 중 항목이 있으면 약 5초 간격으로 자동 갱신되어 상태 전이(대기중 → 실행 중 → 완료/오류발생)를 반영합니다.
* 진행 중인 문서는 상태 라벨을 눌러 적재를 **중지**할 수 있습니다.
* 파일을 더블 클릭하면 상세 화면으로 이동합니다. PDF 파일은 좌측 뷰어와 함께 상세 정보, 문서 공통 정보, 청크(chunk) 데이터 정보를 확인할 수 있습니다.

> **재적재 대상 문서의 상세 진입.** 덮어쓰기 직후처럼 "재적재 대상" 상태의 파일도 오류(오류발생) 상태와 동일하게 **상세 뷰어 진입이 가능**합니다. 원본 콘텐츠는 미리보기로 볼 수 있으며, 청크(벡터) 데이터는 재적재가 완료돼야 채워집니다(그 전까지 청크 탭은 빈 상태).

## 파일 보안등급

파일 단위로 열람 등급을 지정해 접근 범위를 제한할 수 있습니다. 폴더·드라이브에는 보안등급이 적용되지 않습니다.

### 지정 방법

* **업로드 시 일괄 지정**: 업로드 모달에서 선택한 보안등급이 이번 업로드로 확정되는 모든 파일에 적용됩니다(기본값 공개·레벨 0).
* **개별 파일 수정**: 파일을 선택해 **기본 정보**를 열고 보안등급을 다시 선택해 저장합니다. 선택 목록에는 **본인의 유효 등급 이하**만 노출되어, 자신보다 높은 등급으로는 올릴 수 없습니다.

### 목록 표시

* 파일 목록에는 **보안등급 컬럼**이 있으며, 지정된 파일은 등급명 배지(색상 구분)로 표시됩니다. 폴더 및 등급 미지정(null) 파일은 `-`로 표시됩니다.
* 등급명이 길면 배지에서 말줄임(…) 처리되고, 마우스를 올리면 전체 등급명이 툴팁으로 표시됩니다.
* 보안등급 컬럼은 서버 정렬을 지원합니다.

### 동기화 상태

* 보안등급을 지정·변경하면 벡터DB(Weaviate)에 반영되며, 반영이 끝나기 전까지 배지에 `(동기화 대기 중)` 또는 `(동기화 중)` 표시가 함께 붙습니다.
* 동기화 대기·진행 중인 파일이 있으면 목록이 약 5초 간격으로 자동 조회되어, 동기화가 완료되면 안내 표기가 사라집니다.

### RAG 검색 시 등급 통제

문서 보안등급은 파일 목록 노출뿐 아니라 **채팅·워크플로우의 RAG 검색 단계에서도 적용**됩니다. 사용자의 유효 보안등급을 초과하는 문서는 검색(retrieval) 단계에서 제외되어 컨텍스트로 주입되지 않으며, 결과적으로 답변 내용·출처 어디에도 노출되지 않습니다.

* 등급 필터는 출처 표시 단계가 아니라 **검색·컨텍스트 주입 단계**에 적용됩니다. 등급 초과 문서의 청크는 애초에 검색 대상에서 빠지므로, 내용이 답변에 반영되는 일이 없습니다.
* 워크플로우를 **AgentFlow**로 구성한 경우에도 검색 도구(RetrieverTool)가 요청 사용자의 보안등급을 전달받아 retrieval 쿼리에 반영합니다(v1.9.1에서 AgentFlow 경로의 등급 필터 누락을 수정).
* 사용자의 최종 유효 등급은 관리 그룹·역할·사용자 지정 중 **가장 높은 등급**으로 적용됩니다.

## 문서 재적재

드라이브 설정(임베딩 모델·전처리기·파라미터 등)을 바꾸면 기존 문서를 최신 설정으로 다시 적재해야 합니다.

1. 드라이브 기본 정보 패널에서 설정을 수정하고 저장합니다.
2. 드라이브 내부 목록에서 **재적재 대상** 상태로 표시된 항목을 확인합니다.
3. 항목을 선택하고 \[재적재] 버튼을 클릭합니다.
4. 확인 모달("선택한 파일을 재적재하시겠습니까?")에서 \[예]를 선택하면 최신 설정이 적용되어 다시 적재됩니다.

<figure><img src="/files/oAyrrhT8SzSBHGEJj5qm" alt="재적재 — 공유받은 문서함 상태(재적재 대상) 및 다운로드"><figcaption><p>재적재 — 공유받은 문서함 상태(재적재 대상) 및 다운로드</p></figcaption></figure>

> * **적재된 문서가 없는 드라이브는 재적재를 실행할 수 없습니다.** 대상 문서가 하나도 없으면 재적재 버튼이 동작하지 않으므로, 먼저 파일을 업로드해 적재를 완료한 뒤 사용하세요.
> * 재적재 진행 중인 문서는 완료 전까지 검색 및 AI 답변 참조에서 자동으로 제외됩니다.
> * **그룹 드라이브**의 \[재적재] 버튼은 AI 드라이브에 쓰기 권한이 있는 경우에만 사용할 수 있습니다.
> * **공유받은 문서함** 파일은 쓰기 권한이 없어도 재적재할 수 있습니다(읽기로 공유받은 경우 포함).
> * **휴지통 복원 시 자동 재적재.** 휴지통에서 파일을 복원하면 별도 조작 없이 자동으로 재적재됩니다. 삭제 시 검색 인덱스에서 해당 문서 데이터가 제거되므로, 복원 시 자동 재적재로 검색·AI 참조 대상으로 원상 복구합니다. 재적재가 진행되는 동안에는 완료 전까지 검색·AI 답변 참조에서 제외됩니다.

## 파일 버전 관리

파일의 콘텐츠 스냅샷을 버전으로 보관해 이전 시점으로 되돌릴 수 있습니다. **버전 관리는 파일에만 제공되며, 드라이브·폴더에는 없습니다.** 활동 내역이 "누가 무엇을 했는지의 행위 로그"라면, 버전은 "콘텐츠 상태 보관소"입니다.

<figure><img src="/files/lxLRoGfxzkqWEb6V54oX" alt="버전 관리 모달 — 버전 목록"><figcaption><p>버전 관리 모달 — 버전 목록</p></figcaption></figure>

<figure><img src="/files/uBnrMWrY09hsUWnOYrYM" alt="버전 관리 모달 — 버전 상세·복원"><figcaption><p>버전 관리 모달 — 버전 상세·복원</p></figcaption></figure>

### 버전이 생기는 규칙

* 신규 업로드 시 **v1**이 자동 생성됩니다.
* 동일 이름으로 **덮어쓰기**하면 메이저가 +1됩니다(v2, v3 …). 버전 번호는 시스템이 자동 부여하며 사용자가 직접 입력할 수 없습니다.
* **복원**하면 최상위 버전 +1로 신규 버전이 생성됩니다(덮어쓰기가 아니라 새 버전 추가이며 기존 버전은 모두 유지).
* 시스템 자동 재적재, 스키마·임베딩 변경, 사용자 수동 재적재는 콘텐츠가 동일하므로 **버전을 생성하지 않습니다**(활동 내역만 기록).

### 버전 기록 모달

파일 상세 또는 기본 정보에서 버전 항목을 통해 **버전 관리** 모달로 진입합니다. 모달은 표 형식이며 컬럼은 다음과 같습니다.

| 컬럼     | 내용                                                 |
| ------ | -------------------------------------------------- |
| 버전     | v{N}. 현재(헤드) 버전과 이전 버전을 구분 표시                      |
| 변경 사항  | 업로드(최초 업로드) / 덮어쓰기(동일 파일명으로 덮어쓰기) / 복원(이전 버전으로 복원) |
| 수정자    | 해당 버전을 만든 사용자(이름)                                  |
| 수정한 날짜 | 버전 생성 일시                                           |
| 크기     | 해당 버전 파일 크기(KB·MB·GB 자동)                           |
| 보관     | 영구 보관(핀) 여부                                        |

**버전 액션(행별 ⋮ 더보기 메뉴).**

| 메뉴       | 동작                         | 권한 |
| -------- | -------------------------- | -- |
| 파일 열기    | 해당 버전 콘텐츠를 좌측 미리보기에 표시     | 읽기 |
| 복원       | 해당 버전을 새 버전으로 복원(기존 버전 유지) | 쓰기 |
| 영구 보관    | 자동 제거 대상에서 제외(핀 지정)        | 쓰기 |
| 영구 보관 해제 | 핀 해제                       | 쓰기 |
| 버전 삭제    | 해당 버전을 즉시 영구 제거            | 쓰기 |

* **복원**: 확인 다이얼로그("v{N}으로 복원하시겠습니까? 복원하면 새 버전이 생성되며 기존 버전들은 유지됩니다.")에서 확정하면 새 버전이 만들어지고 "v{N}으로 복원했습니다." 토스트가 표시됩니다.
* **영구 보관**: 지정 시 "v{N} 버전을 영구 보관으로 지정했습니다.", 해제 시 "v{N} 버전의 영구 보관을 해제했습니다." 토스트가 표시됩니다. 드라이브별 최대 200개까지 지정할 수 있고, 초과 시도 시 "영구 보관은 최대 200개까지 가능합니다." 토스트가 노출됩니다.
* **버전 삭제**: 휴지통을 거치지 않고 즉시 영구 제거되므로, 되돌릴 수 없습니다. 확인 다이얼로그("이 작업은 되돌릴 수 없습니다. 그래도 진행하시려면 아래 문자를 입력하세요.")에 지정 문자를 입력해야 \[예]가 활성화됩니다. 삭제 후 "버전을 삭제했습니다." 토스트가 표시됩니다.

### 보관 정책(자동 제거)

영구 보관으로 지정하지 않은 버전은 다음 정책에 따라 시스템이 자동 제거합니다.

* **30일 경과**: 생성 후 30일이 지난 일반 버전은 자동 제거됩니다.
* **100개 한도**: 버전이 100개에 도달한 뒤 신규 업로드가 생기면 가장 오래된 버전부터 제거됩니다.
* **헤드(현재) 버전은 항상 보존**됩니다. 영구 보관 버전은 자동 제거 대상에서 제외됩니다.
* 모든 버전 콘텐츠는 드라이브 용량에 합산됩니다.

### 버전 뷰어

버전 기록에서 \[파일 열기]를 실행하면 해당 버전의 콘텐츠를 좌측 미리보기 영역에 표시합니다. 과거 버전을 조회하는 상태에서는 다음과 같이 동작합니다.

* **뷰어 제공 파일(PDF·TXT 등)**: 해당 버전 콘텐츠를 미리보기로 렌더합니다.
* **뷰어 미제공 파일**: 미리보기 대신 대체 안내를 표시합니다.
* 과거 버전 조회 상태에서는 상세 정보의 버전 텍스트를 클릭할 수 없고(조회만), 청크 데이터는 수정할 수 없습니다(\[청크 편집] 버튼 미노출).
* 과거 버전을 볼 때 \[수정] 버튼은 \[복원] 버튼으로 대체됩니다.
* 버전에 물리적으로 남아 있는 청크·벡터가 없으면(미적재였던 버전) 청크 데이터는 빈 상태로 안내됩니다.

> 버전 행 ⋮ > \[파일 열기]는 해당 버전의 **원본 콘텐츠 + 속성(문서 메타) + 청크 데이터**를 뷰어로 함께 불러옵니다. 여는 동안에는 스피너로 진행을 표시하며, 중복 클릭은 자동으로 차단됩니다.

## 활동 내역

드라이브·폴더·파일 각 리소스에 발생한 변경을 시간순으로 누적 기록해 **활동** 탭에서 확인합니다. 협업 시 누가·언제 무엇을 바꿨는지 추적하는 용도이며, 한 번 기록된 활동은 수정·삭제할 수 없는 영구 기록입니다.

<figure><img src="/files/PitmVS3PUCkQoiyuSi2y" alt="활동 내역 — 활동 탭"><figcaption><p>활동 내역 — 활동 탭</p></figcaption></figure>

### 공통 규칙

* **정렬**: 활동 일시 역순(최신이 위).
* **추적 단위**: 트랜잭션 1건 = 활동 항목 1건. 여러 파일을 동시에 업로드하면 1건으로 묶입니다.
* **노출 범위**: 해당 리소스에서 직접 발생한 활동만 표시됩니다(자식 리소스 활동은 그 리소스의 활동 탭에서 별도로 확인).
* **행 구성**: `{행위자}님이 {활동}` 형태로 표시하고, 변경 전/후가 있는 활동은 우측 아코디언 토글로 펼쳐 상세 변경 내역을 봅니다. 변경 전은 취소선(빨강 톤), 변경 후는 굵게(초록 톤)로 구분합니다.
* **빈 상태**: 필터 결과가 0건이면 "활동 내역이 없습니다."를 표시합니다. 모든 리소스는 생성 시 생성 활동이 최소 1건 기록됩니다.
* **필터**: 상단 "활동 종류 필터"로 활동 종류를 좁힐 수 있습니다(기본값 "전체").
* 조회 실패 시 "활동 내역을 불러오지 못했습니다." 안내가 표시됩니다.

### 활동 종류 필터

상단 "활동 종류 필터"의 옵션은 리소스 종류에 따라 **버킷(묶음)** 으로 제공됩니다(현행 `activityFormat.ts` 정본). 여러 세부 활동을 사용자가 이해하기 쉬운 묶음으로 합쳐 노출하며, 기본값은 "전체"입니다.

| 리소스  | 필터 옵션 (전체 + 아래 버킷)                                       |
| ---- | -------------------------------------------------------- |
| 드라이브 | 생성 · 기본 정보 · 공유 여부 · 속성 · 업로드 · 삭제(휴지통) · 복원             |
| 폴더   | 생성 · 기본 정보 · 공유 여부 · 업로드 · 삭제(휴지통) · 복원                  |
| 파일   | 생성 · 기본 정보 · 공유 여부 · 버전 · 보안등급 · 적재 · 업로드 · 삭제(휴지통) · 복원 |

각 버킷이 묶는 세부 활동(행 라벨)은 다음과 같습니다.

| 버킷                | 묶이는 세부 활동                             |
| ----------------- | ------------------------------------- |
| 기본 정보             | 기본 정보 수정 · 이름 변경 · 상세 설명 수정           |
| 공유 여부             | 공유 · 공유 해제 · 재공유 · 공유 권한 변경           |
| 속성 (드라이브 전용)      | 속성 수정(드라이브 적용 속성) · 속성 추가(VDB 스키마 속성) |
| 버전 (파일 전용)        | 버전 복원 · 버전 삭제 · 시스템 자동 버전 제거          |
| 보안등급 (파일 전용)      | 보안등급 수정                               |
| 적재 (파일 전용)        | 재적재 · 적재 상태 전이(대기중/실행 중/완료/재적재 대상/오류) |
| 업로드               | 드라이브·폴더 = 하위 업로드 배치 집계 / 파일 = 덮어쓰기    |
| 생성 · 삭제(휴지통) · 복원 | 각각 단일 활동                              |

* 활동 행은 `{행위자}님이 {활동}` 형태로 표시되며, **시스템 자동 버전 제거**는 행위자가 "system"으로 표시됩니다(사유: 비고정 버전 100개 한도 초과·30일 경과).
* 변경 전/후가 있는 활동(이름·상세 설명·버전·권한·보안등급·드라이브 설정·속성 등)은 우측 아코디언 토글로 상세 변경 내역을 펼쳐 봅니다. 변경 전은 취소선(빨강 톤), 변경 후는 굵게(초록 톤)로 구분합니다.
* 영구 삭제(purge)는 활동으로 기록되지만 필터 옵션에서는 제외됩니다.
* **공유 관계 변화는 모두 '공유 여부' 버킷에 남습니다.** 공유자가 대상을 추가·회수하는 경우뿐 아니라, **수신자가 공유받은 문서함에서 \[제거]\(공유 관계 해제)한 경우와 관리 그룹·역할 공유에서 개별 사용자가 제외·재노출된 경우**도 대상 리소스의 활동 내역에 기록됩니다. 따라서 "누가 언제 공유를 끊었는지"를 원본 리소스 쪽에서 추적할 수 있습니다.

## 다운로드

다운로드는 대상 개수에 따라 두 경로로 나뉩니다(읽기 권한 이상 필요).

<figure><img src="/files/X07vGcdoaQYyWcSaQpaj" alt="다운로드 — 목록 다운로드 컬럼"><figcaption><p>다운로드 — 목록 다운로드 컬럼</p></figcaption></figure>

* **단일 항목**: 목록에서 해당 행 우측의 \*\*더보기(⋮) 메뉴 > \[다운로드]\*\*를 사용합니다. 파일은 원본 그대로, 폴더와 드라이브는 zip 파일로 내려받습니다. 이 ⋮ 메뉴에는 다운로드 외에 \*\*\[기본 정보]·\[공유]\*\*가 함께 들어 있어, 단일 행에 대한 액션은 여기서 처리합니다.
* **다중 항목**: 여러 항목의 체크박스를 선택한 뒤 **상단 툴바의 \[다운로드]** 버튼을 사용합니다. 폴더가 포함되거나 여러 항목을 함께 받는 경우 서버가 zip으로 묶어 준비하며, 준비가 완료되면 자동으로 내려받아집니다. 상단 툴바에는 선택 대상의 \[재적재]·\[삭제] 버튼도 함께 제공되며, **한 항목만 선택했을 때는 \[공유] 버튼도 표시**되어 행별 ⋮ 메뉴와 동일하게 단일 항목 공유를 실행할 수 있습니다.

zip 다운로드는 서버에서 비동기로 묶이므로, 요청 직후 백그라운드에서 준비 상태가 추적됩니다. 다운로드 준비 중에 페이지를 새로고침해도 진행 중인 다운로드 작업은 유지되어 준비가 끝나면 이어서 내려받아집니다.

## 공유하기

드라이브·폴더·파일을 다른 관리 그룹, 역할, 사용자에게 공유할 수 있습니다. **공유는 한 번에 한 항목(1건)만 지정할 수 있으며, 여러 항목을 함께 공유하는 것은 지원되지 않습니다.**

1. 공유할 항목 행 우측의 \*\*더보기(⋮) 메뉴 > \[공유]\*\*를 클릭합니다(한 항목만 선택한 경우 상단 툴바의 \[공유] 버튼으로도 동일하게 진입할 수 있습니다). 공유 메뉴는 **쓰기 권한이 있는 본인 소유 항목**에서만 노출되며, 공유받은 항목에는 표시되지 않습니다(재공유 미지원).
2. 공유 모달에서 **관리 그룹 · 역할 · 사용자** 탭 중 하나를 선택해 공유 대상을 추가합니다.
3. 대상별로 **읽기** 또는 **쓰기** 권한을 지정합니다.
4. \[저장] 버튼을 누르고 확인 모달에서 \[예]를 선택합니다.

<figure><img src="/files/Ddbl6zE8ZTYStkJbmbEm" alt="공유하기 — 항목 선택 후 공유 버튼"><figcaption><p>공유하기 — 항목 선택 후 공유 버튼</p></figcaption></figure>

<figure><img src="/files/eOIthnOFfxuWINrcv3y9" alt="공유하기 — 리소스 공유 모달(관리 그룹·역할·사용자)"><figcaption><p>공유하기 — 리소스 공유 모달(관리 그룹·역할·사용자)</p></figcaption></figure>

> * 폴더를 공유하면 하위 폴더와 파일 전체에 동일한 권한이 부여되고, 파일을 공유하면 해당 파일 한 건만 공유됩니다.
> * 공유받은 항목의 **재공유**는 지원되지 않습니다.
> * 공유, 회수, 권한 변경, 원본 삭제 시 수신자에게 알림이 발송됩니다.

### 크로스-워크스페이스 공유 리소스 열람

공유받은 리소스는 **출처 워크스페이스에서 열람**하는 것이 원칙입니다. 활성 워크스페이스가 아닌 다른 워크스페이스에서 공유 리소스의 상세 URL로 직접 접근하면, 아무 안내 없이 홈으로 튕기지 않고 **출처 워크스페이스로 전환할지 묻는 모달**이 표시됩니다.

* 전환을 확정하면 출처 워크스페이스로 전환되어 공유 리소스를 정상 열람합니다.
* 전환해도 접근할 수 없는 경우에는 이탈(홈 등)하며 "해당 리소스의 워크스페이스에 대한 권한이 없습니다" 성격의 안내가 표시됩니다.
* 사이드바 메뉴(nav)는 활성 워크스페이스 기준으로 계속 스코핑되므로, "URL로는 열리지만 메뉴에는 없음"이 의도된 동작입니다.

> 워크스페이스 스코핑·전환 모달의 전체 동작은 워크스페이스 매뉴얼(`docs/manual/v1.8.9_워크스페이스/`)의 크로스-워크스페이스 게이트(`00040013`/`00040014`) 설명을 함께 참고하세요.

## 공유받은 문서함

다른 사용자나 그룹으로부터 공유받은 항목을 확인하는 공간입니다. 드라이브·폴더·파일이 한 목록에 섞여 표시됩니다.

<figure><img src="/files/VwtRsgOpmHtDdSunNfSj" alt="공유받은 문서함 — 공유받은 항목 목록"><figcaption><p>공유받은 문서함 — 공유받은 항목 목록</p></figcaption></figure>

* 항목을 더블 클릭하면 내부로 진입해 조회하고 다운로드할 수 있습니다.
* 부여받은 권한이 **쓰기**인 경우 기본 정보 수정과 재적재를 할 수 있습니다.
* 공유받은 파일은 본인의 용량에 포함되지 않습니다.

### 제거 — 공유 관계 해제

공유받은 문서함의 \*\*\[제거]\*\*는 원본을 삭제하는 것이 아니라 **공유 관계를 해제하는 동작**입니다. 제거해도 원본 리소스와 다른 수신자에는 영향이 없습니다. **다만 제거한 항목은 목록에서 사라지며 수신자가 스스로 되돌릴 수 없습니다.**

> **v1.9.2 변경.** v1.9.1까지 제공되던 목록 하단 **'제거된 항목' 섹션과 \[복원] 기능이 폐지**되었습니다. 제거 후 다시 접근하려면 **공유자에게 재공유를 요청**해야 합니다. 필요 여부가 확실하지 않은 항목은 제거하지 말고 그대로 두는 것을 권장합니다.

* **안내 배너**: 목록 상단에 다음 안내가 표시됩니다.

  > 공유받은 문서함의 제거는 공유 관계를 해제하는 동작입니다. 원본 리소스와 다른 수신자에는 영향이 없으며, 제거한 항목은 목록에서 사라지고 복원할 수 없습니다. ※ 그룹 드라이브 탭의 삭제는 원본을 휴지통으로 이동(30일 보관)하는 동작으로 의미가 다릅니다.
* **제거 처리**: 항목을 선택하고 \[제거]를 클릭하면 재확인 모달 없이 즉시 처리되며, "{N}개 공유 항목이 제거되었습니다" 토스트가 표시된 뒤 목록에서 사라집니다.
* **활동 기록**: 제거는 대상 리소스의 **활동 내역('공유 여부' 버킷)에 기록**되므로, 공유자는 원본 리소스에서 누가 언제 공유를 해제했는지 확인할 수 있습니다.
* **재공유 시**: 공유자 측 **\[리소스 공유] 모달의 사용자 공유 목록에서 제거한 사용자는 노출되지 않습니다.** 다시 공유하려면 해당 사용자를 새로 추가하면 되고, 모달을 변경 없이 저장하더라도 제거된 사용자가 자동으로 되살아나지 않습니다.

<figure><img src="/files/ccGKLdUittN6yK06xFyL" alt="공유받은 문서함 — 항목 선택 후 제거 버튼"><figcaption><p>공유받은 문서함 — 항목 선택 후 제거 버튼</p></figcaption></figure>

> 공유받은 문서함에서의 수정·생성·재적재는 공유받은 권한(shared 수신자 권한)을 기준으로 통과합니다. 그룹 드라이브 탭과 달리 쓰기 권한이 없어도 공유받은 쓰기 권한만 있으면 해당 항목을 수정할 수 있습니다.

## 휴지통

삭제한 드라이브·폴더·파일이 보관되는 공간입니다. 항목이 한 목록에 섞여 표시됩니다.

<figure><img src="/files/VZkjG6xwuZkGXdLrPYat" alt="휴지통 — 복원·영구 삭제"><figcaption><p>휴지통 — 복원·영구 삭제</p></figcaption></figure>

* **복원**: 항목을 선택하고 \[복원] 버튼을 클릭한 뒤 확인 키("복원 하겠습니다")를 입력하면 원래 위치로 복원됩니다. 같은 이름이 이미 있으면 이름 뒤에 `(n)`이 덧붙습니다.
* **영구 삭제**: 확인 키를 입력한 뒤 삭제하며, 영구 삭제된 항목은 복원할 수 없습니다.
* **보안등급 노출 범위**: 휴지통 목록에도 파일 목록과 동일한 보안등급 통제가 적용됩니다. **본인의 유효 보안등급을 초과하는 파일은 휴지통에 표시되지 않으며**, 목록에는 열람 가능한 항목만 보입니다. 보안등급 컬럼에는 등급명 배지가 표시되고, 폴더·등급 미지정 항목은 `-`로 표시됩니다.

> 휴지통으로 이동된 항목은 **30일 후 자동으로 영구 삭제**됩니다. 이 안내는 휴지통 화면 상단의 안내 바에 표시됩니다("휴지통에 30일 이상 보관된 파일은 자동으로 영구 삭제됩니다.").

## 파일 상세와 벡터 정보

파일을 더블 클릭하면 파일 상세 화면으로 이동합니다.

* PDF 파일은 좌측에 뷰어가 함께 표시됩니다.
* 상세 정보·문서 공통 정보와 함께, 적재 결과로 생성된 **벡터(청크) 목록**을 확인할 수 있습니다. 벡터 목록은 청크 ID·속성(properties)·벡터·등록일시 컬럼으로 구성되며 서버 페이징으로 조회됩니다.
* 파일 상세에서 **활동** 탭으로 리소스 활동 내역을, **버전 관리** 모달로 버전 기록을 확인할 수 있습니다.

### 기본 정보 패널

파일을 선택하면 우측 \[기본 정보] 패널에서 파일 속성을 확인합니다. v1.9.x부터 다음 항목이 추가되었습니다.

* **파일 크기**: 사람이 읽기 쉬운 단위(예: 2.4 MB)로 표시됩니다.
* **버전**: 현재 버전(예: V15)이 표시됩니다.

> 파일 크기·버전 항목은 파일 노드에만 표시되며, 폴더·드라이브 노드에는 나타나지 않습니다.

## AI 드라이브 활용

생성한 AI 드라이브는 다음과 같이 활용합니다.

* **문서 참조**: 적재된 문서를 채팅에서 검색하고 참조할 수 있습니다. AI 드라이브는 채팅의 파일 참조 플러그인의 소스가 됩니다.
* **데이터 소스 연결**: 데이터 소스 종류로 **"AI 드라이브"** 를 선택해 드라이브를 연결할 수 있습니다. 아래 [데이터 소스로 선택하기](#데이터-소스로-선택하기) 참고.
* **채팅 첨부**: 젠포탈 채팅에서 AI 드라이브의 파일·폴더를 직접 첨부해 질문할 수 있습니다. 아래 [채팅에서 파일·폴더 첨부하기](#채팅에서-파일폴더-첨부하기) 참고.
* **협업**: 공유 기능으로 관리 그룹이나 팀원과 문서를 공유해 함께 활용할 수 있습니다.
* **개인 문서 관리**: 내 드라이브로 관리 그룹과 무관한 개인 문서를 별도로 관리할 수 있습니다.

### 데이터 소스로 선택하기

다른 화면에서 AI 드라이브를 데이터 소스로 지정할 때는 **공통 선택 피커**를 사용합니다. v1.9.2에서 사용처별로 달랐던 선택 UI가 하나로 통일되었습니다.

**사용처.**

| 화면             | 진입 지점                                                       |
| -------------- | ----------------------------------------------------------- |
| MCP 서버         | `MCP 서버 생성/상세 > 데이터 소스` — \[데이터 소스 추가]에서 소스 종류 "AI 드라이브" 선택 |
| 전용 채팅          | 전용 채팅 생성 다이얼로그 — 데이터 소스 선택 단계                               |
| 워크플로우(Flowise) | DeepSearfing 노드의 `Weaviate Host` 항목                         |

**피커 구성.**

* **좌측 3탭**: **그룹 드라이브 · 내 드라이브 · 공유받은 문서함**. v1.9.1까지는 그룹 드라이브만 선택할 수 있었으나, v1.9.2부터 내 드라이브와 공유받은 드라이브도 데이터 소스로 지정할 수 있습니다.
* **검색**: 상단 검색어로 탭 내 항목을 좁힙니다. 탭을 바꾸거나 검색어를 바꾸면 목록이 첫 페이지로 돌아갑니다.
* **페이지네이션**: 한 페이지에 10개씩 표시되며, 목록은 스크롤됩니다.
* **항목 아이콘**: 드라이브 · 폴더 · 파일을 아이콘으로 구분합니다.
* **설명 툴팁**: 상세 설명이 입력된 항목은 마우스를 올리면 전체 설명이 툴팁으로 표시됩니다.
* **선택 불가 항목**: 검색 인덱스가 아직 만들어지지 않은 드라이브는 목록에 회색으로 표시되고 선택할 수 없습니다.

> **선택 단위.** 데이터 소스로 지정하는 단위는 **드라이브**입니다. 공유받은 문서함 탭에서도 드라이브 단위 항목만 후보로 노출됩니다(폴더·파일 단위 데이터 소스 지정은 미지원).

### 채팅에서 파일·폴더 첨부하기

젠포탈 채팅에서 AI 드라이브에 **이미 적재된 문서**를 골라 그 대화의 참고 자료로 붙일 수 있습니다. 새로 파일을 올려 적재를 기다릴 필요 없이 기존 색인을 그대로 재사용하며, v1.9.2에서 **폴더 단위 첨부**가 추가되고 선택 제약이 대폭 완화되었습니다. 붙인 문서는 대화 세션에 유지되어 여러 턴에 걸쳐 계속 참조됩니다.

**노출 조건.** 관리자가 `워크플로우 상세 > 플러그인 탭`의 **`AI 드라이브 파일 참조` 토글**을 켠 워크플로우에서만 나타납니다. 이 토글은 로컬 파일 업로드·이미지 업로드 토글과 독립적이어서, AI 드라이브만 켜고 로컬 업로드는 끌 수 있습니다.

> 플러그인 탭의 `AI 드라이브 파일 참조`와 `워크플로우 상세 > 데이터 소스`의 AI 드라이브 데이터 소스는 별개입니다. 데이터 소스는 워크플로우의 검색 대상을 고정 연결하는 것이고, 이쪽은 **사용자가 대화 중에 골라 붙이는** 것입니다.

#### 첨부 버튼

입력창 첨부 컨트롤은 로컬 업로드 활성 여부와 AI 드라이브 활성 여부의 조합으로 모양이 달라집니다.

| 상황                      | 첨부 컨트롤        | 클릭 동작                              |
| ----------------------- | ------------- | ---------------------------------- |
| 로컬 업로드 ON + AI 드라이브 ON  | `+` 버튼 → 드롭다운 | `로컬 파일 업로드` / `AI 드라이브 파일 선택` 중 선택 |
| 로컬 업로드 ON + AI 드라이브 OFF | 클립 아이콘        | 바로 로컬 파일 선택창                       |
| 로컬 업로드 OFF + AI 드라이브 ON | 드라이브 아이콘(구름)  | 첨부 모달 바로 열림(드롭다운 없음)               |
| 모두 OFF                  | 미노출           | —                                  |

<figure><img src="/files/ArE36JpiRjgFrDSd5yC6" alt="채팅 컴포저 — 첨부 버튼 드롭다운(로컬 파일 업로드 / AI 드라이브 파일 선택)"><figcaption><p>채팅 컴포저 — 첨부 버튼 드롭다운(로컬 파일 업로드 / AI 드라이브 파일 선택)</p></figcaption></figure>

#### 모달 구성 — 3탭·3화면

**그룹 드라이브 · 내 드라이브 · 공유받은 문서함** 3탭이며, 내부적으로 세 가지 화면으로 동작합니다.

| 화면      | 조건                     | 표시 내용                         | 이동 방법                                     |
| ------- | ---------------------- | ----------------------------- | ----------------------------------------- |
| 드라이브 목록 | 그룹/내 드라이브 탭 & 드라이브 미선택 | 접근 가능한 드라이브 목록                | 드라이브 행 **더블클릭** → 내부 진입                   |
| 노드 뷰    | 드라이브 진입 후(모든 탭 공통)     | 폴더·파일 목록                      | 폴더 **더블클릭** → 하위 진입 / 폴더·파일 **체크박스** → 선택 |
| 공유 인박스  | 공유받은 문서함 탭 & 드라이브 미선택  | 공유받은 드라이브·폴더·파일이 섞인 **평면 목록** | 파일·폴더는 바로 체크, 드라이브·폴더는 **더블클릭** → 진입      |

<figure><img src="/files/cxGhrAiE8gChEiFvmTR4" alt="첨부 모달 — 그룹 드라이브 탭(드라이브 목록). 선택할 행이 없어 헤더 체크박스도 없습니다"><figcaption><p>첨부 모달 — 그룹 드라이브 탭(드라이브 목록). 선택할 행이 없어 헤더 체크박스도 없습니다</p></figcaption></figure>

<figure><img src="/files/01wjH0E1xEiVI1qf4btc" alt="첨부 모달 — 노드 뷰(내 드라이브 예시). 폴더·파일 모두 체크박스로 선택합니다"><figcaption><p>첨부 모달 — 노드 뷰(내 드라이브 예시). 폴더·파일 모두 체크박스로 선택합니다</p></figcaption></figure>

<figure><img src="/files/qKahAzNOvURLQmMwyj2R" alt="첨부 모달 — 공유받은 문서함(평면 인박스). 폴더·파일에는 체크박스가 있고 드라이브 행에는 없으며, 파일에는 보안등급 배지가 표시됩니다"><figcaption><p>첨부 모달 — 공유받은 문서함(평면 인박스). 폴더·파일에는 체크박스가 있고 드라이브 행에는 없으며, 파일에는 보안등급 배지가 표시됩니다</p></figcaption></figure>

* **탐색**: 드라이브를 더블클릭해 내부로 들어가 폴더를 따라 이동합니다. 브레드크럼으로 상위 경로로 돌아갈 수 있고, 경로가 깊어지면 자동으로 축약 표시됩니다. **공유받은 문서함에서 폴더로 바로 들어간 경우**에는 그 폴더가 진입점이므로, 뒤로가기가 소속 드라이브 루트(조회 권한이 없는 위치)로 내려가지 않고 공유 인박스로 복귀합니다.
* **검색·필터**: 검색 구분은 화면마다 다릅니다(드라이브 목록 = 이름·ID·상세 설명·제작자 / 노드 뷰 = 이름·ID·제작자·수정자 / 공유 인박스 = 이름·ID·공유한 사용자). **내 드라이브는 항상 본인 소유라 제작자·수정자 구분이 빠집니다.** 관리 그룹 필터는 그룹 드라이브 목록·공유 인박스에서만 노출되며, 공유 인박스에는 `개인(비그룹) 소유` 옵션도 있습니다.
* **컬럼 구성**: 노드 뷰는 탭에 따라 다릅니다 — 공유 드릴인은 전체 컬럼, 그룹 드라이브는 수정자 제외, **내 드라이브는 제작자·수정자·보안등급 제외**입니다.
* **첨부 후보 범위**: 적재가 **완료**된 파일과 **재적재 대상** 파일만 목록에 내려옵니다. 적재 대기·진행 중이거나 오류인 파일, 그리고 **본인의 유효 보안등급을 초과하는 파일**은 목록에 아예 나타나지 않습니다.
* **보안등급 표시**: 파일 행에는 보안등급 배지가 표시되고(폴더·미지정은 `-`), 등급 서열 기준으로 정렬됩니다.

#### 선택 규칙

* **파일 + 폴더 선택**: 파일은 물론 **폴더도 체크박스로 선택**할 수 있습니다(노드 뷰·공유 인박스). 폴더를 선택하면 그 **하위의 첨부 가능한 파일 전부**가 첨부됩니다(재귀, 최대 10단계). 공유 인박스의 **드라이브 행은 선택 대상이 아닙니다**(더블클릭 진입만).
* **개수 제한 없음**: v1.9.1까지 적용됐던 **최대 10개 선택 제한이 제거**되었습니다. 이미 적재가 끝난 문서를 참조하는 것이라 개수 제한을 두지 않습니다.
* **카운터는 항목 단위**: 하단 카운터 `N개 선택됨`은 **고른 항목 수**입니다. 폴더도 1, 파일도 1로 세므로 폴더 1개 + 파일 2개 = `3개 선택됨`이며, 실제로 첨부되는 문서 수(폴더 하위 파일까지 합산)와는 다릅니다.
* **페이지 단위 전체 선택**: 목록 헤더의 체크박스로 **현재 페이지의 선택 가능한 항목을 한 번에** 켜고 끌 수 있습니다. 전부 선택되면 체크, 일부만 선택되면 빼기 표시로 바뀝니다. 다른 페이지·다른 탭에서 이미 고른 항목은 그대로 유지되고, 전체 선택 상태에서 헤더를 다시 누르면 **그 페이지 항목만** 해제됩니다. 드라이브 목록에는 선택할 행이 없어 헤더 체크박스도 없습니다.
* **교차 드라이브 누적 선택**: 탭을 바꾸거나 다른 드라이브·폴더·페이지로 이동해도 이미 고른 항목이 유지됩니다.
* **모달 재오픈 시 초기화**: 모달은 열릴 때마다 탭·검색·필터·정렬·선택 상태가 초기화됩니다. 이미 입력창에 붙어 있는 항목이 모달 안에서 체크된 상태로 복원되지는 않습니다.

<figure><img src="/files/VL3Fz8nnITiZCWB17chY" alt="노드 뷰 헤더 체크박스 — 페이지 단위 전체 선택"><figcaption><p>노드 뷰 헤더 체크박스 — 페이지 단위 전체 선택</p></figcaption></figure>

**폴더와 하위 항목의 중복 방지(2방향).**

| 방향  | 상황                           | 동작                                                                      |
| --- | ---------------------------- | ----------------------------------------------------------------------- |
| 아래로 | 선택한 폴더 **안으로** 들어감           | 하위 폴더·파일 체크박스가 전부 비활성. 이름에 마우스를 올리면 "상위 폴더가 선택되어 있습니다" 안내. 헤더 체크박스도 비활성 |
| 위로  | 하위 항목을 먼저 고른 뒤 **부모 폴더**를 체크 | 하위 선택을 제거하고 폴더 1개로 대체(흡수) → 카운터가 줄어듭니다                                  |

<figure><img src="/files/bXGXxFozkOgiUnqXieaT" alt="선택된 폴더 안쪽 — 전 행 비활성 + 사유 안내"><figcaption><p>선택된 폴더 안쪽 — 전 행 비활성 + 사유 안내</p></figcaption></figure>

**확인(폴더 전개).** \[확인]을 누르면 고른 항목이 입력창 첨부 목록에 병합됩니다(중복 제외). 폴더는 이 시점에 하위 파일 목록으로 한 번에 전개되며, 전개하는 동안 \[확인] 버튼이 잠시 비활성화됩니다. 첨부 가능한 파일이 하나도 없는 폴더는 안내가 표시되고 첨부에서 제외되며, 고른 폴더가 전부 비어 있으면 모달이 닫히지 않고 다시 선택할 수 있습니다.

> **폴더 첨부는 스냅샷입니다.** \[확인] 누른 시점의 하위 파일로 고정되므로, 이후 그 폴더에 파일이 추가돼도 이번 대화의 참조 대상에는 들어오지 않습니다. 새 파일까지 참조하려면 폴더를 다시 붙입니다.

#### 첨부 칩과 출처

<figure><img src="/files/d5A8YIR77rVljeHLcQud" alt="컴포저 첨부 칩 — 폴더 칩(폴더명 · 파일 N개)과 파일 칩, 각각 AI 드라이브 배지"><figcaption><p>컴포저 첨부 칩 — 폴더 칩(폴더명 · 파일 N개)과 파일 칩, 각각 AI 드라이브 배지</p></figcaption></figure>

* **파일 칩**은 파일 이름과 확장자를, **폴더 칩**은 폴더 아이콘 + 폴더명 + `파일 N개`를 표시합니다. 폴더는 하위 파일을 낱개로 펼치지 않고 **칩 1개**로 남으며, 칩을 삭제하면 그 폴더 하위 파일이 함께 빠집니다.
* 칩에는 **출처 배지**(로컬 / AI 드라이브)가 붙어 로컬 업로드 파일과 AI 드라이브 참조 항목을 구분할 수 있습니다.
* **재로드 후에도 유지**: 전송한 뒤 대화를 다시 열어도 폴더는 파일 N개로 흩어지지 않고 폴더 칩 1개로 남습니다. 이때 표시되는 개수는 **재인가를 통과한 문서 수**이므로, 일부 문서의 권한이 회수되면 개수가 줄고 전부 회수되면 칩 자체가 사라집니다.
* 참조한 문서는 답변의 **출처**에도 문서당 1건씩 표시되어, 출처를 눌러 문서 뷰어로 열 수 있습니다.

<figure><img src="/files/pCFEguGDDW2NwY7gZatq" alt="답변 출처 — 참조된 AI 드라이브 문서"><figcaption><p>답변 출처 — 참조된 AI 드라이브 문서</p></figcaption></figure>

**숫자가 나오는 세 지점의 의미가 다릅니다** — 폴더 1개(하위 파일 3개) + 파일 2개를 골랐다면:

| 위치         | 의미                     | 값                          |
| ---------- | ---------------------- | -------------------------- |
| 모달 하단 카운터  | 선택 **항목** 수            | `3개 선택됨`                   |
| 첨부 칩       | 칩 3개, 폴더 칩 캡션에 하위 파일 수 | 폴더 칩 1개(`파일 3개`) + 파일 칩 2개 |
| 실제 참조되는 문서 | 파일 **문서** 수            | 5개                         |

> **첨부 총량 상한.** AI 드라이브 항목 선택 자체에는 개수 제한이 없습니다. 다만 **로컬 파일·이미지를 추가할 때**는 입력창에 붙어 있는 첨부(로컬 업로드 파일 · 이미지 · AI 드라이브 항목)를 합산해 **총 10개** 상한이 적용되어, 초과하면 안내가 표시되고 로컬 추가가 차단됩니다.

#### 멀티턴 참조와 매 턴 재인가

* **세션 유지**: 붙인 문서는 대화 세션에 누적 저장됩니다. 전송 시에는 이번 턴에 새로 붙인 문서만 서버로 보내고 서버가 세션 단위로 유지하므로, 다음 턴부터는 다시 붙이지 않아도 계속 참조됩니다. 같은 문서를 다시 붙여도 중복 없이 흡수됩니다.
* **매 턴 재인가**: 매 사용자 턴마다 서버가 세션에 쌓인 문서를 다시 인가합니다 — **읽기 권한 + 보안등급 + 첨부 가능 상태**를 재검증하고 통과한 문서만 사용합니다. 첨부 후 권한이 회수되거나 보안등급이 올라가거나 파일이 삭제되면 **그 턴부터 자동으로 빠집니다**. 답변 재생성·편집 시에도 동일하게 재인가합니다.

#### 참조 방식 (문서 양에 따라 자동 선택)

재인가를 통과한 문서는 문서 양에 따라 두 방식 중 하나로 답변에 반영됩니다. 사용자가 고를 항목은 아니며, 방식 차이를 신경 쓰지 않아도 됩니다.

1. **전문 참조** — 붙은 문서 전문을 이어 붙인 양이 채팅 워크플로우 LLM 컨텍스트 창의 일정 비율(기본 50%) 이내면 문서 전체를 그대로 넣습니다.
2. **부분 검색 참조** — 그 한도를 넘으면 **붙인 문서 안에서만** 질문과 관련된 부분을 하이브리드 검색(키워드 + 벡터)으로 추려 상위 청크만 넣습니다. 여러 드라이브에 걸쳐 있으면 각 드라이브에서 검색한 뒤 점수순으로 병합합니다.

* 특정 드라이브의 임베딩 서빙이 내려가 있으면 **그 드라이브만 건너뛰고** 나머지로 진행합니다.
* 붙인 문서 참조 내용은 채팅의 임시 업로드(로컬 파일) 내용과 함께 하나로 합쳐져 전달됩니다.
* 암호화된 문서는 복호화해 넣으며, 복호화에 실패한 청크는 안전하게 제외됩니다.

> **응답 지연 참고.** 문서가 너무 많아 컨텍스트가 넘치는 것은 부분 검색 참조가 막아주지만, **매 턴 재인가·청크 조회 비용은 붙인 문서 수에 비례**합니다. 파일이 아주 많은 폴더를 붙이면 응답이 느려질 수 있습니다. 폴더 행에는 하위 파일 수가 표시되지 않으므로, 규모는 선택 후 폴더 칩 캡션(`파일 N개`)으로 확인합니다.

> **알려진 제약.** 공유받은 문서함에서 폴더와 그 하위 파일이 **각각 따로** 공유된 경우, 평면 목록이라 화면이 둘의 상하 관계를 알 수 없어 양쪽 모두 선택됩니다. 이때 카운터는 2로 세지만 중복 문서는 전송 단계에서 제거되어 실제 참조 문서는 1개입니다.

## 화면 전환도

```
[목록(탭: 그룹 드라이브 / 내 드라이브 / 공유받은 문서함 / 휴지통)]
        |                                    ^
   더블 클릭                          휴지통 복원/영구삭제
        v                                    |
[드라이브 내부(폴더·파일 목록, 상태 컬럼)]
        |
   파일 더블 클릭
        v
[파일 상세(좌측 뷰어 + 상세정보 / 문서공통 / 청크 / 활동 / 버전 관리)]
```

## 사용자 시나리오

### 새 문서함을 만들고 문서를 적재하는 관리자

그룹 드라이브 탭에서 드라이브를 생성하고 관리 그룹을 지정한 뒤, 임베딩·전처리기를 설정합니다. 드라이브에 진입해 폴더를 만들고 파일을 업로드하면 자동으로 적재가 시작되며, 상태 컬럼에서 진행 상황을 확인합니다.

### 개인 문서를 관리하는 사용자

내 드라이브 탭에서 드라이브를 생성합니다(관리 그룹 선택 단계 없음). 본인이 자동 소유자가 되며, 개인 용량 한도 안에서 문서를 올리고 관리합니다. 필요하면 특정 파일을 관리 그룹·역할·사용자에게 공유할 수 있습니다.

### 파일을 이전 버전으로 되돌리는 관리자

동일 이름으로 덮어쓰기해 여러 버전이 쌓인 파일에서 버전 관리 모달을 엽니다. 되돌릴 버전의 ⋮ 메뉴에서 \[복원]을 선택하면 새 버전으로 복원되고 기존 버전은 유지됩니다. 자주 참조하는 기준 버전은 \[영구 보관]으로 지정해 자동 제거에서 제외합니다.

### 변경 이력을 확인하는 협업자

공유받은 드라이브의 파일에서 활동 탭을 열어 누가·언제 이름을 바꾸거나 덮어쓰거나 공유 권한을 변경했는지 시간순으로 확인합니다. 변경 전/후가 있는 활동은 아코디언을 펼쳐 상세 변경 내역을 봅니다.

### 설정을 바꿔 문서를 다시 적재하는 관리자

임베딩 모델이나 전처리기를 변경하면 기존 문서가 "재적재 대상"으로 표시됩니다. 해당 항목을 선택해 \[재적재]하면 최신 설정으로 다시 적재됩니다. 재적재 중인 문서는 완료 전까지 검색·AI 참조에서 제외됩니다.

### 공유만 받은 사용자

그룹 드라이브에 대한 권한이 없어도, 공유받은 항목은 **공유받은 문서함** 탭에서 확인할 수 있습니다. 읽기로 공유받으면 조회·다운로드가, 쓰기로 공유받으면 수정·재적재가 가능합니다. 더 이상 필요 없는 항목은 \[제거]로 공유 관계를 해제합니다. 제거하면 목록에서 사라지고 **스스로 되돌릴 수 없으므로**, 다시 필요해지면 공유자에게 재공유를 요청합니다.

### 삭제한 항목을 복원하는 관리자

휴지통 탭에서 삭제한 드라이브·폴더·파일을 확인합니다. \[복원]으로 원래 위치에 되돌리며, 같은 이름이 있으면 `(n)`이 붙어 복원됩니다. 30일이 지나면 자동으로 영구 삭제되므로, 필요한 항목은 그 전에 복원합니다.

### 폴더를 통째로 첨부해 질문하는 사용자

채팅 입력창의 `+` → `AI 드라이브 파일 선택`으로 모달을 열고, 프로젝트 문서가 모여 있는 폴더를 찾아 체크합니다. 카운터는 `1개 선택됨`이고, \[확인]을 누르면 하위 첨부 가능 파일이 한 번에 붙어 입력창에 폴더 칩 1개(`파일 12개`)로 표시됩니다. 질문을 보내면 12개 문서가 함께 참조되고, 대화를 다시 열어도 칩은 폴더 1개로 남습니다. 이후 그 폴더에 파일이 추가되면 폴더를 다시 붙여야 반영됩니다.

### 폴더와 하위 파일을 중복해서 고르려는 사용자

폴더 안에서 파일 3개를 먼저 고른 뒤 상위로 올라가 그 폴더 자체를 체크하면, 앞서 고른 파일 3개가 폴더에 흡수되어 카운터가 `1개 선택됨`으로 줄어듭니다. 반대로 폴더를 먼저 고르고 안으로 들어가면 하위 행이 전부 비활성이고 "상위 폴더가 선택되어 있습니다" 안내가 표시됩니다.

### 공유받은 문서를 채팅에서 참조하는 사용자

공유받은 문서함 탭에서 공유받은 파일·폴더를 바로 체크하거나, 공유받은 드라이브에 들어가 골라 붙입니다. 폴더로 바로 들어간 뒤 뒤로가기를 누르면 공유 인박스로 되돌아옵니다. 붙인 뒤에도 매 턴 권한이 재검증되므로, 공유가 회수되면 그 시점부터 자동으로 참조에서 빠집니다.

## 함께 보기

* [DB 문서 적재](/default/v1.9.2/basic-tutorials/guides/data/vectordb.md)
* [벡터 DB 자동 적재](/default/v1.9.2/basic-tutorials/guides/data/auto_ingestion.md)


---

# 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 dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://genos-docs.gitbook.io/default/v1.9.2/basic-tutorials/guides/data/ai-drive.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
