用户上传文档对话功能请求(汇总)
例行检查
- [x] 我已确认目前没有类似 features
- [x] 我已确认我已升级到最新版本
- [x] 我已完整查看过项目 README,已确定现有版本无法满足需求
- [x] 我理解并愿意跟进此 features,协助测试和提供反馈
- [x] 我理解并认可上述内容,并理解项目维护者精力有限,不遵循规则的 features 可能会被无视或直接关闭
功能描述
文档对话的功能。该功能主要包括以下三个场景:
- 总结文档内容
- 根据文档回答特定问题
- 根据文档提取特定信息
考虑到大模型有上下文长度上限,我们预设两种方案:
- 如果文档长度低于大模型输入上限的80%(或者用户设定,考虑token成本),则将整个文档作为上下文输入到对话内容中。
- 如果文档长度超过上限,则采用RAG的形式,创建临时知识库和向量。
- 当用户触发关键词“总结”或“摘要”时,系统会使用问答拆分的逻辑,按顺序进行问答拆分调用大模型进行总结,再调用大模型合并结果。
- 在其他情况下,系统将调用知识库问答的逻辑来处理用户的请求。
另外考虑到可能需要调用OCR,得兼容第三方OCR模块或者提供部署教程。(后续优化?) 应用场景
- 用户需要快速了解长篇PDF文档的主要内容,可以通过“总结”或“摘要”功能获取简要信息。
- 用户在阅读PDF文档时遇到特定问题,可以通过对话功能直接获取答案,而无需手动查找。
- 用户需要从PDF文档中提取特定信息,如数据、日期、关键事件等,可以通过对话功能快速获取。
相关示例
- 用户上传了一份50页的PDF研究报告,并输入“总结这份文档的主要内容”。系统检测到文档长度超过大模型输入上限,于是拆分问答,分段总结后合并结果,最终返回给用户一个简要的总结。
- 用户上传了一份5页的技术文档,并询问“这份文档中提到的主要技术有哪些?”。系统将整个文档作为上下文输入,直接返回相关技术的列表。
- 用户上传了一份50页合同,并询问“合同的签署日期是什么时候?”。系统通过知识库问答的逻辑,从文档中提取并返回签署日期。
还有什么其他的想法和建议可以汇总在这里
什么时候开发,很是需要此功能
多个知识库作为变量来选择是更好的
高级编排的全局变量希望做一个文件上传格式的,或者通过某种方式可以获取到该对话所有上传文件在线链接的
做一些项目文档写作场景的时候,会上传很多文档,从这些文档内容中组合去产出最终包含。目前尝试感觉为每个项目做知识库意义不大,还不如所有文档都上传,后面用AI判断具体写哪个模块的时候需要用到哪些文档,进一步去组装内容
在知识库的基础上,新增一个文件库的管理。允许将文件库中单个文件或文件夹引用到应用中也是一个思路,只是在对话框上传的话没有复用的效果,文件和对话应用可以是紧密耦合的,也可以是解耦合的
上传表格类文档,自定义接口解析文档成markdown类字符串,将这些表格信息的字符串作为已知信息,进行问答
我们也有创建临时知识库,挂载到会话中,会话结束,临时知识库就结束的需求。希望是以插件的形式,可以配置到工作流中的