---
name: data-pipeline-e3b8cc610424
description: "多模态数据管道技能 — 摄入文档(PDF/图片/视频/Office)到持久化知识维基，支持知识融合、跨源矛盾检测、多源聚合查询、知识图谱构建。当用户提到摄入文档、构建知识库、查询维基、检查一致性、构建知识图谱、文档分析、多模态理解、数据管道等需求时触发此技能。即使用户没有明确说 pipeline 或 data-pipeline，只要涉及将文档转化为结构化知识、跨文档分析对比、或知识图谱可视化，都应触发此技能。"
---

# Data Pipeline — 多模态知识管道

将任意格式文档摄入为持久化结构化知识维基，支持知识融合、跨源矛盾检测、多源聚合查询。

## 核心能力

| 能力 | 说明 |
|------|------|
| **多模态摄入** | PDF、图片、视频、Word、Excel、PPT、HTML、Markdown |
| **知识融合** | 新文档摄入时自动与已有实体/概念页合并，而非覆盖 |
| **主动矛盾检测** | 摄入后自动对比新旧 claims，报告跨源冲突 |
| **跨源聚合查询** | 查询时展示多源视角、共识与分歧 |
| **知识图谱** | 自动构建交互式 vis.js 可视化图谱 |

---

## 维基目录

数据统一存放在技能安装目录下（`~/.claude/skills/data-pipeline/`）：

```
~/.claude/skills/data-pipeline/
├── SKILL.md              # 本文件
├── tools/                # Python 管道脚本
│   ├── pipeline_ingest.py
│   ├── pipeline_query.py
│   ├── pipeline_lint.py
│   ├── pipeline_graph.py
│   ├── pipeline_config.py
│   └── build_graph.py
├── core/                 # 核心模块
│   ├── llm_config.py     # LLM API 配置管理
│   ├── retrieval.py      # BM25 检索引擎
│   ├── wikilink.py       # Wikilink 解析器
│   └── export.py         # 导出功能
├── backend/              # 文件处理器
│   └── processors/       # PDF/图片/视频/Office 处理器
├── wiki/                 # 知识维基（自动创建）
│   ├── index.md
│   ├── log.md
│   ├── overview.md
│   ├── claims.json
│   ├── sources/
│   ├── entities/
│   ├── concepts/
│   └── syntheses/
├── graph/                # 知识图谱输出
│   ├── graph.json
│   └── graph.html
└── raw/                  # 可选：源文档存放
```

---

## LLM 配置（首次使用前必须完成）

运行任何管道命令前，先检查 `.llm_config.json` 是否存在。如果未配置，执行配置向导。

### 配置文件路径

按优先级查找：
1. 技能目录下的 `.llm_config.json`
2. 当前工作目录下的 `.llm_config.json`
3. `LLM_CONFIG_JSON` 环境变量指定的路径

### 配置向导

```bash
python tools/pipeline_config.py
```

或手动创建 `.llm_config.json`：
```json
{
  "base_url": "https://api.openai.com/v1",
  "model": "gpt-4o-mini",
  "api_key": "sk-..."
}
```

常见提供商：

| 提供商 | base_url | 模型示例 |
|--------|----------|----------|
| OpenAI | `https://api.openai.com/v1` | gpt-4o-mini |
| DeepSeek | `https://api.deepseek.com/v1` | deepseek-chat |
| 火山引擎 | `https://ark.cn-beijing.volces.com/api/coding/v3` | doubao-seed-2-0-pro-260215 |
| Ollama | `http://localhost:11434/v1` | llama3.2 |

---

## 文件路径解析规则

当用户指定文件路径时：

1. **绝对路径**（如 `D:\docs\report.pdf`）→ 直接使用
2. **以 `raw/` 开头** → 相对于技能目录的 `raw/`
3. **其他相对路径** → 相对于当前工作目录（CWD）

---

## 命令：摄入文档

**触发**：用户说"摄入"、"ingest"、"导入文档"、"分析这个文件"等

### 用法
```
摄入 raw/report.pdf
摄入 D:\docs\meeting-notes.docx
ingest ./my-image.jpg
```

### 执行方式

**始终优先使用 Python 脚本**：
```bash
python <skill-dir>/tools/pipeline_ingest.py <文件路径>
```

**PDF 策略**（通过环境变量控制）：
- `PIPELINE_PDF_STRATEGY=balanced`（默认）：文本 + 多图智能理解
- `PIPELINE_PDF_STRATEGY=accurate`：偏准确率（扫描件）
- `PIPELINE_PDF_STRATEGY=fast`：纯文本提取

**图片处理**：优先用 Claude 多模态视觉直接理解；失败时降级到 Python OCR

**视频处理**：OpenCV 关键帧提取 → 多模态 LLM 理解 → 音频转写（如有 ffmpeg）

### 知识融合（核心差异化能力）

摄入时，如果目标实体/概念页面已存在：
- **不会覆盖**，而是用 LLM 合并新旧内容
- 保留已有信息，追加新源信息
- 矛盾处两者都保留，标注 `⚠️ 矛盾`
- 自动更新 frontmatter 的 `sources` 列表

### 主动矛盾检测

摄入完成后自动执行：
- 将新 claims 与 `claims.json` 中所有已有 claims 对比
- 输出跨源矛盾报告和跨源佐证
- 自动记录到 `wiki/log.md`

### 完整流程
1. 处理源文件（多模态）
2. 读取 wiki/index.md 和 overview.md 获取上下文
3. 写入 wiki/sources/<slug>.md
4. **知识融合：合并或创建**实体/概念页面
5. 更新 index.md 和 overview.md
6. 保存 key claims 到 claims.json
7. **主动矛盾检测**：对比新旧 claims
8. 追加 log.md

如果 Python 脚本失败，回退到 Claude 内置能力手动执行上述步骤。

---

## 命令：查询维基

**触发**：用户提问关于已摄入内容的问题、"query"、"查询"等

### 用法
```
query: transformer 模型的主要创新是什么？
查询 所有来源中提到的安全风险
```

### 执行方式
```bash
python <skill-dir>/tools/pipeline_query.py "问题内容"
python <skill-dir>/tools/pipeline_query.py "问题" --auto-save
```

### 跨源聚合（核心差异化能力）

查询结果包含：
- **多源视角**：每个源对同一问题的不同观点
- **共识与分歧**：
  - ✅ 多源共识：多个源一致同意的观点
  - ⚠️ 观点分歧：各源存在不同看法
  - ❓ 单源独有：仅在一个源中出现的论点
- **[[wikilink]]** 引用到具体页面

### 步骤
1. BM25 检索 + 关键词匹配找到相关页面
2. 加载 claims.json 构建跨源视角上下文
3. LLM 综合答案（含多源视角和共识分歧分析）
4. 询问用户是否保存到 wiki/syntheses/

---

## 命令：检查维基

**触发**：用户说"lint"、"检查"、"审计维基"等

### 用法
```
lint
检查维基
```

### 执行方式
```bash
python <skill-dir>/tools/pipeline_lint.py
```

### 检查项
- **孤立页面**：无入链 [[wikilinks]]
- **断链**：指向不存在页面的 [[WikiLink]]
- **矛盾**：跨页面声明冲突（含 claims.json 交叉验证）
- **过时摘要**：新源摄入后未更新的页面
- **缺失实体**：3+ 页面提及但无专属页面的实体
- **数据空白**：建议补充的新源

输出报告后询问是否保存到 wiki/lint-report.md。

---

## 命令：构建知识图谱

**触发**：用户说"build graph"、"构建图谱"、"知识图谱"等

### 用法
```
build graph
构建知识图谱
```

### 执行方式
```bash
python <skill-dir>/tools/build_graph.py --open
```

### 输出
- `graph/graph.json`：节点 + 边 + 社区数据
- `graph/graph.html`：自包含 vis.js 交互式可视化

### 备选方案
如果 Python 不可用，手动：
1. Grep 提取所有 [[wikilinks]]
2. 构建节点/边列表
3. 生成 graph.json + graph.html

---

## 命令：配置 LLM

**触发**：用户说"配置"、"config"、"设置 API"等

### 执行方式
```bash
python <skill-dir>/tools/pipeline_config.py
```

或通过交互式问答收集 base_url、model、api_key 后写入 `.llm_config.json`。

---

## 页面格式

每个维基页面使用 YAML frontmatter：

```yaml
---
title: "页面标题"
type: source | entity | concept | synthesis
tags: []
sources: []
last_updated: YYYY-MM-DD
---
```

使用 `[[PageName]]` wikilinks 链接其他页面。

### 命名规范
- Source slug: `kebab-case.md`
- Entity 页面: `TitleCase.md`（如 `OpenAI.md`、`华为云.md`）
- Concept 页面: `TitleCase.md`（如 `RAG.md`、`知识融合.md`）

---

## 设计理念

**持久化知识积累** vs RAG 查询时推导：

| 特性 | 传统 RAG | Data Pipeline |
|------|----------|---------------|
| 知识存储 | 向量数据库（无结构） | 结构化维基页面 |
| 新文档摄入 | 追加嵌入 | **知识融合**（合并已有页面） |
| 矛盾处理 | 无感知 | **主动检测并报告** |
| 查询 | 相似性检索 | **多源聚合 + 共识分歧分析** |
| 可解释性 | 黑盒 | Wikilinks + 引用溯源 |
| 可视化 | 无 | 交互式知识图谱 |

三层架构：
1. **Raw Layer**：原始文档（不可变）
2. **Wiki Layer**：LLM 生成的结构化知识
3. **Schema Layer**：配置、索引、Claims 数据库

---

## Python 依赖

首次使用前安装依赖：
```bash
pip install openai pymupdf python-docx openpyxl python-pptx beautifulsoup4 pillow
# 可选：视频处理
pip install opencv-python
```


---
Source attribution: YesIamGodt
Original project: https://github.com/YesIamGodt/knowledge-pipline/blob/96b774ea553c556a05039548a695641fa0d5a970/packages/create-data-pipeline/skill/SKILL.md
License: MIT
License information: https://opensource.org/license/mit
Original upstream instructions; downloaded from Dave AI.

## Upstream license notice

MIT License

Copyright (c) 2023 SamurAIGPT

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.



# Dave AI resource metadata

Creator / publisher: YesIamGodt
Original project: https://github.com/YesIamGodt/knowledge-pipline/blob/96b774ea553c556a05039548a695641fa0d5a970/packages/create-data-pipeline/skill/SKILL.md
Attribution basis: Source repository record

Fields of work: Data & Analytics, Development & Engineering, Education & Research, Product Management
Roles: Data Analyst, Data Scientist, ML / AI Engineer, Product Manager, Researcher
Specialties: API, Backend
Tools: OpenAI API
Country applicability: Country not specified
Classification basis: Source catalog labels
Instruction SHA-256: 49c7216f20a6d0006230cabb6fe9640a877c47f812a07f84a2c1bdbf18b5f200
