📂 文件向量化 + 可分享浏览架构

Funnel 基础已就绪 · 需逐步搭建

🎯 架构总览

两个系统、一个入口、一套管道:

🌐 Funnel 入口 — https://vm-0-13-ubuntu-3.tailcf1eca.ts.net/
⬇️ 两条路 ⬇️
👁️ 浏览模式
HTML 直接看 · MD 渲染看
🧠 向量引擎
切片 → Embedding → 向量库
⬇️
📁 文件源 — 云端 ~/.hermes/ + WSL ~/.hermes/ + 其他

👁️ 文件浏览器

基于已有的 Funnel,加一个文件浏览中间件

📁 目录浏览
自动生成文件树
📄 按类型渲染
.html → 直接出 · .md → 渲染 · 其他 → 下载

已有:可直接展示

skills/ 84个技能 .md 文件
plans/ 实施方案 .md
cron/output/ 生成的 .html 报告
🔧 搭建方式:Caddy + 自动渲染
💡 用 Caddy 替代 Python http.server,自带 MD→HTML 渲染
# Caddyfile funnel.你的域名.ts.net { root * /home/ubuntu/.hermes file_server browse # 目录浏览 handle *.md { markdown # MD 自动渲染为 HTML } handle *.html { file_server # 直接输出 } }
当前 Python http.server 勉强能用,但不会渲染 .md,只能下载
⚠️ 当前状态: Python 文件服务已跑通。
但 .md 文件不会渲染成页面,只能看到原始文本。
需要升级到 Caddy 才能实现"点 .md 文件直接看渲染后效果"。

🧠 向量化引擎

本机 embedding + 向量数据库

✂️ 文件切片
按段落/代码块切分
🧬 Embedding
Ollama + 本地模型
🗄️ 向量库
ChromaDB / Qdrant

需要安装的组件:

Ollama 跑 embedding 模型
nomic-embed-text 轻量 embedding(~274MB)
ChromaDB 轻量向量数据库
LangChain 连接管道
🔧 搭建方式:Ollama + ChromaDB
# 1. 安装 Ollama curl -fsSL https://ollama.com/install.sh | sh # 2. 下载 embedding 模型(274MB) ollama pull nomic-embed-text # 3. 安装 ChromaDB pip install chromadb langchain # 4. 跑一个索引脚本 python index_files.py # 扫描 ~/.hermes/ 所有文件并向量化
完成后可用自然语言搜索:
"帮我找出之前讨论过的 Tailscale Funnel 配置"

🔁 完整管道:从文件到可搜可看

📁 文件源
✂️ 切片器
🧠 Embedding
🗄️ 向量库
🔍 搜索接口
📁 文件源
🌐 Funnel 文件浏览器
.html 直出 · .md 渲染 · 可分享
🔗 分享链接
手机打开 · 发朋友

📂 文件来源 & 处理方式

文件类型 浏览方式 向量化 分享链接
.md 技能/方案/笔记 Caddy 渲染为 HTML 页面 ✅ 全文切片 /skills/xxx
.html 报告/方案/图表 直接浏览器打开 ✅ 提取文本后切片 /output/xxx.html
.py/.js/.ts 代码 语法高亮显示 ✅ 按函数/类切片
.json/.yaml 配置 原始文本 / 格式化显示 ✅ 结构化切片
WSL 同步 本地文件 通过 rsync/scp 同步到云端后一致 ✅ 同上

📋 分阶段搭建计划

Phase 1
文件浏览 + MD 渲染(1h)
用 Caddy 替换 Python http.server → MD 自动转 HTML → 目录浏览 → 直接可看可分享
✅ 已有 Funnel 需装 Caddy
Phase 2
本地 Embedding + 向量库(1~2h)
装 Ollama → 拉 nomic-embed-text → 装 ChromaDB → 跑索引脚本 → 验证语义搜索
需装 Ollama 需装 ChromaDB
Phase 3
WSL ↔ 云端 文件同步(0.5h)
通过 Tailscale + rsync 定时同步 WSL 的 skills/ 到云端,统一索引
✅ Tailscale 已通

🤔 还需要你决定的几个点

1️⃣ 文件范围
只索引 ~/.hermes/ 还是包含其他目录?
如果包含代码项目,需要指定路径。
2️⃣ 搜索接口怎么用
A. 网页搜索框(在 Funnel 上加个搜索页)
B. 命令行工具(我在终端里直接帮你搜)
C. Hermes 技能化(我调用向量库做 RAG)
3️⃣ Embedding 模型精度 vs 速度
nomic-embed-text 274MB,快,够用
bge-large-zh 1.3GB,中文更好,稍慢
gte-Qwen2 2.4GB,最强但最重
4️⃣ 向量库放哪?
放云端 → 所有文件集中索引
放 WSL → 用你本地 GPU/CPU
两边都放 → 各自索引自己的文件