stef d5f75c88e0 sd преди 1 седмица
..
README.md d5f75c88e0 sd преди 1 седмица
integrate_knowledge.py d5f75c88e0 sd преди 1 седмица
integrate_knowledge_example.py d5f75c88e0 sd преди 1 седмица
md_to_knowledge_converter.py d5f75c88e0 sd преди 1 седмица
start.py 8e402bec7d init преди 1 седмица

README.md

Markdown到知识库格式转换器

这个Python脚本可以将markdown格式的文档转换为适用于RAG知识库的JSON格式,包含content、metadata、source、type等字段。

功能特性

  • 自动解析Markdown结构:按章节分割文档内容
  • 智能类型识别:根据标题关键词自动确定文档类型
  • 内容清理:去除图片引用、特殊字符等
  • 元数据生成:包含来源、类型、章节等信息
  • 批量处理:支持单文件或整个目录的转换

支持的文档类型

脚本会根据标题关键词自动识别以下文档类型:

  • login_guide - 登录相关指南
  • purchase_management - 采购管理
  • inbound_management - 入库管理
  • outbound_management - 出库管理
  • inventory_management - 库存管理
  • process_management - 工艺管理
  • production_management - 生产管理
  • basic_settings - 基础设置
  • system_management - 系统管理
  • personal_center - 个人中心
  • assembly_management - 装配管理
  • operation_guide - 操作指南(默认类型)

使用方法

基本用法

from md_to_knowledge_converter import MarkdownToKnowledgeConverter

# 创建转换器实例
converter = MarkdownToKnowledgeConverter()

# 转换单个文件
documents = converter.convert_file(
    input_file="assets/docs/mom.md",
    output_file="knowledge_base/mom_knowledge.json"
)

命令行使用

python scripts/md_to_knowledge_converter.py

转换整个目录

converter.convert_directory(
    input_dir="assets/docs",
    output_dir="knowledge_base"
)

输出格式

转换后的JSON文件包含文档数组,每个文档的格式如下:

{
  "content": "标题: 登录系统\n\n用户通过登录\"MOM制造运营管理系统\"进行业务操作...",
  "metadata": {
    "source": "登录系统",
    "type": "login_guide",
    "section": "登录",
    "level": 3,
    "file_path": "assets/docs/mom.md"
  }
}

字段说明

  • content: 清理后的文档内容,包含标题和正文
  • metadata.source: 文档来源(从文档标题提取)
  • metadata.type: 文档类型(自动识别)
  • metadata.section: 章节标题
  • metadata.level: 标题级别(1-3级)
  • metadata.file_path: 原始文件路径

转换结果统计

从MES操作手册转换后的统计:

转换统计:
总文档数: 144 个知识库条目

各类型文档数量:
  operation_guide: 98
  login_guide: 14
  purchase_management: 8
  inbound_management: 12
  outbound_management: 6
  process_management: 4
  production_management: 2

注意事项

  1. 文件编码:确保markdown文件使用UTF-8编码
  2. 图片处理:脚本会自动过滤掉图片引用
  3. 标题层级:支持1-3级标题的识别和分割
  4. 内容清理:会自动去除多余空行和特殊字符

依赖要求

  • Python 3.6+
  • 标准库:json, re, os, pathlib

错误处理

脚本包含完善的错误处理机制:

  • 文件不存在时会显示错误信息
  • 转换过程中的异常会被捕获并显示详细错误信息
  • 会自动创建输出目录

与RAG服务集成

转换后的JSON文档可以直接集成到RAG服务中:

# 加载转换后的文档
with open('knowledge_base/mom_knowledge.json', 'r', encoding='utf-8') as f:
    documents = json.load(f)

# 添加到RAG服务
await rag_service.add_documents(documents, 'system_guide')

自定义配置

可以通过修改_determine_type方法来自定义文档类型识别规则:

def _determine_type(self, title: str) -> str:
    # 添加新的类型映射
    type_mapping = {
        "新关键词": "new_type",
        # ...
    }

示例输出

转换后的文档示例:

{
  "content": "标题: 用户登录地址\n\n打开Chrome或者Edge浏览器,输入网址:http://10.111.156.155:8808/进入MOM制造运营管理系统,输入已配置好的用户名和密码登录系统。",
  "metadata": {
    "source": "登录系统",
    "type": "login_guide", 
    "section": "用户登录地址",
    "level": 3,
    "file_path": "assets/docs/mom.md"
  }
}