同一份文档,为什么每个 AI 都要再上传一遍?
您上传的文件留在您上传的那个助理里,下一个助理看不到它。这里讲清楚长文档到底会经历 什么、“personal RAG”是什么意思,以及什么时候直接上传到对话里仍然是更好的做法。
简短的回答
上传的文件会留在您放它的地方。 每个助理都把上传的东西保存在自己的服务里,彼此不会 去读对方的。您把一份报告加到其中一个,对下一个助理来说就跟从来没加过一样。
于是文档跟着工具走,而不是跟着事情走。换一个助理,或者再添一个编程工具,就又多出一个想要同一份 文件的地方。
上传一份长文档时,实际发生了什么
助理会做两件事之一:把整份文档读进对话,或者在文档太大时,只去找它需要的那部分。
整份读进去的时候,这份长度会在每一次新对话里重新进来一遍。 上一次问过的内容不会带 过来。隔三天再回来看,它就被读三次。这份长度同时也是您付出的成本,而最先能感觉到的地方是编程工具—— 在那里,一天是一连串新会话,而不是一场长对话。
一旦助理转成去找,它就不再把文档当成一个整体来看。 它取出跟您问题相符的段落,然后 基于那些段落工作。这个切换按它自己的判断发生,而且不会告诉您现在是哪一种。
两种都不是错的行为——它们是对一份装不下的文档给出的两个合理答案。要紧的是从第二种里推出来的事情: 超过一定体量,去找这件事其实已经在发生了。 悬而未决的问题从来不是要不要用检索,而是 这份检索是谁的,以及它会不会跟着您走。
“personal RAG”是答案吗
它是对已经在运转的东西的一种描述,而不是您必须开工的项目。
RAG——retrieval-augmented generation——指的是先找到相关的文字,让模型依据那些文字来写答案, 而不是只凭它本来就有的东西。 当被找出来的文字是您自己的文档时,大家就把它叫作 personal RAG。
您可以自己搭一套,如果您想把整套都自己跑起来,也有一条走熟了的路。但搭出来这件事,回答的是另一个 问题,不是让这一切开始的那个问题。问题从来不是检索怎么工作,而是这份文档放在哪里——因为决定 下一个助理能不能用它的,正是这一点。
必须放在助理之外的那部分
要让一份文档在任何助理里都能用,它就得放在一个不属于其中任何一个的地方。 这样的存放处叫作知识层——把适用于笔记和决定的同一个 想法,用在文件上。
对一份文档来说,变的是副本的数量。您加一次。此后,您连接的每个助理都到同一个地方去找,换工具也 不意味着要再加一遍文件。
什么时候就该直接上传到对话里
如果这份文档您只打算用一次,那就上传到对话里,然后继续做事。 把它放进某个长期的 地方,是收不回来的功夫。
- 一次性的分析。“把这份合同里有风险的条款挑出来。”您今天想要的是关于这个文件的 一个答案,之后就不再需要它了。
- 牵涉计算的事。 整张表的合计、一张图、重新排一遍格式——那是在文件上跑代码的工具 该做的事,不是存放处该做的。
- 把一批资料读透。 把一摞论文放在一起、彼此对照着读,是专门为此打造的工具在做的 事。不同的事,不同的形状。
把文档放在外面的理由,是后来才浮现的——当您发现同一个文件被传了第二遍、第三遍的时候。
实际用起来是这样
您把文档加进去一次,之后就只管问。 文件不再是您在工具之间搬来搬去的东西,而变成 工具伸手去取的东西。
Contextick 就是这样的存放处之一。您从仪表板上传一个文件,它会被转换成文字并保存下来,您连接过的 任何助理之后都能找到它。上传是怎么运作的,看这里。
FAQ
我把文件传到 ChatGPT,Claude 也能读到吗?
不能。每个助理都把上传的东西保存在自己的服务里,彼此不会去读对方的,所以这个文件要么分别加到每一个里,要么放在两者之外的某个地方。
retrieval-augmented generation 是什么?
先找到相关的文字,让模型依据那些文字来写答案,而不是只凭它本来就有的东西。当被找出来的文字是您自己的文档时,大家就把它叫作 personal RAG。
长文档为什么每次用都更费?
因为它被读进对话之后,这份长度会在每一次新对话里重新进来一遍。上一次问过的内容不会带过来,所以您回来几次,同一份文档就被读几次。
想让任何 AI 都能用,这份文档该放在哪里?
放在不属于任何单个助理的地方。位于它们之外的存放处可以分别连到每一个,所以文档只加一次,而不是每个工具各加一次。