juechafun/00-临时碎片/20260529-备忘-觉察知识-KeepAsking调研.md

16 KiB
Raw Blame History


#领域/未知

#复盘/0 #临时/备忘 #状态/待处理

一句话描述

[KeepAsking调研技术栈____]


结合你个人极客知识管理、工程化落地、先功能后隐私、拒绝网红工具、坚守原子化 / 不造轮子的核心诉求,先做核心认知纠偏,再逐层打磨整套技术选型,明确:工业级 ≠ 商业闭源,最终给出「工业级开源组件为主、纯商业工业软件完全摒弃、网红小众工具彻底排除」的完整方案,同时敲定 LangChain / LlamaIndex 两大框架的取舍与搭配。

一、先统一核心概念(选型前提,避免认知偏差)

在个人知识管理 + 自托管 RAG 这个场景里,把工具分为三类,这是后续所有选型的判定标准:

表格

分类 定义 & 特征 适配你的场景
1. 工业级开源组件(首选) 开源、全球生产环境广泛使用、社区长期稳定维护、接口向下强兼容、迭代保守(只修 Bug / 优化性能,不堆砌花哨功能)、单一职责、可自托管。

代表Click、LangChain、LlamaIndex、Sentence-Transformers、Chroma、Qdrant、Ollama
全场核心选型

兼顾工程规范、稳定性、免费、可演进、无热度绑架,完美匹配个人极客长期使用。
2. 纯商业工业软件(完全摒弃) 闭源 / 付费、面向企业集群 / 多租户 / 高可用场景、功能臃肿(团队协作、权限集群、商用运维)、数据易绑定厂商、无法完全自托管。

代表Pinecone 商业版、Milvus Cloud、商用闭源 RAG 平台、专属付费大模型服务
不选用

个人场景用不上企业级冗余能力,付费 + 厂商绑定违背「数据自主、渐进自托管」诉求。
3. 网红 / 小众开源工具(彻底排除) 短期热度高、迭代激进、接口频繁破坏性变更、堆砌 UI / 特效 / 娱乐化功能、维护周期不稳定、社区生命周期短。

代表Typer、Python Fire、各类新兴小众 RAG 玩具、界面优先的一体化笔记工具
不选用

会被热度裹挟,后续被迫迁移、重构,和你长期稳定的目标冲突。

顶层总策略(最终定调)

  1. 全域基准:全部选用 工业级开源组件,拒绝商业闭源、拒绝网红玩具;
  2. 技术栈收敛:主力语言固定 Python不新增其他开发语言交互入口固定为 Click CLI不散落零散脚本
  3. 演进路线:先对接在线兼容 API快速实现功能,后期无缝切换本地自托管保障隐私,两套模式代码基本不动;
  4. 架构原则:分层解耦、组件可插拔、原子化单一职责;仅在上层写胶水 / 规则 / CLI 业务代码,底层核心算法 / 能力完全复用开源组件,严守「不造轮子」红线;
  5. 自动化边界:所有批量操作保留 dry-run 预览、日志、备份回滚,坚持「人主导决策,机器执行机械动作」。

二、逐层深度打磨技术选型(全栈落地版)

按照架构分层从底层数据 → 基础组件 → 核心 RAG 链路 → 大模型层 → 交互入口逐层梳理,标注选型理由、备选、排除项、工业属性。

分层 1原始数据存储层知识本体永久不变

选型

  • 载体:本地文件系统 + 标准 Markdown + Frontmatter 元数据

说明

  1. 这是通用工业级纯文本格式,跨平台、无软件绑定、所有开源组件原生兼容;
  2. 严格坚守:不使用 HTML / 私有富文本 / 工具专属格式(你反感的花里胡哨格式彻底排除);
  3. 存量多格式素材单独归档为「原始素材目录」,不侵入核心 MD 知识库,格式混乱风险隔离。

备选 & 排除

  • 无备选:纯文本 MD 是个人 / 工业文档存储的最优解;
  • 排除:各类笔记软件私有格式、在线文档格式。

分层 2交互入口层CLI 命令行,人机交互唯一入口)

主选型Click

对比 & 理由

  1. 工业属性Python 生态事实标准 CLI 框架Flask 作者维护10 + 年稳定迭代,接口无破坏性变更,纯原子能力(仅做参数解析 + 命令路由),无多余美化功能;

  2. 适配你的规则:天然支持子命令 = 原子操作,完美实现单一入口、功能拆分;

  3. 对比其他方案:

    • argparsePython 内置):零依赖,极简,但代码冗余、扩展不便,适合超轻量场景,作为备选
    • Typer / Python Fire:网红 CLI 库,堆砌自动 UI、颜色、动画等花哨功能直接排除

最终结论

  • 主力:Click(功能与稳定性平衡,工业标准);
  • 极简兜底:argparse(仅当你追求零第三方依赖时切换)。

分层 3文档处理 & RAG 框架层(核心检索 / 编排层L 开头二选一 / 组合)

你重点关注的 LangChain、LlamaIndex 均属于工业级开源 RAG 框架,二者都不是网红工具,定位互补,下面明确取舍:

两款框架核心定位对比

表格

维度 LangChain LlamaIndex
核心设计 通用工作流编排框架,生态极丰富,偏向「工具调用、复杂 Agent、多链路串联」 检索优先框架,专为文档索引、语义检索、结构化知识设计
Markdown 适配 依赖第三方 Loader对 MD 标题 / 层级结构化解析一般 内置专属 MarkdownNodeParser,原生保留文档结构、层级、代码块,MD 体验最优
检索能力 基础向量检索为主,复杂查询需二次开发 原生支持混合检索、多跳查询、节点关联,检索能力更强
复杂度 功能全面,配置项多 聚焦 RAG 核心,上手更轻,冗余功能少
工业属性 顶级工业开源,企业 / 个人大规模使用 顶级工业开源RAG 领域标杆,长期稳定维护

结合你的场景(纯知识管理、以 RAG 检索为核心,暂不需要复杂 Agent给出三套方案

方案 A首选推荐主力 LlamaIndex

  • 适用90% 你的日常场景MD 文档索引、语义检索、RAG 问答、结构化知识提取);
  • 理由天生为「私有文档知识库」设计MD 解析、检索链路开箱即用,代码更简洁,无多余 Agent 冗余功能,贴合你「功能克制」的理念。

方案 B进阶组合LlamaIndex检索层 + LangChain编排层

  • 适用:后续需要增加「多工具联动、复杂流程编排、简易 Agent」比如检索 + 文件操作联动);
  • 架构:MD → LlamaIndex(索引/检索) → LangChain(规则/流程编排) → LLM
  • 优势:各司其职,不重复造功能,工业界经典组合模式。

方案 C备选纯 LangChain

  • 适用:你后续计划深度探索 Agent、多工具调用当前 RAG 仅作为附属能力;
  • 短板MD 结构化解析需要额外配置,检索能力不如 LlamaIndex 原生强大。

最终建议

现阶段直接选用 LlamaIndex;未来有复杂流程 / 工具联动需求,再叠加 LangChain不一开始过度引入复杂度。


分层 4嵌入层文本向量化语义理解核心

选型组合

  1. 推理库:Sentence-Transformers(工业级开源嵌入推理标准库,全球通用,迭代保守);
  2. 嵌入模型:BAAI/bge-large-zh(中文领域工业基线开源模型,学术 + 工业场景广泛采用,中文语义效果公认优秀)。

说明

  1. 整套组合纯离线可运行,后期自托管无任何依赖;
  2. 拒绝频繁换新兴小众嵌入模型(热度模型普遍生命周期短),固定 BGE 系列作为长期基线;
  3. 仅调用库与模型,不自研向量化、归一化逻辑(严守不造轮子红线)。

分层 5向量数据库层向量存储 & 相似度检索)

两款均为工业级开源向量库,根据你的数据体量二选一,支持无缝迁移(代码改动极小):

选项 1Chroma现阶段主力强推荐

  • 形态:文件型向量库,零额外部署、无独立进程、运维极简;
  • 适配:单机个人知识库,文档量 0 ~ 2000 篇;
  • 优势:轻量化、和 Python 生态深度绑定、配置最少,完全匹配个人极客轻量化诉求。

选项 2Qdrant中长期备选

  • 形态独立服务型向量库Docker 一键部署;
  • 适配:文档量 > 2000 篇、追求更高检索性能、未来有小范围扩容需求;
  • 优势:工业生产级性能、支持复杂元数据过滤、分布式扩展;
  • 迁移说明:两者 Python SDK 调用逻辑高度相似,后期迁移成本极低。

排除项

  • 商业向量库Pinecone、Milvus Cloud付费 + 厂商绑定,排除;
  • 小众向量库:维护不稳定,排除。

分层 6大模型层推理 + 调用,分「在线 API」「本地自托管」双模式

遵循你「先实现功能,再考虑隐私自托管」的演进思路,整套链路统一、代码无缝切换,全部选用工业级开源组件。

6.1 统一调用抽象层(核心)

主选型LiteLLM

  • 定位:工业级开源多模型统一调用网关,一套接口兼容百余种在线 / 本地模型;

  • 价值:

    1. 在线 API、本地模型切换仅改配置,业务代码完全不动
    2. 内置超时、重试、日志、成本统计、故障熔断(工业级容错能力);
    3. 原生兼容 LangChain / LlamaIndex集成零障碍。

备选OpenAI 官方 SDK

  • 场景:仅使用 OpenAI 系模型,不需要多模型切换;
  • 短板:多模型适配能力弱,后期切换本地模型需要小幅改代码。

6.2 在线模型(短期快速落地)

  • 选型原则:选用 OpenAI 接口兼容的国内开源 / 合规大模型 API
  • 推荐服务DeepSeek、智谱 AI、通义千问等中文优化好、接口标准、合规稳定
  • 规则:仅作为过渡方案,用来快速验证 RAG 功能,不长期依赖。

6.3 本地自托管(中长期隐私方案)

1. 本地推理服务Ollama

  • 定位:工业级轻量 LLM 部署工具,一行命令部署模型、提供标准 OpenAI 兼容 API
  • 优势:极简运维、资源占用低、个人 PC / 服务器均可运行,目前本地模型部署的事实标准。

2. 本地开源大模型(轻量 7B 级,个人硬件友好)

  • 首选:Qwen2.5-7B(通义千问开源版,中文能力顶尖、推理速度快、社区活跃);
  • 备选Llama 3-8B通用能力强长文本支持好
  • 规则:固定 7B 量级模型,不盲目上更大参数模型(硬件成本、运维复杂度上升,个人场景收益低)。

6.4 明确排除

  • 闭源商业大模型专属 SDK、小众推理框架、网红本地模型。

分层 7辅助运维组件工业级轻量化配套不额外引入新工具

全部使用系统原生 + Python 标准库,零第三方依赖,延续极简原则:

  1. 日志Python 内置 logging(工业标准日志库);
  2. 文件备份 / 回滚Python 脚本 + 系统原生命令;
  3. 定时增量同步 / 巡检Linux cron / Windows 计划任务(系统原生定时服务);
  4. 安全过滤Python 代码实现目录 / 文件黑白名单(延续之前安全规则)。

三、最终完整版技术栈清单(打磨定稿,可长期使用)

🔹 核心工业级开源组件(必选,全套稳定无热度绑架)

表格

层级 组件 / 框架 版本 / 选型 核心作用
数据层 本地文件 + 标准 Markdown 通用格式 原始知识存储Frontmatter 元数据
交互层 Click 最新稳定版 唯一 CLI 入口,原子子命令调度
RAG 框架 LlamaIndex 正式版 MD 解析、索引构建、语义检索(主力)
嵌入层 Sentence-Transformers + bge-large-zh 稳定版模型 文本向量化,语义编码
向量库 Chroma 持久化本地版 向量存储、相似度检索(现阶段)
模型调用 LiteLLM 最新稳定版 大模型统一调用、容错、多模型适配
本地推理 Ollama 正式版 本地 LLM 部署、API 服务
本地 LLM Qwen2.5-7B 开源量化版 离线问答、内容摘要、标签建议

🔹 备选组件(同等级工业开源,按需平滑切换)

  1. CLIClick → argparse(追求零第三方依赖)
  2. 向量库Chroma → Qdrant文档超 2000 篇,提升性能)
  3. RAG 框架LlamaIndex → 叠加 LangChain新增复杂工作流 / Agent
  4. 模型调用LiteLLM → OpenAI SDK仅使用 OpenAI 生态)

🔹 永久排除清单(商业 / 网红,坚决不碰)

  1. 纯商业工业软件Pinecone 商业版、Milvus Cloud、闭源商用 RAG 平台;
  2. 网红工具Typer、Python Fire、各类界面优先的一体化知识库、小众 RAG 玩具;
  3. 花哨格式HTML、私有富文本、在线文档格式。

四、关键架构 & 规则重申(守住你的核心原则)

1. 完整数据流(永久架构,无需重构)

plaintext

本地MD文件
    ↓
LlamaIndex解析MD + 切片 + 提取元数据)
    ↓
Sentence-Transformers + BGE文本向量化
    ↓
Chroma向量+元数据存储)

# 检索&问答链路
用户输入 → Click CLI → 检索grep精准检索 + 向量语义检索) → LiteLLM → LLM在线/本地) → 结果输出

2. 造轮子红线(强制执行)

允许编写CLI 命令逻辑、文件遍历、增量同步、黑白名单、dry-run 预览、日志、异常捕获、调用规则(纯业务 / 胶水代码)

禁止编写:文本切片算法、向量计算、相似度检索、模型推理、向量索引存储(底层核心能力,完全复用开源组件)

3. 人机分工红线(解决「自动化不放心」)

机器执行:文件移动、格式转换、索引同步、检索执行、摘要 / 标签建议

机器禁止:内容审核、价值判断、正文修改、自动打标签、文件删除(知识决策全人工)

4. 模型演进规则

  1. 短期0~1 个月LiteLLM 对接在线 API快速跑通全流程
  2. 中期1~3 个月):部署 Ollama+Qwen2.5-7B切换为本地自托管数据隐私闭环
  3. 长期:组件仅做 Bug 修复式升级,不追逐新版本、新功能。

五、方案核心优势(匹配你所有诉求)

  1. 无热度绑架:全套都是行业长期使用的工业级开源组件,没有网红工具,架构十年可稳定使用,无需反复迁移;
  2. 技术栈极简收敛:主力仅 Python单一 CLI 入口,学习、维护成本极低;
  3. 完全可控:数据本地存储、代码全可见、自动化带预览 / 回滚,彻底摆脱黑盒焦虑;
  4. 演进灵活:在线 / 本地模型一键切换、向量库可平滑迁移、框架可组合扩展;
  5. 克制无冗余:所有组件只做单一职责,没有 UI 美化、社区、多租户等无关花哨功能;
  6. 零重复造轮子:底层能力全部复用成熟开源,仅做上层业务编排,工程效率最大化。

六、分阶段落地执行(极简步骤)

阶段 1基础环境搭建1 天)

  1. 规划 MD 目录、统一 Frontmatter 元数据规范;
  2. 安装依赖:clickllama-indexsentence-transformerschromadblitellm
  3. 下载 bge-large-zh 模型,测试嵌入能力。

阶段 2RAG 核心链路跑通1~2 天)

  1. 用 LlamaIndex 实现 MD 加载、切片、入库 Chroma
  2. 配置 LiteLLM 对接在线大模型 API完成 RAG 问答;
  3. 扩展 Click 子命令(同步、检索、问答、清理),新增 dry-run 预览。

阶段 3安全与运维加固1 天)

  1. 配置文件黑白名单、全链路日志;
  2. 编写备份 / 回滚脚本,配置定时增量同步。

阶段 4切换本地自托管按需推进

  1. 安装 Ollama拉取 qwen2.5:7b
  2. 修改 LiteLLM 配置,切换为本地模型,完成隐私闭环。