ChatGPT Enterprise 现已支持读取和理解提示词所附 PDF 文件中的视觉内容,如图像、图表、示意图等。用户上传 PDF 后,ChatGPT 可以解读文件中的文本以及所有视觉元素。
详情请参阅:PDF 视觉检索常见问题。
ChatGPT Enterprise 支持通过多种方式上传文件:
本指南介绍 ChatGPT Enterprise 的各项功能如何根据文件类型、数量和大小处理文件,并探讨如何针对不同的文件处理需求改善输出结果。
概述
ChatGPT Enterprise 对不同类型文件的处理方式差别很大:从 PDF、演示文稿和 Word 文件等文本文档中提取文本,使用 Python 代码分析电子表格中的结构化数据,以及通过 GPT-Vision 描述图像文件。了解不同文件类型会触发哪种处理流程,是获得预期结果的关键。
对于文本文档,ChatGPT Enterprise 会将尽可能多的相关文本直接与提示词一同纳入上下文,并使用搜索系统获取额外信息。这种方式很适合回答具体问题。不过,在总结超大文档或比较多个大文件等复杂任务中,这种方式可能会力不从心。继续阅读,了解改善结果的方法。
按类型处理文件
ChatGPT Enterprise 主要通过三种方式处理文件:提取文本、使用代码进行分析,以及解读图像。文件类型决定了 ChatGPT Enterprise 采用哪种处理流程。
| 文本检索 | 代码解释器 | 图像处理 | 视觉检索 | |
|---|---|---|---|---|
| 文件类型示例 | pptx, docx, txt, md, json, xml, pdf* * 作为 GPT 知识或项目文件上传的 PDF | csv, xls, xlsx* *注意:代码解释器可以处理任何类型的文件,但 ChatGPT Enterprise 最常默认使用代码解释器(CI)处理的是电子表格 | jpg, png | pdf* * 用户提示词所附的 PDF |
| 处理方式 | 从文件中提取文本:部分文本会直接粘贴(“填充”)到上下文窗口中,其余文本则存储起来供搜索使用 | 代码解释器将文件交给 Python 处理 | 图像由多模态模型原生解读,但受已知限制的约束。 | 结合文本检索与图像处理。以数字方式提取文本,并由多模态模型原生解读视觉内容。 |
对于纯文本文件、图像文件或结构清晰的数据文件(例如 Excel 交易记录表),这种分类处理方式能够带来最佳效果。
但有些情况不太容易判断,例如:
非 PDF 文件中嵌入的图像不会被处理。要让这些图像也得到处理,请先将文件转换为 PDF,再上传。
ChatGPT Enterprise 始终会使用代码解释器处理电子表格,即使文件中包含大量文本也是如此。例如,如果你让 ChatGPT Enterprise 翻译一个含有 10 行文本的 CSV 文件,它会尝试使用 Python 库进行翻译,其准确性不如让模型直接生成译文。为减少这一问题的影响,可以尝试将电子表格导出为文本类格式(例如 PDF)。
同样,如果你上传的 JSON 文件中包含结构化的交易记录表,ChatGPT Enterprise 会将该文件当作纯文本来解读。如果你想分析 JSON 文件中的数据,请在提示词中指示模型使用代码解释器。
基于大小处理文件
ChatGPT Enterprise 使用的模型最大上下文窗口为 128k Token(约 200 页文本)。不过,并非所有 Token 都用于纳入上传文件中的文本。“填充”的 Token 数量因使用类型而异。
ChatGPT Enterprise 会“填充”一定量的文本,其余文本会发送到私有搜索索引(“向量存储”,这是一种用于高效存储和检索大量文本的数据库)。当你提问时,ChatGPT Enterprise 会引入已包含的文本,以及从私有搜索索引中检索到的相关片段。
如果你上传单个文档,ChatGPT Enterprise 会从文档开头开始纳入文本,直到达到其限制。如果你上传多个文档,ChatGPT Enterprise 会纳入每个文档的部分或全部内容。文档中的所有文本也会发送到私有搜索索引。
文本文档的上下文填充
此功能正在积极开发中。因此,以下详细信息可能会更改,恕不另行通知。
ChatGPT Enterprise 可在上下文窗口中处理来自上传文档的内容,上限为 11 万个 Token。如果上传的一份或多份文档合计少于 11 万个 Token,全部内容都会纳入上下文窗口。
如果单份文档超过 11 万个 Token,则仅纳入从文档开头算起的前 11 万个 Token。其余内容只会发送到私有搜索索引。
如果上传多份文档,且合计超过 11 万个 Token,ChatGPT Enterprise 会按以下流程均衡分配各文档在上下文窗口中的占比:
提取最多 5.5 万个 Token,将这一额度平均分配给各份上传的文档。
对于第一步中未被完整纳入的文档,根据各文档剩余的 Token 数量,按比例分配剩下的 5.5 万个 Token 额度。
其余 Token 只会发送到私有搜索索引。
你可以将文本文档中的文字复制到 OpenAI 分词器中,估算文档的 Token 数量。
多媒体 PDF 的上下文填充
当用户上传同时包含文本和图像的 PDF 时,视觉检索功能可让 ChatGPT 将这些图像与提取出的数字文本一并进行原生处理。针对多媒体 PDF,我们在标准上下文处理流程的基础上补充了以下步骤:
图像提取与嵌入:提取图像,并将其与相关的数字文本一同嵌入。
智能缩放:自动缩放图像,在保障信息质量与高效利用可用上下文窗口之间取得平衡。
当上传的 PDF 超过 11 万个 Token 的限制时,图像和文本都会被嵌入私有搜索索引。文本嵌入会引用相关图像,让 ChatGPT 能够根据用户查询检索出相匹配的文本与图像组合。随后,ChatGPT 会利用原生多模态能力处理检索到的图像。
多媒体 PDF 所需的 Token 数量很难准确估算。测试表明,约 350 页图文混排的内容就会用满 11 万个 Token 的上下文窗口。
基于模型类型的搜索策略
GPT 系列和 o 系列模型都支持文件上传,并使用相同的上下文填充和搜索嵌入逻辑。所有模型都会对私有搜索索引执行混合搜索,结合关键词和语义方法。在混合搜索中,模型会根据用户的提示生成搜索短语,私有搜索索引则据此检索相关文本和图像。
不过,这些模型在搜索超出上下文窗口的大型文档时方式有所不同:
GPT 系列模型
每个提示词仅进行一次搜索:GPT 系列模型针对每个用户提示词执行一次搜索。
适用场景:非常适合回答大量文档中包含的简单明确的问题。
查询示例:
“提前退休方面的人力资源政策是什么?”
“process_order 函数有什么作用?”
o 系列模型
每个提示词可进行多次搜索:针对每个用户提示词,可执行多次搜索(通常为 2~3 次),每次使用不同的搜索短语。搜索按顺序执行,模型可根据之前搜索到的信息调整搜索方法。
适用场景:更适合回答需要在大量文档中进行多次定向搜索的复杂问题。
查询示例:
“提前退休、育儿假和海外调动方面的人力资源政策是什么?”
“说明 process_order 函数的作用,列出该函数调用的所有方法,并简要介绍每个被调用的方法。”
尽管 o 系列模型有这些优势,但当一项查询需要三次以上的搜索时,仍可能难以应对。
改进文件搜索结果的提示
对于需要多次搜索的复杂问题,尝试使用 o 系列模型。
请记住,响应可能会因你上传文档的类型、数量和大小而异。
通常,加载更少且更聚焦的文档会带来更高的准确性。
将包含多个问题的主题拆分为单个问题:
如果你需要了解每个州的人力资源政策,请逐个询问。
如果你需要总结许多文档,请一次请求总结一个文档。如果该文档有数百页,请考虑将其拆分为更小的部分。
如果你提供的是多个摘要而不是完整文档,可以让 ChatGPT Enterprise 编写“摘要的摘要”。
如果你有一个 RFP 的 CSV(每一行都是一个不同的问题),请逐个提出这些问题,而不是只加载 CSV 并请求单个响应。
寻找审核模型响应的方法。示例 GPT 指令如下:
# 上下文
你是理解文档的专家。用户将附加一个文档并提出问题。他们需要能够将你的回答关联回你从文本中获取答案的确切位置。
# 指令
1. 根据用户附加的文档回答用户的问题,并使用以下提供的确切格式
# 格式
- 问题:{ 重复用户的问题 }
- 回答:{ 提供对用户问题的回答 }
来源:
- - 章节编号:{ 提供你从中提取答案的章节编号 }
- - 章节标题:{ 提供你从中提取答案的章节标题 }
- - 原文:{ 提供你从中提取答案的确切文本 }
# 规则
- 回答要清晰简洁
- 仅提供文档中给出的信息
- 如果你无法在文档中找到答案,请只回复“未找到信息。”