MineContext icon indicating copy to clipboard operation
MineContext copied to clipboard

[FEATURE]: 关于文件上传功能,想要实现的效果是什么?

Open pengjunfeng11 opened this issue 2 months ago • 16 comments

📝 Feature Description [Please make everyone to understand it]

给用户一个上传的组件,用户自己丢进去一些文件吗?我希望能够完成一些工作,看看有没有什么需要帮忙的?

👍 What problem does this feature solve

No response

👾 What does the proposed API look like

No response

🚑 Any additional information

No response

pengjunfeng11 avatar Oct 22 '25 17:10 pengjunfeng11

1 文件导入预期会有两种方式 1.1 应用内的导入,具体包括 手动的导入文件,或者设置捕获的文件夹,定时扫描导入新文档 1.2 应用外的导入,类似浏览器插件,可以一键导入。也可以兼容 obsidian 等应用,把笔记导入 2 文件处理 2.1 类似pdf、md、doc 这类复杂的文档解析会有混合方案,文本通过 大模型 语义切块,图表通过vlm 解析转文字后再结合语义 切块 2.2 其他的excel 类会以表格的内存做切块 2.3 切块向量化,方便后续的语义匹配。 2.4 后续消费的策略有 编辑文本时的自动补全,以及类似知识库中的问答检索等等

目前我正在开发第 2 部分,近期会commit,大家可以基于commit 做优化改造。第1部分可以先开发起来,@KashiwaByte101 可以补充下,以及是否有 ui 设计

qin-ctx avatar Oct 23 '25 03:10 qin-ctx

按途径可以简单分为3类:

  1. 直接上传文件,进行解析处理等变成Context
  2. 浏览器插件,对于Chat对话,网页信息进行捕获,类似稍后读的逻辑
  3. 第三方应用集成,面向Obsidian,Notion等应用,进行笔记/数据导入

KashiwaByte101 avatar Oct 23 '25 11:10 KashiwaByte101

目前已有的capture功能,对文件上传的支持并不友好。如果要做的话,会有大的改动,包括之前的一些约定好的方法,实际上也都是基于“定时扫描”这一概念来完成的。对用户自主发起的文件上传,可能还要新定义很多东西。

我这边可以负责第一部分,文件上传解析,但如何将重复的部分抽离出来方便后续新增可能是一个需要讨论的问题

pengjunfeng11 avatar Oct 23 '25 17:10 pengjunfeng11

例如,目前会有统一的 start 和 stop方法,用来启动线程去监听上下文的变动。但对于用户自主上传文件的场景,这一些方法是否还有存在的必要?是否要抽象出其他的方法?

pengjunfeng11 avatar Oct 23 '25 17:10 pengjunfeng11

例如,目前会有统一的 start 和 stop方法,用来启动线程去监听上下文的变动。但对于用户自主上传文件的场景,这一些方法是否还有存在的必要?是否要抽象出其他的方法?

这仅针对“用户手动给出信息”的场景。对于检测文件夹信息变动,这些方法仍然有必要存在

pengjunfeng11 avatar Oct 23 '25 17:10 pengjunfeng11

我的大概想法是:用户上传文件时,将会手动触发类似于vault_document_monitor.py 中的_create_context_from_event方法,并且将上传的上下文增加到events中,然后创建上下文。对于start和stop,由于不会程序主动检测,索性就直接返回True和False,不做额外处理。_capture_impl中的能力不变,依旧是检测context。不知道这样是否可行?

处理完上传后就是process,chunk是必须的,先做抽取,再chunk。这样基本能满足需求。考虑到有图片等信息,你们希望怎么处理?vllm的直接提取在一些复杂场景下不一定适用,例如需要根据图片来理解文字(例如中学生作文题总是会给出一个有语义信息的图片。)还是说这类情况暂时不考虑?

在process这一步中,要不要上knowledge graph呢?

剩下的无非是怎么用上生成后的context,对于这个文件上传的场景,你们希望该怎么用?参照vault_document类似的方案来做么?

pengjunfeng11 avatar Oct 23 '25 18:10 pengjunfeng11

我们会有专门的一个新模块来处理文件上传这种场景的,就是上传文件然后解析切片,然后进行Context处理

KashiwaByte101 avatar Oct 26 '25 07:10 KashiwaByte101

没有理解,这是想做成知识库吗,还是什么?

810123 avatar Oct 26 '25 13:10 810123

Like this,上传会包括网页链接,文件上传和第三方应用导入Image

KashiwaByte101 avatar Oct 26 '25 14:10 KashiwaByte101

我们会有专门的一个新模块来处理文件上传这种场景的,就是上传文件然后解析切片,然后进行Context处理

那么是不是应该先把这部分开发出来呢?我可以后续参与一部分的工作,感觉是很有意思的项目

pengjunfeng11 avatar Oct 27 '25 05:10 pengjunfeng11

是的我们会在后续开发出来,本周主要会先修bug,bug太多了

KashiwaByte101 avatar Oct 27 '25 09:10 KashiwaByte101

我们会有专门的一个新模块来处理文件上传这种场景的,就是上传文件然后解析切片,然后进行Context处理

那么是不是应该先把这部分开发出来呢?我可以后续参与一部分的工作,感觉是很有意思的项目

here #167

qin-ctx avatar Oct 27 '25 09:10 qin-ctx

我们会有专门的一个新模块来处理文件上传这种场景的,就是上传文件然后解析切片,然后进行Context处理

那么是不是应该先把这部分开发出来呢?我可以后续参与一部分的工作,感觉是很有意思的项目

here #167

👌赞!

pengjunfeng11 avatar Oct 27 '25 10:10 pengjunfeng11

跟进一下,我看到commit里面基本上都做完了文件解析的操作,那我应该负责什么比较好?目前我在尝试定时获取指定文件夹内的文件并组装成context。这个方向OK么?还是你们也有人在做?

pengjunfeng11 avatar Oct 29 '25 16:10 pengjunfeng11

跟进一下,我看到commit里面基本上都做完了文件解析的操作,那我应该负责什么比较好?目前我在尝试定时获取指定文件夹内的文件并组装成context。这个方向OK么?还是你们也有人在做?

可以的,也可以设计下怎么把外部的文档或者浏览器网页转pdf导入进来。现在我还没有在做这部分。

qin-ctx avatar Nov 10 '25 11:11 qin-ctx

跟进一下,我看到commit里面基本上都做完了文件解析的操作,那我应该负责什么比较好?目前我在尝试定时获取指定文件夹内的文件并组装成context。这个方向OK么?还是你们也有人在做?

可以的,也可以设计下怎么把外部的文档或者浏览器网页转pdf导入进来。现在我还没有在做这部分。

我提交了pr,是初版本的。只观察一下大致风格以及列出的todo项即可,目前只是草稿状态。#241 主要是希望看看有没有需要修正的问题,以及方向上大的偏差

pengjunfeng11 avatar Nov 11 '25 03:11 pengjunfeng11