将文件作为文本上传
将任何文件拖入聊天窗口,即可让 LibreChat 读取——无需任何设置。
将文件作为文本上传
有没有想过把 PDF、代码文件或电子表格交给 AI,然后直接说一句_“阅读这个”_?这正是 Upload as Text 的功能所在。
您上传一个文件,LibreChat 会从中提取文本,并将全部内容直接粘贴到您的对话中。AI 随后即可阅读其中的每一个字——无需插件、无需向量数据库,也无需配置额外的服务。它开箱即用。
无需任何设置
“Upload as Text”功能可在任何 LibreChat 实例上立即使用。它使用内置的文本解析功能——你无需 OCR、RAG 管道或任何外部服务即可开始使用。
如何使用
点击附件图标
在聊天输入栏中,点击回形针 (📎) 图标。
选择“作为文本上传”
从下拉菜单中,选择 Upload as Text。这会告诉 LibreChat 读取文件内容,而不是将其作为原始附件传递。
选择您的文件
从您的设备中选择文件。LibreChat 将提取其中的文本并将其直接嵌入到您的消息中。
提出您的问题
像往常一样输入您的提示词。AI 现在已将您文件的全文纳入上下文,并可以引用其中的任何部分。
没看到该选项?
如果“Upload as Text”没有出现,可能是因为您的管理员禁用了 context 功能。该功能默认开启,但如果自定义了功能列表,则需要显式包含 context。请参阅下方的 configuration section。
底层工作原理
当您通过这种方式上传文件时,LibreChat 不仅仅是将原始字节转储到提示词中。它会通过一个处理流水线来提取清晰、可读的文本:
- MIME type detection — LibreChat 通过检查文件的 MIME 类型来识别您上传的文件种类(PDF、图像、音频、源代码等)。
- 方法选择 — 根据文件类型和可用的服务,它会使用以下优先级选择最佳提取方法:
| 优先级 | 方法 | 使用场景 |
|---|---|---|
| 第一 | OCR | 文件为图像或扫描文档,_且_已配置 OCR |
| 第二 | STT (语音转文字) | 文件为音频,_且_已配置 STT |
| 第三 | 文本解析 | 文件匹配已知的文本 MIME 类型 |
| 第四 | 回退 | 以上均不匹配 — 仍尝试进行文本解析 |
在配置了 OCR 的实例上使用 .pdf:
→ OCR 将会启动。非常适合扫描文档和复杂布局。
在默认实例上的 .pdf 文件(无 OCR):
→ 由文本解析处理。对于数字生成的 PDF 文件效果良好。
一个 .py Python 文件:
→ 直接进行文本解析。源代码本身就是文本——无需转换。
在配置了 STT 的实例上使用 .mp3 文件:
→ Speech-to-Text 会将其转录为对话文本。
一张未配置 OCR 的 .png 截图:
→ 回退到文本解析(结果有限 —— 请考虑为图像设置 OCR)。
- Token truncation — 提取的文本会被截断至
fileTokenLimit(默认值:100,000 tokens),以防止超出模型的上下文窗口。 - Prompt injection — 该文本会被包含在对话上下文中,与您的消息并列。
支持哪些文件
这些内容会被直接解析——它们本身就是文本,因此无需转换。
- 纯文本 (
.txt)、Markdown (.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,它将接管处理过程,以在复杂布局上获得更高的准确性。
- PDF — 数字版和扫描版(扫描版 PDF 可通过 OCR 获得更好的效果)
- Word —
.docx,.doc - PowerPoint —
.pptx,.ppt - Excel —
.xlsx,.xls - EPUB 电子书
图像需要 OCR 才能生成有用的文本。如果没有它,结果将会很差。
- JPEG, PNG, GIF, WebP
- HEIC, HEIF (Apple 格式)
- 截图、文档照片、扫描页面
音频文件需要配置 STT。没有回退机制——音频无法被“文本解析”。
- MP3, WAV, OGG, FLAC
- M4A, WebM
- 语音录音,播客片段
作为文本上传与其它上传选项的对比
LibreChat 有三种上传文件的方式。每种方式的工作原理各不相同,适用于不同的场景:
以文本形式上传
提取完整文件内容并将其放入对话中。最适合您希望 AI 阅读所有内容的小型文件——例如合同、代码文件、文章。适用于所有模型,无需额外服务。
用于文件搜索 (RAG) 的上传
将文件索引到向量数据库中,并在您提问时仅检索相关的数据块。对于大型文件或文件集合,这种方式更为适用,因为将所有内容放入上下文会浪费 token。需要 RAG API 支持。
标准上传
直接将文件传递给模型——用于分析图像的视觉模型,或运行脚本的代码解释器。不会进行文本提取。
快速决策指南:
| 情况 | 最佳选项 |
|---|---|
| "阅读这份 5 页的合同并进行总结" | 作为文本上传 |
| "我有 50 份 PDF,找出其中提到定价的内容" | 文件搜索 (RAG) |
| "这张截图里有什么?" (视觉模型) | 标准上传 |
| "运行这个 Python 脚本" (代码解释器) | 标准上传 |
| "检查这个代码文件中的错误" | 作为文本上传 |
| "搜索我们的公司文档" | 文件搜索 (RAG) |
context 功能
在底层,Upload as Text 由 context 功能驱动。这决定了该功能是否会在您的聊天界面中显示。
context 功能默认处于启用状态。只有当您的管理员自定义了功能列表并意外将其遗漏时,您才需要对此进行调整。
endpoints:
agents:
capabilities:
- "context" # This is what enables "Upload as Text"相同的 context 功能也支持 Agent File Context(通过 Agent Builder 上传文件,将文本嵌入到 Agent 的系统指令中)。不同之处在于文本最终存储的_位置_:
| 上传为文本 | Agent 文件上下文 | |
|---|---|---|
| 位置 | 聊天输入框(任何对话) | Agent 构建器面板 |
| 范围 | 仅限当前对话 | 在 Agent 的指令中持久存在 |
| 用例 | 一次性文档提问 | 构建内置知识的专用 Agent |
Token 限制与截断
当文件过长而无法放入模型的上下文窗口时,LibreChat 会截断提取的文本以保持在限制范围内。此过程会自动发生——您无需担心,但了解其工作原理很有帮助。
fileConfig:
fileTokenLimit: 100000 # Default: 100,000 tokens截断意味着内容丢失
如果您的文件超过了限制,文本会在末尾被截断。如果您收到的回答不完整,原因可能就在于此。您可以增加 fileTokenLimit,但请记住,更大的数值意味着每条消息会消耗更多的 token——这会增加成本,并可能达到模型自身的上下文限制。
经验法则:
- 100k tokens ≈ 一本 300 页的书(足以满足大多数使用场景)
- 如果您正在处理非常大的文件,请考虑使用 File Search (RAG) —— 它只会检索相关部分,而不是将所有内容都塞入上下文。
可选:使用 OCR 增强提取效果
文本解析对于数字创建的文档(从 Word 保存的 PDF、代码文件、纯文本)效果良好。但如果您上传的是扫描文档、页面照片或带有文字的图像,内置解析器的效果将不尽如人意。
这就是 OCR 发挥作用的地方。配置完成后,LibreChat 会自动对适用的文件类型使用 OCR——作为用户,你无需进行任何额外操作。
文件处理配置参考
本节适用于希望控制哪些文件类型由哪种方法处理的管理员。默认设置已经足够好——只有在您需要微调行为时才需要修改此部分。
故障排除
相关内容
- OCR for Documents — 设置用于图像和扫描件的光学字符识别
- RAG API (Chat with Files) — 对大型文档集合进行语义搜索
- Agents — File Context — 将文件内容嵌入到 agent 的系统指令中
- File Config reference — 文件处理的完整 YAML 架构
这篇指南怎么样?