AI代码库问答引擎Folda-Scan

简介

什么是 Folda-Scan ?

Folda-Scan 是一款革命性的智能项目问答工具, 完全在浏览器中本地运行 。它使用高级语义矢量化将您的代码库转变为对话伙伴,使代码理解和 AI 协作变得前所未有的简单和安全。其采用尖端的 Web 技术和 AI 算法构建,可为您提供流畅、高效和安全的本地代码交互体验。

主要亮点

  • 🛡️ 绝对隐私,本地运行:所有数据处理均在浏览器本地完成,代码永不离开您的计算机。
  • 💬 自然语言“聊”代码:像和同事聊天一样向代码库提问,精准获取答案。
  • 🧠 深层语义理解:超越关键词,理解代码的真实意图和复杂逻辑。
  • 🎯 信息秒级定位:模糊描述也能快速定位相关代码片段和文件。
  • 🤖 LLM 协作加速器:一键生成上下文感知的 Markdown,为 AI 助手(ChatGPT, Claude 等)提供完美“食粮”。
  • 💰 Token 成本骤降:优化 LLM 交互,显著降低 API 调用成本和等待时间。
  • 🛠️ 智能配置生成:辅助生成 Dockerfile 等项目配置文件。
  • 🚀 即时上手:清晰的项目运行指导,快速启动您的代码探索之旅。

工作原理

Folda-Scan 的魔法源于其创新的语义向量化引擎

  1. 本地扫描与索引:安全扫描您选定的本地项目,通过语义分析将代码转化为高维向量,在浏览器本地构建知识索引。
  2. **智能自然语言处理 (NLP)**:理解您的自然语言提问,并将其同样向量化。
  3. 精准语义匹配:在向量空间中高效匹配问题与代码内容,提供最相关的答案。 这一切都在保障您数据隐私的前提下,在浏览器中高效完成。

应用场景

  • 代码理解与学习:适用于新开发者快速了解复杂代码库,提升学习效果。
  • 技术文档生成:便于开发者在与代码互动时,生成清晰的技术文档。
  • 多项目管理:适合需要同时处理多个项目的开发者,快速查找所需信息。
  • AI 辅助开发:为开发者提供强大的工具,优化与 AI 的协作,减少 API 调用成本。

Folda-Scan 通过提供安全、高效的代码交互体验,帮助开发者更好地利用其代码资产。

如果不想自己安装,可以使用官方提供的演示站点( https://file.wen.bar

构建镜像

如果你不想自己构建,可以跳过,直接阅读下一章节

Dockerfile 没有采用多阶段构建,所以编译出来的镜像有点大

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# 使用 Node.js 作为基础镜像  
FROM node:18

# 设置工作目录
WORKDIR /usr/src/app

# 复制 package.json 和 package-lock.json
COPY package*.json ./

# 安装依赖
RUN npm install
# serve 不是项目依赖,需要单独安装:
RUN npm install serve

# 复制应用代码
COPY . .

# 构建应用
RUN npm run build

# 暴露端口
EXPOSE 3000

# 启动应用
# 使用 npx (如果 serve 未作为项目依赖安装,npx 会临时下载)
# CMD ["npx", "serve", "-s", "out", "-l", "3000"]
# 或者,如果 serve 是项目依赖 (通过 npm install 安装了)
CMD ["./node_modules/.bin/serve", "-s", "out", "-l", "3000"]

构建镜像和容器运行的基本命令如下👇

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 下载代码
git clone https://github.com/oldjs/web-code-agent.git

# 通过代理
git clone https://gh-proxy.com/github.com/oldjs/web-code-agent.git

# 进入目录
cd web-code-agent

# 构建镜像
docker build -t wbsu2003/web-code-agent:v1 .

# 运行容器
docker run -d \
--restart unless-stopped \
--name web-code-agent \
-p 3250:3000 \
wbsu2003/web-code-agent:v1

安装

在群晖上以 Docker 方式安装。

在注册表中搜索 wbsu2003 ,可能要翻到第二页才能找到 wbsu2003/web-code-agent,版本选择 latest

端口

本地端口不冲突就行,不确定的话可以用命令查一下

1
2
# 查看端口占用
netstat -tunlp | grep 端口号
本地端口 容器端口
3250 3000

命令行安装

如果你熟悉命令行,可能用 docker cli 更快捷

1
2
3
4
5
6
# 运行容器
docker run -d \
--restart unless-stopped \
--name web-code-agent \
-p 3250:3000 \
wbsu2003/web-code-agent

也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

1
2
3
4
5
6
7
8
9
version: '3'

services:
web-code-agent:
image: wbsu2003/web-code-agent
container_name: web-code-agent
restart: unless-stopped
ports:
- 3250:3000

然后执行下面的命令

1
2
3
4
5
6
7
8
9
10
# 新建文件夹 folda-scan 和 子目录
mkdir -p /volume1/docker/folda-scan

# 进入 folda-scan 目录
cd /volume1/docker/folda-scan

# 将 docker-compose.yml 放入当前目录

# 一键启动
docker-compose up -d

运行

如果在浏览器中输入 http://群晖IP:3250 ,虽然能看到主界面,但是会有警告提示

其实原因主要是文件系统访问(File System Access API)和 Service Worker 必须使用 https 协议,当然浏览器本身也很重要, FirefoxSafari 可能不支持或部分支持

反向代理

实际访问地址为: https://code.laosu.tech

域名 局域网地址 备注
code.laosu.tech http://192.168.0.197:3250 Folda-Scan 的访问地址

npm 中的设置

在浏览器中输入 https://code.laosu.tech,这次不会再有警告了

基本用法

  1. 选择文件夹:授权浏览器访问您的本地代码项目。
  2. 等待索引Folda-Scan 将在本地快速构建语义索引。
  3. 开始提问:用自然语言向您的代码库提问,探索其奥秘!

以本项目为例,输入用户名和仓库名之后,可以下载代码

当然前提是你能访问 https://api.github.com

在本机解压之后,点 选择文件夹 导入项目代码

下载的报告是 FS_Report_20250601_1146.txt 这样的文件,包含了项目文件、文件夹、函数、方法以及它们之间的调用关系、可用于 ChatGPTClaude

选择 与代码对话

现在可以直接跟代码库对话了

稍等一会儿,你就会看到答案了

软件本身不需要设置大模型,但是从答案看,会向后端/云端(https://text.pollinations.ai/openai)发送对话信息

你可以将代码库当做知识库,这样就好理解了,虽然不会上传完整的代码,但是代码片段还是会的,这也是为什么会减少 API 调用费用的根本原因

参考文档

oldjs/web-code-agent: Browser-local AI code Q&A engine. Chat with your codebase, ensure privacy, and optimize LLM collaboration.
地址:https://github.com/oldjs/web-code-agent

Folda-Scan - 本地文件夹扫描工具
地址:https://file.wen.bar/