
문서 처리 프로파일
신규 기능 — 문서 추출 방식과 청킹 전략을 묶어 프로파일로 관리할 수 있습니다. 여러 프로파일을 만들어두고 지식기반(KB)별로 선택하여 사용합니다.
프로파일이란?
기존에는 전역으로 하나의 추출/청킹 설정만 가능했습니다. 프로파일을 사용하면 용도별로 서로 다른 설정 묶음을 정의하고, KB마다 적합한 프로파일을 선택할 수 있습니다.프로파일 관리
문서 설정 페이지 상단의 문서 처리 프로파일 섹션에서 프로파일을 생성하고 관리합니다.프로파일 생성
+ 새 프로파일 버튼을 클릭하여 프로파일 생성 모달을 엽니다.
| 설정 항목 | 설명 | 기본값 |
|---|---|---|
| 이름 | 프로파일 식별 이름 | — |
| 콘텐츠 추출 엔진 | 문서에서 텍스트를 추출하는 방식 | 기본 (Default) |
| PDF 이미지 추출 | PDF 내 이미지 텍스트 추출 여부 | OFF |
| 텍스트 분할 방식 | 청킹 전략 (고정 크기 / 시맨틱) | Character |
| 청크 크기 | 분할할 청크의 크기 | 1000 |
| 청크 오버랩 | 청크 간 중복 크기 | 100 |
| 고급 설정 | 테이블 보존, 문맥 보존, 엔진별 상세 설정 | — |
기본 프로파일 설정
프로파일 목록에서 기본값으로 설정 버튼을 클릭하면, 해당 프로파일의 설정이 전역 기본값으로 동기화됩니다. 프로파일을 지정하지 않은 KB는 이 기본 프로파일로 처리됩니다.
콘텐츠 추출
문서에서 텍스트를 추출하는 엔진을 선택합니다.| 엔진 | 특징 | 적합한 경우 | 추가 설정 |
|---|---|---|---|
| 기본 (Default) | 내장 텍스트 추출기 | 간단한 텍스트 문서 | PDF Extract Images 토글 |
| Tika | Apache Tika 서버 기반 | 다양한 파일 포맷 지원 필요 | Server URL (기본: http://tika:9998) |
| Docling | 고급 문서 처리 엔진 | 복잡한 레이아웃의 문서 | Server URL (기본: http://docling:5001) |
| Document Intelligence | Azure AI Document Intelligence | Azure 환경, 정확한 OCR 필요 | Endpoint + API Key |
| Document AI | Google Cloud Document AI | 표, 양식, 다단 레이아웃 | Project ID + Processor ID + Location |
| Mistral OCR | Mistral 기반 OCR | 이미지 기반 문서 | Mistral API Key |
| LLM Vision | Vision LLM 기반 추출 | 복잡한 레이아웃, 차트/이미지 속 텍스트 | Vision 모델 ID + 프롬프트 (선택) |
LLM Vision 추출
신규 기능 — Vision을 지원하는 LLM(GPT-4o, Claude 등)에게 페이지 이미지를 직접 보내 마크다운 텍스트로 추출하는 방식입니다.
- PDF를 페이지별 이미지로 변환 (300DPI급)
- 각 페이지 이미지를 Vision LLM에 병렬 전송
- LLM이 표/리스트/제목 구조를 유지한 마크다운으로 반환
- 인접 페이지 경계의 끊긴 문장을 자동 보정
| 설정 항목 | 설명 |
|---|---|
| Vision 모델 | 시스템에 등록된 Vision 지원 모델 선택 (예: gpt-4o) |
| 추출 프롬프트 | 커스텀 프롬프트 (빈 값이면 기본 프롬프트 사용) |
LLM Vision은 PyMuPDF 패키지가 필요합니다. 미설치 시 이 엔진을 선택한 문서 업로드가 실패합니다. 배포 환경에서 PyMuPDF 설치 여부를 확인하세요.
텍스트 분할
추출된 텍스트를 검색에 적합한 크기로 분할하는 방식을 설정합니다.| 설정 | 기본값 | 설명 |
|---|---|---|
| Text Splitter | Character | Character: 문자 수 기준 분할. Token: Tiktoken 토큰 기준 분할. Semantic: 의미 기반 분할 |
| Chunk Size | 1000 | 분할할 청크의 크기 (문자 수 또는 토큰 수). Semantic 모드에서는 참고값 |
| Chunk Overlap | 100 | 청크 간 중복 크기 (문맥 연결 유지) |
Chunk Size를 어떻게 정해야 하나요?
Chunk Size를 어떻게 정해야 하나요?
| 크기 | 장점 | 단점 | 권장 상황 |
|---|---|---|---|
| 작게 (500 이하) | 정밀한 검색 | 문맥이 잘릴 수 있음 | FAQ, 짧은 문단 |
| 중간 (1000) | 균형 잡힌 성능 | — | 대부분의 경우 (기본값) |
| 크게 (2000 이상) | 넓은 문맥 유지 | 검색 정밀도 저하 | 긴 서술형 문서 |
Chunk Overlap은 왜 필요한가요?
Chunk Overlap은 왜 필요한가요?
청크 경계에서 문장이 잘리면 검색 시 관련 내용을 놓칠 수 있습니다. 오버랩을 설정하면 앞뒤 청크가 일부 텍스트를 공유하여 문맥 연결을 유지합니다. 기본값 100은 대부분의 경우 적절합니다.
Bypass Embedding and Retrieval 옵션을 활성화하면 텍스트 분할과 임베딩을 건너뛰고 문서 전체를 LLM 컨텍스트에 직접 주입합니다. 소규모 문서에서만 사용하세요 — 대용량 문서는 토큰 한도를 초과할 수 있습니다.
시맨틱 청킹
신규 기능 — 고정 크기 대신 문장 간 의미 유사도를 기준으로 청크를 분리하는 방식입니다.
| 고정 크기 (Character/Token) | 시맨틱 (Semantic) | |
|---|---|---|
| 분리 기준 | 글자 수 / 토큰 수 | 의미 유사도 변화 |
| 장점 | 빠르고 예측 가능 | 주제 경계에서 분리, 검색 정확도 향상 |
| 단점 | 문장/문단 중간 절단 가능 | 임베딩 엔진 필요, 처리 시간 증가 |
| 권장 | 일반적인 문서 | 주제가 자주 전환되는 긴 문서 |
테이블 보존
신규 기능 — 문서 내 테이블(HTML/마크다운 형식)을 분리하지 않고 통째로 보존하는 기능입니다.
- 문서에서 테이블(HTML
<table>, 마크다운|...|)을 자동 탐지 - 텍스트 부분만 일반 청킹 수행
- 테이블은 가장 인접한 텍스트 청크에 통째로 붙임
- 청크 크기를 초과하는 대형 테이블은 헤더를 유지하면서 행 단위로 분할
문맥 보존 (Contextual Chunking)
신규 기능 — 각 청크에 전체 문서의 맥락 요약을 LLM이 생성하여 앞에 추가합니다. Anthropic의 Contextual Retrieval 기법을 구현한 기능입니다.
- 청킹 완료 후 각 청크에 대해 LLM 호출
- “이 청크가 전체 문서에서 어떤 위치와 맥락인지” 요약을 생성
- 요약을 청크 앞에 추가하여 벡터화
| 설정 항목 | 설명 |
|---|---|
| Contextual Chunking | 활성/비활성 토글 |
| 모델 | 문맥 요약에 사용할 LLM 모델 |
임베딩 설정
문서를 벡터로 변환하는 임베딩 엔진과 모델을 설정합니다.| 설정 항목 | 기본값 | 설명 |
|---|---|---|
| 임베딩 엔진 | SentenceTransformers | 벡터 변환에 사용할 서비스 |
| 임베딩 모델 | all-MiniLM-L6-v2 | 사용할 모델 이름 |
| 배치 크기 | 32 | 한 번에 처리할 문서 수 (Ollama, OpenAI, Azure만 표시) |
| 임베딩 차원 | 0 (자동) | 벡터 차원 수. 0이면 모델 기본값 사용 |
- SentenceTransformers
- OpenAI
- Azure OpenAI
- Ollama
- Vertex AI
- Gemini
로컬 환경에서 실행되는 오픈소스 임베딩 엔진입니다.
| 설정 항목 | 설명 |
|---|---|
| 모델 | HuggingFace 모델명 (예: sentence-transformers/all-MiniLM-L6-v2) |
파일 업로드 제한
| 설정 항목 | 기본값 | 설명 |
|---|---|---|
| 최대 파일 크기 | 무제한 | 단일 파일 업로드 최대 크기 (MB 단위) |
| 최대 파일 수 | 무제한 | 채팅 1회에 동시 사용 가능한 파일 수 |
| 허용 파일 확장자 | 전체 허용 | 콤마로 구분 (예: pdf, docx, txt). 빈 값 = 모든 확장자 허용 |
| PDF 변환 확장자 | 비활성 | LibreOffice로 PDF 변환할 확장자 (예: pptx, docx, xlsx). LibreOffice 설치 필요 |
질의예시 생성 (Question Generation)
문서 청크마다 “사용자가 할 법한 질문”을 LLM이 미리 생성하여 검색 정확도를 높이는 기능입니다.| 설정 | 기본값 | 설명 |
|---|---|---|
| 활성화 | OFF | 토글로 켜기 |
| 모델 | — | 질문 생성에 사용할 LLM 선택 |
| 청크당 최대 질문 수 | 10 | 1~20 범위 |
| 질문 벡터 가중치 | 0.5 | 0.0(콘텐츠만) ~ 1.0(질문만). 0.5 = 동등 가중 |
클라우드 스토리지 연동
외부 클라우드 스토리지에서 지식기반에 문서를 가져올 수 있습니다. 이 설정은 토글만 제공하며, 실제 인증 정보는 환경 변수로 설정해야 합니다.| 스토리지 | 토글 | 필요한 환경 변수 |
|---|---|---|
| Google Drive | ON/OFF | GOOGLE_DRIVE_CLIENT_ID, GOOGLE_DRIVE_API_KEY |
| OneDrive | ON/OFF | ONEDRIVE_CLIENT_ID |
| SharePoint | ON/OFF | ONEDRIVE_CLIENT_ID_BUSINESS, SHAREPOINT_TENANT_ID, SHAREPOINT_SITE_URL |
환경 변수가 설정되어 있어야 토글을 켤 수 있습니다. 토글을 켜면 지식기반의 “내용 추가” 메뉴에 해당 클라우드 소스가 표시됩니다.
재인덱싱 및 초기화
아래 작업은 되돌릴 수 없습니다. 실행 전 반드시 확인하세요.
| 작업 | 설명 | 영향 범위 |
|---|---|---|
| 지식기반 재인덱싱 | 모든 지식기반의 벡터 인덱스를 재구축 | 지식기반 전체 (시간 소요) |
| 벡터 스토리지 초기화 | Vector DB의 모든 데이터 삭제 | 모든 벡터 삭제 → 재인덱싱 필요 |
| 업로드 디렉토리 초기화 | 서버에 업로드된 파일 전체 삭제 | 원본 파일 삭제 |
재인덱싱이 필요한 경우
- 임베딩 모델을 변경했을 때
- 검색 엔진(Vector DB)을 변경했을 때
- 청크 크기/오버랩을 변경했을 때
- 문서 처리에 문제가 발생했을 때
관련 페이지
지식기반
지식기반 생성 및 문서 관리 — KB별 프로파일 선택
검색 엔진
Vector DB 및 검색 파라미터 설정
동적 필터
지식기반 메타데이터 필터 설정
