乐于分享
好东西不私藏

轻量化 AI 协同办公教程 4:建立本地文本向量数据库,辅助文本编辑

轻量化 AI 协同办公教程 4:建立本地文本向量数据库,辅助文本编辑

点击蓝字 关注我们

今天分享一下一些朋友咨询的:

如何把“规范,相关文件,和大量已经过审的典型报告”,

形成一个向量的数据库。

有着非常暴躁的检索性能和识别模式。

一 是为了解决自己脑袋里经验,概念不够的问题:通过向量数据库索引出同类项目的报告切片,场景,工况来辅助我们和AI一起判断。

二,更加精确的让AI自动套模板,解放工程师双手。

本文共分7节,

第六节为实操。其余均为概念科普。


一,什么是向量

向量 = 文本 / 图片 / 文件的数字指纹。

我们的自然语言(水保报告文字、措施描述、模数说明)人类看得懂,

但是AI 看不懂,需要 嵌入模型(Embedding),

让模型把一句话、一段报告转成一串固定长度浮点数字:

例:

临时堆土场布设袋装土拦挡+排水沟 →(0.21,0.75,-0.33……)

这串数组就是特征向量,维度常见 384/512/768/1024 维。

语义越相近,向量在数学空间里距离越近:

  • “弃渣场边坡防护” 和 “排土场护坡” 向量距离近

  • “光伏板覆土绿化” 和 “公路路基开挖” 向量距离远

  • “水土保持”和“水保”向量距离近

  • “防洪评价”和“表土剥离”向量距离远

  • 等等。。。

二、普通数据库 vs 向量数据库

  • MySQL/Excel(传统标量库)只能精准关键词匹配:搜「弃渣场稳定性」,只命中含这五个字的文档,同义词、近义词搜不到;水保里想找同类措施、相似项目很难。

  • 向量数据库存海量向量数组,支持相似度检索:不用精准关键词,输入项目概况,自动在 建造者投喂的报告向量里找出行文、工况最像的几份方案。

  • 当数据量上去之后,精度就会越来越高,恰是炼丹。笔者第一期投喂大概50份合规报告,后续或许会视实战效果大量投入。

三:向量数据库三大核心功能

  1. 向量入库(Insert)

    笔者第一批把所有规范,和 50 份已经过审的报告分段切片→Embedding 转向量→存入库,附带元数据(标签)。

    规范(GB标签)项目类型 、行政区、占地、批复年份、水土保持区划、评审意见。

后续使用,可以先筛「XX市 + 矿山项目/道路项目/灌区项目等」再做向量检索,缩小范围,就可以精准定位。

2. 相似度查询(ANN 近似最近邻检索,最核心)

 只要我们输入新项目描述→AI就会自动调动数据库转查询向量→引擎快速在库中找空间距离最近的 N 条向量,然后返回对应原文 + 附件。

如:新项目占地 23hm²、丘陵地貌采石场,一键调出库内 10~50 个同地貌采石场方案。结合规范交给AI分析。

3. 过滤、更新、删除

可以通过元数据过滤:只查湖北省已批复方案、2022 年后新版规范编制报告,剔除作废旧报告向量。

四、关键技术名词(精简版)

  • 1. BGE-small-zh

    国内 BAAI 开源中文 Embedding 嵌入模型,负责把自然文本换算成固定512 维稠密数字向量,能理解词语语义、专业同义词,是中文知识库主流向量化模型。

  • 2. 稠密向量(512 维 Embedding)

    将一段文字压缩为 512 个连续数字,语义相近的文本,对应的数字数组距离更近;是 FAISS 做相似度检索的底层数据。

  • 3. FAISS IndexFlatIP Meta

    开源向量检索框架里的精准全量索引类型,生成index.faiss文件,基于内积距离计算向量相似度,全量精准比对,实现毫秒级语义检索。

  • 4. 文本块(Chunk)

    原始 PDF 文档按固定字数(本例约 500 字)拆分后的小段文本,是 Embedding 向量化的最小单位,全库合计 24402 个文本块。

  • 5 语义相似度检索

    依托向量数值远近判断含义相似度,不依赖字面关键词一致,同义、换句式的专业提问也能命中原文,检索相关度 0.84~0.91。

五、轻量级数据库的落地体量和需求文本书

例如一个单份报告,会拆分 50~100 个文本片段,50 本≈2500~5000 条向量;

Chroma、FAISS、Qdrant 轻量化库完全本地免费部署,不需要云服务器,不咋地的电脑就能跑。

笔者第一轮,进行数据清洗,剔除一些垃圾报告。

放50个文件看看效果(新旧规范,各类项目报告书)。

如果效果不错,我将投入投入更多个过审的报告。


六,建库和实操

建库:

只需要对着AI编程环境提出需求就行。非常简单。

提示词如上,截图提取文字,丢给AI环境即可。

等AI给你写完,就封装成一个skill或者MCP,注册在AI环境里。

注意:必须用全英文的文件夹地址存放生成的数据库索引文件,不然会出现莫名其妙的错误。

最终会生成这三个文件:

index.faiss

FAISS 索引实体文件,只存储全部文本的 512 维向量数据,检索时用来快速匹配和问题语义最贴近的文本序号。

documents.pkl

Python pickle 序列化文件,存储被切分后的原文文本块;FAISS 搜到序号后,从此文件取出对应正文。

metadatas.pkl

pickle 打包文件,存储每条文本的元数据:所属 PDF 文件名、页码、文档路径、标签等溯源信息。

  • 三个文件接入大模型后,就可以实现

    AI 提问→问题转向量→FAISS 检索原文→参考原文生成专业答案。

实操逻辑:

例如,随便问一个比较抽象的问题:

(错别字很多哈,别介意,天天用电脑,实际生活中除了名字其余字都写不利索了,还好AI不傻)

AI在数据库中基本上快速遍历了所有报告和相关规范:

检索速度非常快,然后得出结论:

AI肯定还是看的懂了。

借助DS超长的上下文,这个回答大家觉得这个结论是否中肯呢?


后续操作

利用向量数据库的目的就是让AI不去凭空造内容,

让AI 只做三件事:

填空、替换计算参数、思考选用语料和措辞。

我们选用一个成熟的模板 + 向量库检索取值/核对规范 + AI自主分析。

写完之后进行AI自检,迭代个几轮。

就能彻底杜绝 AI 乱写,规范乱套、结构跑偏。

七 结语

不需要斥资自己训练什么小模型,

或许这才是降本增效的最优解,

工程师只用去聚焦更核心的部分,

对重复无聊的复制粘贴说拜拜。

大单位把自己做过的项目,例如存在NAS里的,进行向量化。

管理者在电脑上搞个权限,就可以给下面员工有限调用这个SKILL。

而不是费尽心思去硬盘里检索,死脑细胞找模板协调下方。

小单位或个人,则可以等笔者后面分享。

当然,想用这种方法试着写更复杂的也不是不行。

只是还有非常多的缺陷需要优化。

因为这个数据库和建库工序,是非常初级的:

  1. 切片暂时没标准、检索质量不稳定、质量很靠运气

  2. 文本相似≠工程相似、工况可能错配、隐性技术漏洞

  3. 元数据简陋、精准度上限很低

  4. 无数据没清洗、脏数据多。

  5. 模板同质化、无适配性、新型项目无法写

  6. 虽然有规范规定计算逻辑、但是无法校验公式、核心工作量未解放。

后续有时间,出个优化过后这些问题的高级版。

(摄影,周南 青藏高原表土调查 )

有许多粉丝朋友觉得作者懂很多。

其实不是的。。。

朋友们问的问题都太震撼了,我时常感觉脑袋宕机。

什么表土都被挖走几年了补方案,怎么做表土调查。。。

这种怎么造,怎么拍脑袋,或者商务,自己老板去解决的问题,

就别来咨询笔者了。

对一些AI概念不清楚的,可以选择性看看前面的教程。

说不定会有一定的化学反应。

轻量化 AI 协同办公教程:从零搭建环境|IDE+Python+DS+CAD

轻量化 AI 协同办公教程 2 :AI工具综合运用,驱动AI完成一键设计,验算,成图,文字输出

轻量化 AI 协同办公教程 3:简单对话下的AI制图与分析

相关学习资料