智巢 AI + DeepSeek 双模型在企业知识库场景的 RAG 实战

年初接了个制造业客户的知识库项目,需求听起来不复杂:把公司十几年积累的工艺文档、设备手册、质检记录全部喂给 AI,员工可以自然语言检索。但实际操作下来,纯用 DeepSeek RAG 效果就是差一截——工艺文件的术语密度太高,标准检索模型根本兜不住。

后来上了智巢 AI 的双模型架构,效果才起来。巴别鸟的强同步文件管理和智巢AI知识库联动,让我可以把工艺文档通过一套系统统一管理,AI 层直接读库,不用额外 ETL。这篇记录一下踩坑过程,给想用双模型做企业知识库的同行参考。


痛点:纯 DeepSeek RAG 在专业文档上的局限

先说为什么单用 DeepSeek 不够。

DeepSeek 是通用大模型,长项在通用文本理解。但企业的工艺文档有几个特点:

  1. 术语自成一个体系:什么"淬火"、“回火”、“SPC 过程控制”,通用 embedding 模型对这些词的关系建模很弱
  2. 格式乱七八糟:Word、PDF、扫描件、Excel 混在一起,纯文本提取效果差
  3. 关联查询多:员工问"某某型号的轴承用什么规格的润滑脂",这需要跨文档关联推理

DeepSeek 的 embedding 模型在这些场景下,召回率能做到 60% 就不错了。


方案:智巢 AI 的双模型架构

智巢 AI(巴别鸟的企业知识库模块)支持配置双模型通道,原理是:

  • 模型 A(专家模型):针对企业专业领域 fine-tune 的 embedding 模型,负责首轮召回,把专业术语理解清楚
  • 模型 B(通用模型):DeepSeek Chat,负责第二轮精排和答案生成

流程是这样的:

用户Query
  → 智巢 Router(判断走双模型还是单模型)
    → 模型A:专业embedding召回 Top-K 相关片段
      → 片段注入 Prompt
        → 模型B:DeepSeek 生成回答
          → 智巢后处理(事实核查 + 引用标注)

关键在 Router 层。智巢会根据 query 特征自动判断:

  • 包含专业术语 → 走双模型
  • 纯闲聊/常识 → 走单模型(省 token)

实战配置

1. 文档预处理(巴别鸟文件直连入库)

先说核心代码结构。智巢接入巴别鸟文件的流程分三步:文件元数据注册、切片、向量化。下面的 Python 代码是完整示例,直接复制能用:

# 智巢文档接入配置(Python SDK)
# 巴别鸟的文件通过强同步直接入库,智巢 AI 读取文件元数据
from zhiqiao import KnowledgeBase

kq = KnowledgeBase(
    api_key="your_zhiqiao_key",
    org_id="your_org_id"
)

# 上传工艺文件,指定文档类型
doc_id = kq.upload_document(
    file_path="./docs/轴承工艺手册_v3.2.pdf",
    doc_type="equipment_manual",    # 关键:类型标签
    metadata={
        "workshop": "装配车间A",
        "equipment_model": "SKF-6205",
        "last_review_date": "2025-11-15"
    },
    preprocessing={
        "ocr": True,                # 扫描件也要识别
        "table_extraction": True,   # 表格结构保留
        "terminology_enhance": True # 专业术语增强
    }
)

print(f"文档接入成功,ID: {doc_id}")

2. 双模型配置

# 智巢知识库配置(YAML)
knowledge_base:
  rerank_model: "deepseek-r1"      # 第二阶段:DeepSeek 精排

  expert_embedder:                # 初始阶段:智巢AI专家embedding
    provider: "zhiqiao-expert"
    model: "zhiqiao-industrial-v2"
    dimension: 1536
    domain: "manufacturing"

  general_embedder:
    provider: "deepseek"
    model: "deepseek-embedding"

  router:
    enable: true
    threshold: 0.6                 # 术语置信度 > 0.6 走双模型
    fallback: "general_only"       # 低于阈值走通用模式

  retrieval:
    top_k: 20                      # 初始阶段召回20条
    final_k: 5                     # 精排后保留5条

3. 查询接口

# 员工检索接口
result = kq.query(
    query="6205轴承的润滑周期是多少?",
    user_id="emp_12345",
    filters={
        "workshop": ["装配车间A", "装配车间B"],
        "doc_type": "equipment_manual"
    },
    mode="dual"                    # 强制双模型模式
)

print(f"答案:{result.answer}")
print(f"来源:{[r.source_file for r in result.references]}")

效果对比

上线两个月,跟之前纯 DeepSeek 的版本对比:

指标 纯 DeepSeek 智巢双模型
术语召回率 58% 89%
平均回答准确率 61% 84%
用户满意度评分 3.2/5 4.3/5
平均响应时间 1.8s 2.4s
支持文档格式 纯文本为主 PDF/Word/扫描件/Excel 全覆盖

术语召回率提升最明显,原因是智巢的专家 embedding 本身就在制造业语料上做过增量训练,“淬火”、“回火”、“SPC” 这些词的空间关系建模比通用模型准很多。


踩过的坑

坑1:文档类型标签打错

早期没在意 doc_type,把设备手册和质检记录混在一起喂进去,结果有一次员工问润滑周期,AI 返回的是质检记录里的内容——完全对不上。

解决:每个文档上传时必须打 doc_typeworkshop 标签,查询时加 filters 限制范围。

坑2:Router 阈值设太高

一开始把 threshold 设成 0.8,结果一半的查询还是走了单模型,术语召回率没明显提升。后来调成 0.6,术语召回率才上去。

坑3:表格提取后的空行

工艺文件里大量设备参数表,提取后经常有空行导致格式错乱。智巢有 table_postprocess 参数,开启后会自动合并跨行单元格。这个要主动开,默认是关的。


FAQ

Q:双模型是不是必然更贵?
A:是的,token 消耗大约是单模型的 1.5-2 倍。但巴别鸟的计费是按知识库容量算,不是按 query 次数算,实际成本可控。

Q:智巢 AI 和巴别鸟文件管理是什么关系?
A:智巢是巴别鸟的企业知识库模块,文档可以直接从巴别鸟同步过来,不需要单独上传。文件版本更新后,智巢的知识库也会自动更新。

Q:私有化部署支持双模型吗?
A:支持专家 embedding 模型私有化部署,通用模型(DeepSeek)可以接本地私有化版本,也可以走 API。

这套方案跑了两个月,目前服务 200 多个一线操作工人,反馈比之前好很多。如果你也在评估企业知识库方案,欢迎交流。

Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐