Skip to content

[Feature]: 通过filesystem模块提供现有远程文件协议的文件系统,达成与其他软件进行文件级交互 #1101

@weipeng1999

Description

@weipeng1999

Problem Statement

目前viking主要特色在于AGFS的分层检索。
但是由于向量同步需求的存在,导致AGFS中的文件无法被简单地“正确修改”。
如果可以通过某种方式将AGFS内的资源开放给其他专业软件,可以对AGFS中的资源进行精修,增强viking文件的可修正性。

Proposed Solution

通过基于filesystem模块的接口添加某种开放文件协议的端口(如ftp、webdav等),将viking服务器中的资源目录作为文件系统暴露给外部软件。这样就可以在调用时截留响应并作出正确处理(如自动删除向量、自动重命名链接等)。

Alternatives Considered

  • 直接实现操作系统原生的文件系统(如linux的fuse等):优势:少了一次网络调用;劣势:需要针对不同操作系统进行适配,实现难度高,且不能适配服务器场景
  • 实现某种“监听-同步”机制:优势:也许少了一些代码;劣势:不是实时修改,系统可能存在不一致时间
  • 使用锁(现在的机制):劣势:无法同时进行修改和作为上下文资源

Feature Area

Filesystem Operations

Use Case

将整个项目作为资源存储在viking提供的文件系统中,通过vscode修正项目的代码,这样本地项目就可以作为AI的上下文被其他项目使用
将obsidian笔记库存储在viking提供的文件系统中作为记忆,直接通过obsidian进行可视化编辑、资源导入等
通过文档管理软件,直接向viking直接添加文档作为资源
直接通过photoshop读取并修改知识库中的图片
。。。

Example API (Optional)

mount -t davfs http://127.0.0.1:<openviking port>/webdav/resources/<project> ./workspace
code ./workspace                   # 修改代码,自动对被修改代码重新生成L0/L1或者仅仅把相关内容失效
obsidian --vault=workspace  # 可视化编辑(可能需要某种方式处理双链?)
。。。

Additional Context

No response

Contribution

  • I am willing to contribute to implementing this feature

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    Status

    Backlog

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions