技术栈总览 #
| 层面 | 技术 | 说明 |
|---|---|---|
| 后端 | FastAPI + Uvicorn | Python Web 框架,端口 8000 |
| 前端 | Streamlit | Python 数据应用框架,端口 8501 |
| 向量检索 | FAISS | 索引 2084 块档案文档块 |
| 大语言模型 | 腾讯混元(hunyuan-turbo) | 通过 TokenHub API 调用 |
| PDF 处理 | PyMuPDF | 双层 PDF 文字层提取、版式位置分析 |
| 中文分词 | jieba + TF-IDF | 职权匹配 L2 层 |
| 反向代理 | Nginx | HTTPS 反向代理,经小皮面板管理 |
| 运行环境 | Python 3.13 | 部署于 Windows Server 2012(腾讯云) |
核心技术亮点 #
三级匹配体系(职权 / 保管期限匹配) #
- L1:JSON 职权库精确匹配
- L2:jieba + TF-IDF 语义匹配
- L3:混元 LLM 兜底
保管期限判定 #
采用八步法流程,规则表 104 条 + 条款号,准确率约 97%。
PDF 元数据提取 #
基于 PyMuPDF 的版式位置提取(text dict)→ 文字层全文正则提取,支持 5 种文号模式。
数据存储方式 #
启典不使用 .db / .sqlite 等数据库文件,而是用以下文件存储:
| 文件 | 格式 | 位置 | 用途 |
|---|---|---|---|
meta.pkl |
Pickle(Python 序列化) | index/ |
文档分块与元数据(2084 块) |
docs_hash.txt |
纯文本 | index/ |
文档变更检测哈希 |
faiss.index |
FAISS 二进制 | index/ |
向量索引(语义相似度搜索) |
当前运行在关键词检索模式:先用关键词匹配,FAISS 可用时再补充向量搜索。
部署能力 #
一期(当前):服务器部署模式 #
通过 ytshuju.cn/knowledge 互联网访问,未打包成安装包,用户只能用浏览器访问。
二期规划:生成安装包(全量打包,脱机即用) #
安装包将内嵌后端、前端、索引、Python 运行环境、本地大模型(Ollama + Qwen 等国产模型)与本地 Embedding 模型(BGE-M3),实现完全脱机运行,适合涉密内网。特性包括:自动检测系统环境、注册为 Windows 服务开机自启、可视化安装向导、支持静默安装便于企业批量部署,默认本地模型也可在设置中切云端。
本地化可行性 #
| 组件 | 本地化可行性 |
|---|---|
| FastAPI / Streamlit / FAISS / PyMuPDF | ✅ 纯 Python,可本地运行 |
| 混元 LLM(当前一期) | ⚠️ 需联网调用 TokenHub API |
| Ollama + Qwen / BGE-M3(二期) | ✅ 本地运行,脱机可用 |