파일을 텍스트로 업로드
채팅창에 파일을 끌어다 놓으면 LibreChat이 즉시 읽어들입니다. 별도의 설정은 필요하지 않습니다.
파일을 텍스트로 업로드
PDF, 코드 파일 또는 스프레드시트를 AI에게 전달하고 단순히 _"이거 읽어줘"_라고 말하고 싶었던 적이 있나요? Upload as Text가 바로 그 기능을 수행합니다.
파일을 첨부하면 LibreChat이 파일에서 텍스트를 추출하여 대화창에 전체 내용을 바로 붙여넣습니다. 그러면 AI가 해당 내용을 처음부터 끝까지 읽을 수 있습니다. 플러그인이나 벡터 데이터베이스, 추가적인 서비스 설정이 필요 없습니다. 즉시 바로 사용할 수 있습니다.
별도의 설정이 필요하지 않습니다
Upload as Text는 모든 LibreChat 인스턴스에서 즉시 작동합니다. 이 기능은 내장된 텍스트 파싱을 사용하므로, 시작하기 위해 OCR, RAG 파이프라인 또는 외부 서비스가 필요하지 않습니다.
사용 방법
첨부 아이콘을 클릭하세요
채팅 입력창에서 클립(📎) 아이콘을 클릭하세요.
"Upload as Text" 선택
드롭다운 메뉴에서 Upload as Text를 선택하세요. 이는 LibreChat이 파일을 원시 첨부 파일로 전달하는 대신 파일 내용을 읽도록 지시합니다.
파일 선택
기기에서 파일을 선택하세요. LibreChat이 텍스트를 추출하여 메시지에 직접 삽입합니다.
질문하기
평소처럼 프롬프트를 입력하세요. 이제 AI가 파일의 전체 텍스트를 컨텍스트로 가지며, 파일의 어떤 부분이든 참조할 수 있습니다.
옵션이 보이지 않나요?
"Upload as Text"가 나타나지 않는다면, 관리자가 context 기능을 비활성화했을 수 있습니다. 이 기능은 기본적으로 켜져 있지만, 기능 목록이 사용자 지정된 경우 context를 명시적으로 포함해야 합니다. 아래의 구성 섹션을 참조하세요.
내부 작동 원리
이런 방식으로 파일을 업로드하면, LibreChat은 단순히 원시 바이트를 프롬프트에 덤프하지 않습니다. 깔끔하고 읽기 쉬운 텍스트를 추출하기 위해 처리 파이프라인을 거칩니다:
- MIME type 감지 — LibreChat은 업로드한 파일의 MIME type을 검사하여 파일의 종류(PDF, 이미지, 오디오, 소스 코드 등)를 확인합니다.
- 메서드 선택 — 파일 유형과 사용 가능한 서비스에 따라 다음 우선순위에 맞춰 최적의 추출 메서드를 선택합니다:
| 우선순위 | 방식 | 사용 시점 |
|---|---|---|
| 1순위 | OCR | 파일이 이미지 또는 스캔된 문서이고, 그리고 OCR이 구성된 경우 |
| 2순위 | STT (Speech-to-Text) | 파일이 오디오이고, 그리고 STT가 구성된 경우 |
| 3순위 | Text parsing | 파일이 알려진 텍스트 MIME 유형과 일치하는 경우 |
| 4순위 | Fallback | 위 항목 중 일치하는 것이 없는 경우 — 어쨌든 텍스트 파싱을 시도함 |
OCR이 구성된 인스턴스의 .pdf 파일:
→ OCR이 작동합니다. 스캔된 문서나 복잡한 레이아웃에 매우 유용합니다.
기본 인스턴스에서의 .pdf (OCR 없음):
→ 텍스트 파싱이 처리합니다. 디지털 방식으로 생성된 PDF에서 잘 작동합니다.
.py Python 파일:
→ 텍스트 파싱으로 바로 이동합니다. 소스 코드는 이미 텍스트이므로 변환이 필요하지 않습니다.
STT가 구성된 인스턴스의 .mp3 파일:
→ Speech-to-Text가 이를 대화를 위한 텍스트로 변환합니다.
OCR이 구성되지 않은 .png 스크린샷:
→ 텍스트 파싱으로 대체됩니다(결과가 제한적임 — 이미지에 대한 OCR 설정을 고려하세요).
- 토큰 잘림(Token truncation) — 추출된 텍스트는 모델의 컨텍스트 윈도우를 초과하지 않도록
fileTokenLimit(기본값: 100,000 토큰)에 맞춰 잘립니다. - Prompt injection — 해당 텍스트는 사용자의 메시지와 함께 대화 컨텍스트에 포함됩니다.
지원되는 파일 형식
이들은 직접 파싱되므로 이미 텍스트 상태이며, 별도의 변환이 필요하지 않습니다.
- 일반 텍스트(
.txt), 마크다운(.md), CSV, JSON, XML, HTML, CSS - 프로그래밍 언어 — Python, JavaScript, TypeScript, Java, C#, PHP, Ruby, Go, Rust, Kotlin, Swift, Scala, Perl, Lua
- 설정 파일 — YAML, TOML, INI
- Shell 스크립트, SQL 파일
텍스트 파싱은 이를 기본적으로 처리합니다. OCR이 구성되어 있으면, 복잡한 레이아웃에서 더 나은 정확도를 위해 OCR이 이를 대신합니다.
- PDF — 디지털 및 스캔본 (스캔된 PDF는 OCR을 사용하면 더 효과적입니다)
- Word —
.docx,.doc - PowerPoint —
.pptx,.ppt - Excel —
.xlsx,.xls - EPUB 도서
이미지는 유용한 텍스트를 생성하기 위해 OCR이 필요합니다. OCR이 없으면 결과가 좋지 않을 것입니다.
- JPEG, PNG, GIF, WebP
- HEIC, HEIF (Apple 형식)
- 스크린샷, 문서 사진, 스캔된 페이지
오디오 파일은 STT가 구성되어 있어야 합니다. 대체 수단은 없으며, 오디오를 "텍스트로 파싱"할 수는 없습니다.
- MP3, WAV, OGG, FLAC
- M4A, WebM
- 음성 녹음, 팟캐스트 클립
텍스트로 업로드 vs. 기타 업로드 옵션
LibreChat에는 파일을 업로드하는 세 가지 방법이 있습니다. 각 방법은 다르게 작동하며 상황에 따라 적합한 방식이 다릅니다:
텍스트로 업로드
전체 파일 내용을 추출하여 대화창에 삽입합니다. 계약서, 코드 파일, 기사 등 AI가 모든 내용을 읽어야 하는 작은 파일에 가장 적합합니다. 모든 모델에서 작동하며, 추가 서비스가 필요하지 않습니다.
파일 검색(RAG)을 위한 업로드
파일을 벡터 데이터베이스에 인덱싱하고 질문할 때 관련 청크만 검색합니다. 모든 내용을 컨텍스트에 넣으면 토큰이 낭비되는 대용량 파일이나 파일 모음에 더 적합합니다. RAG API가 필요합니다.
표준 업로드
파일을 모델에 직접 전달합니다. 이미지 분석을 수행하는 비전 모델이나 스크립트를 실행하는 코드 인터프리터에 사용됩니다. 텍스트 추출은 수행되지 않습니다.
빠른 결정 가이드:
| 상황 | 최적의 옵션 |
|---|---|
| "이 5페이지짜리 계약서를 읽고 요약해줘" | 텍스트로 업로드 |
| "PDF 50개가 있는데, 가격 정보가 언급된 부분을 찾아줘" | 파일 검색 (RAG) |
| "이 스크린샷에 무엇이 있나요?" (비전 모델) | 표준 업로드 |
| "이 파이썬 스크립트를 실행해줘" (코드 인터프리터) | 표준 업로드 |
| "이 코드 파일에서 버그를 검토해줘" | 텍스트로 업로드 |
| "우리 회사 문서들을 검색해줘" | 파일 검색 (RAG) |
context 기능
내부적으로, '텍스트로 업로드(Upload as Text)'는 context 기능에 의해 구동됩니다. 이것이 채팅 UI에 해당 기능이 표시될지 여부를 제어합니다.
context 기능은 기본적으로 활성화되어 있습니다. 관리자가 기능 목록을 사용자 지정하다가 실수로 제외한 경우에만 이 설정을 수정하면 됩니다.
endpoints:
agents:
capabilities:
- "context" # This is what enables "Upload as Text"동일한 context 기능은 에이전트 파일 컨텍스트(Agent File Context)(에이전트 빌더를 통해 파일을 업로드하여 에이전트의 시스템 지침에 텍스트를 임베딩하는 기능)도 지원합니다. 차이점은 텍스트가 최종적으로 도달하는 _위치_입니다:
| 텍스트로 업로드 | 에이전트 파일 컨텍스트 | |
|---|---|---|
| 위치 | 채팅 입력창 (모든 대화) | 에이전트 빌더 패널 |
| 범위 | 현재 대화에만 국한 | 에이전트 지침에 영구적으로 유지 |
| 사용 사례 | 일회성 문서 질문 | 내장된 지식을 갖춘 전문 에이전트 구축 |
토큰 제한 및 잘림(Truncation)
파일이 모델의 컨텍스트 윈도우에 들어갈 수 없을 정도로 너무 길면, LibreChat은 제한 범위 내에 머물도록 추출된 텍스트를 자릅니다. 이는 자동으로 수행되므로 사용자가 신경 쓸 필요는 없지만, 작동 방식을 알아두면 좋습니다.
fileConfig:
fileTokenLimit: 100000 # Default: 100,000 tokens잘림은 콘텐츠 손실을 의미합니다
파일이 제한을 초과하면 텍스트의 끝부분이 잘립니다. 답변이 불완전하게 나오는 경우, 이것이 원인일 수 있습니다. fileTokenLimit를 늘릴 수 있지만, 값이 클수록 메시지당 더 많은 토큰을 사용하게 되며, 이는 비용을 증가시키고 모델 자체의 컨텍스트 제한에 도달할 수 있다는 점을 유념하세요.
경험 법칙:
- 100k 토큰 ≈ 300페이지 분량의 책 (대부분의 사용 사례에 충분함)
- 매우 큰 파일을 다루는 경우, 모든 내용을 컨텍스트에 채워 넣는 대신 관련 섹션만 검색하는 File Search (RAG) 사용을 고려해 보세요.
선택 사항: OCR을 통한 추출 성능 향상
텍스트 파싱은 디지털로 생성된 문서(Word에서 저장된 PDF, 코드 파일, 일반 텍스트)에서는 잘 작동합니다. 하지만 스캔한 문서, 페이지 사진 또는 텍스트가 포함된 이미지를 업로드하는 경우, 내장 파서로는 좋은 결과를 얻기 어렵습니다.
바로 그 지점에서 OCR이 필요합니다. 설정이 완료되면 LibreChat은 OCR의 이점을 누릴 수 있는 파일 형식에 대해 자동으로 OCR을 사용합니다. 사용자는 별도로 수행해야 할 작업이 없습니다.
파일 처리 구성 참조
이 섹션은 어떤 파일 형식이 어떤 방식으로 처리될지 제어하려는 관리자를 위한 것입니다. 기본 설정으로도 충분히 잘 작동하므로, 동작을 세밀하게 조정하려는 경우에만 이 설정을 변경하면 됩니다.
문제 해결
관련 항목
- OCR for Documents — 이미지 및 스캔 문서를 위한 광학 문자 인식(OCR) 설정
- RAG API (Chat with Files) — 대규모 문서 모음에 대한 의미론적 검색
- Agents — File Context — 에이전트의 시스템 지침에 파일 내용을 임베드합니다.
- File Config 참조 — 파일 처리를 위한 전체 YAML 스키마
이 가이드는 어떤가요?