Skip to main content
LibreChat is joining ClickHouse to power the open-source Agentic Data Stack 🎉 Learn more
LibreChat

将文件作为文本上传

将任何文件拖入聊天窗口,即可让 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 不仅仅是将原始字节转储到提示词中。它会通过一个处理流水线来提取清晰、可读的文本:

  1. MIME type detection — LibreChat 通过检查文件的 MIME 类型来识别您上传的文件种类(PDF、图像、音频、源代码等)。
  2. 方法选择 — 根据文件类型和可用的服务,它会使用以下优先级选择最佳提取方法:
优先级方法使用场景
第一OCR文件为图像或扫描文档,_且_已配置 OCR
第二STT (语音转文字)文件为音频,_且_已配置 STT
第三文本解析文件匹配已知的文本 MIME 类型
第四回退以上均不匹配 — 仍尝试进行文本解析

在配置了 OCR 的实例上使用 .pdf → OCR 将会启动。非常适合扫描文档和复杂布局。

在默认实例上的 .pdf 文件(无 OCR): → 由文本解析处理。对于数字生成的 PDF 文件效果良好。

一个 .py Python 文件: → 直接进行文本解析。源代码本身就是文本——无需转换。

在配置了 STT 的实例上使用 .mp3 文件: → Speech-to-Text 会将其转录为对话文本。

一张未配置 OCR 的 .png 截图: → 回退到文本解析(结果有限 —— 请考虑为图像设置 OCR)。

  1. Token truncation — 提取的文本会被截断至 fileTokenLimit(默认值:100,000 tokens),以防止超出模型的上下文窗口。
  2. 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 有三种上传文件的方式。每种方式的工作原理各不相同,适用于不同的场景:

快速决策指南:

情况最佳选项
"阅读这份 5 页的合同并进行总结"作为文本上传
"我有 50 份 PDF,找出其中提到定价的内容"文件搜索 (RAG)
"这张截图里有什么?" (视觉模型)标准上传
"运行这个 Python 脚本" (代码解释器)标准上传
"检查这个代码文件中的错误"作为文本上传
"搜索我们的公司文档"文件搜索 (RAG)

context 功能

在底层,Upload as Text 由 context 功能驱动。这决定了该功能是否会在您的聊天界面中显示。

context 功能默认处于启用状态。只有当您的管理员自定义了功能列表并意外将其遗漏时,您才需要对此进行调整。

librechat.yaml
endpoints:
  agents:
    capabilities:
      - "context"  # This is what enables "Upload as Text"

相同的 context 功能也支持 Agent File Context(通过 Agent Builder 上传文件,将文本嵌入到 Agent 的系统指令中)。不同之处在于文本最终存储的_位置_:

上传为文本Agent 文件上下文
位置聊天输入框(任何对话)Agent 构建器面板
范围仅限当前对话在 Agent 的指令中持久存在
用例一次性文档提问构建内置知识的专用 Agent

Token 限制与截断

当文件过长而无法放入模型的上下文窗口时,LibreChat 会截断提取的文本以保持在限制范围内。此过程会自动发生——您无需担心,但了解其工作原理很有帮助。

librechat.yaml
fileConfig:
  fileTokenLimit: 100000  # Default: 100,000 tokens

截断意味着内容丢失

如果您的文件超过了限制,文本会在末尾被截断。如果您收到的回答不完整,原因可能就在于此。您可以增加 fileTokenLimit,但请记住,更大的数值意味着每条消息会消耗更多的 token——这会增加成本,并可能达到模型自身的上下文限制。

经验法则:

  • 100k tokens ≈ 一本 300 页的书(足以满足大多数使用场景)
  • 如果您正在处理非常大的文件,请考虑使用 File Search (RAG) —— 它只会检索相关部分,而不是将所有内容都塞入上下文。

可选:使用 OCR 增强提取效果

文本解析对于数字创建的文档(从 Word 保存的 PDF、代码文件、纯文本)效果良好。但如果您上传的是扫描文档、页面照片或带有文字的图像,内置解析器的效果将不尽如人意。

这就是 OCR 发挥作用的地方。配置完成后,LibreChat 会自动对适用的文件类型使用 OCR——作为用户,你无需进行任何额外操作。


文件处理配置参考

本节适用于希望控制哪些文件类型由哪种方法处理的管理员。默认设置已经足够好——只有在您需要微调行为时才需要修改此部分。


故障排除


这篇指南怎么样?