指向原文片段的引用
回答只有在能回到它背后的文本时才可核对。KnowNote 记录每个片段在抽取文本中的起止位置,所以引用指向那个片段,而不是整个文件。
从读者这一侧的引用
下面用一个真实的字符串代替你的文档 —— 也就是这个应用对自己的描述 —— 以及一段回答会为它带上的引用。它的偏移在构建本页时计算,与应用在导入时计算的完全一致。选择一个引用。
示例来源 · package.json 描述 ·179 字符 · 一个片段
A local-first knowledge note-taking tool that transforms your PDFs, documents, and web pages into a queryable, citable, and traceable personal knowledge base using RAG technology.
回答会带上的引用
选择一个引用,看看它指向的片段。
偏移从哪来
可追溯性不是加在回答这一步上的功能,它在更早的一步就决定了 —— 在文档被切分的时候。
- 片段大小
- ~500 字符小到一次引用只表达一件事,大到它自带上下文。在格式允许时,优先使用段落和句子边界,而不是硬切。
- 重叠
- 50 字符相邻片段共享一段尾部与头部,所以正好跨在边界上的句子,总能在其中一个片段里保持完整。
- 偏移
- 起止,以字符计记录在文档的抽取文本上,而不是渲染后的页面上。这就是引用所指向的东西。
- 保留的来源信息
- 文档、片段序号、偏移足以指出位置、引用它,并在你请求来源时把它展示在回答旁边。
片段为什么会重叠
固定长度的切分早晚会落在句子中间,而一个从句子中间开始的片段,既难引用,更不宜检索。重叠让每个边界被覆盖两次:横跨某个片段的句子,在相邻片段里是完整的。它多花几个字符,换来的是检索不再取决于切分恰好落在哪里。
引用不是什么
下面是这个机制现有的边界,而不是它可能被描述成的样子。
- 它引用的是检索到的内容
- 而不是模型断言的内容引用指向被放进模型面前的片段。如果模型写了这些片段并不支持的内容,引用仍然指向它们 —— 对引用诚实的读法是“这是回答所依据的材料”,而不是“这句话已被证明”。
- 偏移针对抽取文本
- 页面级,不是像素级KnowNote 记录片段在它从你的文档中抽取出的文本里的位置;对 PDF 而言这是页面感知的,但不是渲染后页面上的坐标。
- 转述不会有单独引用
- 这是有意的当模型跨多个片段重述一个想法时,回答会带上全部片段,而不是编造一个并不存在的单一跨度。