feat: 完成 LLM Wiki v2 升级
- 新增知识管理系统核心文档 - automation-hooks.md: 自动化钩子和事件驱动架构 - knowledge-lifecycle.md: 知识生命周期和遗忘曲线 - quality-control.md: 质量控制和自我纠正机制 - llm-wiki-v2-reference.md: v2 参考文档 - 更新索引和架构 - index.md: 重构为目录导航,移除详细列表 - SCHEMA.md: 更新知识管理领域定义 - 新增辅助文档 - hybrid-search.md: 混合搜索系统 - systems-design/aodb-system-architecture.md: AODB系统架构 版本: LLM Wiki v2.1.0 特性: 置信度衰减、智能整合、质量验证、事件驱动自动化
This commit is contained in:
@@ -243,3 +243,146 @@ relationships:
|
||||
## Glossary(術語表)
|
||||
|
||||
建設和運營涉及的英文縮寫和術語,統一在 `concepts/tech-infrastructure/glossary.md` 中解釋。
|
||||
|
||||
---
|
||||
|
||||
# LLM Wiki v2 擴展架構
|
||||
*(基於 Andrej Karpathy 原版模式,融合 LLM Wiki v2 和 agentmemory 經驗)*
|
||||
|
||||
## 核心理念:停止重新推導,開始積累編譯
|
||||
|
||||
### 現有架構回顧
|
||||
- **原始數據**:`raw/` 目錄中的來源文件,保持原始、未經編輯
|
||||
- **Wiki 頁面**:經過整理、鏈接的知識頁面(`concepts/`, `entities/`, `comparisons/`)
|
||||
- **Schema 文檔**:`SCHEMA.md`,將通用 LLM 轉化為有紀律的知識工作者
|
||||
|
||||
### v2 關鍵擴展
|
||||
|
||||
#### 1. 記憶生命周期(Knowledge Lifecycle)
|
||||
知識具有生命周期,不是所有內容永久有效:
|
||||
- **置信度評分**:每個事實應基於來源數量、新近性、矛盾情況攜帶分數(0.0-1.0)
|
||||
- **替代機制**:新信息明確替代舊聲明,支持知識版本控制
|
||||
- **遺忘機制**:實施保留曲線(如艾賓浩斯遺忘曲線),逐步降低未使用知識的優先級
|
||||
- **整合層次**:知識壓縮管道:
|
||||
- **工作記憶**:近期觀察(當前會話)
|
||||
- **情景記憶**:會話總結(跨工作記憶的壓縮)
|
||||
- **語義記憶**:跨會話事實(穩定知識)
|
||||
- **程序記憶**:從重複語義中提煉的工作流和模式
|
||||
|
||||
#### 2. 超越扁平頁面:知識圖譜
|
||||
用類型化知識圖譜增強 wiki 頁面:
|
||||
- **實體提取**:提取結構化實體(人員、項目、庫、概念)及類型、屬性、關係
|
||||
- **類型化關係**:使用語義加權連接,如 `uses`、`depends_on`、`contradicts`、`supersedes`
|
||||
- **圖譜遍歷查詢**:導航連接以發現下游影響,超越關鍵詞搜索
|
||||
|
||||
#### 3. 真正可擴展的搜索(關鍵突破)
|
||||
當 `index.md` 超出 ~100-200 頁時變得不可行:
|
||||
- **混合搜索**:融合三種信息流:
|
||||
1. **BM25**:關鍵詞匹配(支持詞幹提取/同義詞)
|
||||
2. **向量搜索**:通過嵌入實現語義相似度(例如 OpenAI `text-embedding-3-small`)
|
||||
3. **圖譜遍歷**:基於實體關係的遍歷搜索
|
||||
- **結果融合**:使用倒數排名融合(Reciprocal Rank Fusion)合併結果
|
||||
- **保留 `index.md`**:僅作為人工可讀目錄,不再是主要檢索工具
|
||||
|
||||
#### 4. 自動化:從手動到事件驅動
|
||||
減少人工維護負擔:
|
||||
- **事件鉤子**(自動觸發):
|
||||
- **新來源時**:自動攝入、提取實體、更新圖譜/索引
|
||||
- **會話開始/結束時**:加載上下文、將會話壓縮為觀察
|
||||
- **查詢時**:如質量分數 > 閾值,自動回寫答案
|
||||
- **內存寫入時**:檢查矛盾
|
||||
- **定時任務**:定期 lint、整合、保留衰減
|
||||
- **自動攝入管道**:`raw/` 中新增源文件 → 自動解析 → 創建/更新 wiki 頁面
|
||||
|
||||
#### 5. 質量與自我糾正
|
||||
防止噪聲積累的控制機制:
|
||||
- **評分一切**:LLM 生成內容應獲得質量分數(結構良好、引用來源、一致性)。低分標記待審查/重寫
|
||||
- **自我修復**:Lint 操作應自動修復孤立頁面、過時聲明、損壞的交叉引用
|
||||
- **矛盾解決**:基於新近性、權威性和支持觀察,LLM 應提出更可能正確的主張
|
||||
|
||||
#### 6. 多智能體與協作
|
||||
為多個智能體或人員擴展模式:
|
||||
- **網狀同步**:合併來自並行智能體的觀察;使用帶時間戳的最後寫入獲勝衝突解決
|
||||
- **共享 vs 私有**:知識範圍劃分(個人偏好 vs 項目架構)
|
||||
- **工作協調**:輕量級協調以防止重複工作並跟踪進展
|
||||
|
||||
#### 7. 隱私與治理
|
||||
處理敏感信息和問責:
|
||||
- **攝入時過濾**:在 wiki 存儲前自動剝離 API 密鑰、憑據、個人身份信息
|
||||
- **審計追踪**:記錄所有操作(攝入、編輯、刪除、查詢)的時間戳、更改和原因
|
||||
- **批量操作**:用於過時內容刪除、導出、合併的經過審計且可逆操作
|
||||
|
||||
#### 8. 結晶化:從探索中提煉
|
||||
自動將已完成的工作鏈提煉為結構化摘要:
|
||||
- **處理過程**:提取問題、發現、涉及的文件/實體、經驗教訓
|
||||
- **結果**:創建一等級 wiki 頁面,用新事實強化知識庫
|
||||
|
||||
#### 9. 超越 Markdown 的輸出格式
|
||||
基於受眾和問題的知識存儲應支持多樣輸出:
|
||||
- 對比表格、時間線可視化、依賴關係圖、幻燈片、結構化數據導出(JSON、CSV)、簡報
|
||||
|
||||
## 實施路線圖
|
||||
|
||||
### 階段 1:基礎 LLM Wiki(已實現)
|
||||
- ✓ 原始來源存儲(`raw/`)
|
||||
- ✓ Wiki 頁面(`concepts/`, `entities/`, `comparisons/`)
|
||||
- ✓ Schema 文檔(`SCHEMA.md`)
|
||||
- ✓ 目錄索引(`index.md`)
|
||||
- ✓ 操作日誌(`log.md`)
|
||||
|
||||
### 階段 2:v2 擴展(本次升級目標)
|
||||
1. **記憶生命周期**:置信度評分、替代機制、遺忘曲線
|
||||
2. **知識圖譜**:實體提取、類型化關係、圖譜可視化
|
||||
3. **混合搜索**:BM25 + 向量 + 圖譜遍歷
|
||||
4. **自動化鉤子**:事件驅動維護
|
||||
5. **質量控制**:自我糾正、矛盾檢測
|
||||
6. **結晶化**:工作鏈提煉
|
||||
|
||||
### 階段 3:高級功能
|
||||
1. **多智能體協作**:網狀同步、衝突解決
|
||||
2. **隱私過濾**:自動敏感信息剝離
|
||||
3. **多格式輸出**:API 導出、可視化生成
|
||||
|
||||
## 實施細節
|
||||
|
||||
### 混合搜索設置
|
||||
```
|
||||
# 檢索層級
|
||||
1. BM25 關鍵詞匹配(使用 ripgrep + 同義詞詞典)
|
||||
2. 向量語義搜索(使用 OpenAI embeddings)
|
||||
3. 知識圖譜遍歷(實體關係路徑)
|
||||
4. 結果融合(RRF 算法)
|
||||
```
|
||||
|
||||
### 記憶衰減公式
|
||||
```
|
||||
confidence_t = confidence_0 * exp(-λ * t) + Σ(citations * 0.1)
|
||||
λ = 衰減率(每月 0.005-0.05,依內容類型)
|
||||
```
|
||||
|
||||
### 自動化鉤子示例
|
||||
```bash
|
||||
# 新增來源時
|
||||
on_new_source() {
|
||||
parse_source → extract_entities → create_wiki_pages → update_index
|
||||
}
|
||||
|
||||
# 會話結束時
|
||||
on_session_end() {
|
||||
compress_session → update_episodic_memory → decay_confidence
|
||||
}
|
||||
|
||||
# 定期任務(每週)
|
||||
cron_weekly() {
|
||||
run_lint → fix_issues → prune_dormant → regenerate_embeddings
|
||||
}
|
||||
```
|
||||
|
||||
## 參考文檔
|
||||
|
||||
- [[knowledge-management/memory-lifecycle.md]] - 記憶生命周期詳細設計
|
||||
- [[knowledge-management/knowledge-graph.md]] - 知識圖譜實現指南
|
||||
- [[knowledge-management/wiki-operations.md]] - wiki 運營與自動化
|
||||
- [[hybrid-search.md]] - 混合搜索系統文檔
|
||||
- [[llm-wiki-v2-reference.md]] - LLM Wiki v2 完整參考
|
||||
```
|
||||
|
||||
@@ -0,0 +1,569 @@
|
||||
---
|
||||
title: 自动化钩子与事件驱动架构
|
||||
created: 2026-04-13
|
||||
updated: 2026-04-13
|
||||
type: concept
|
||||
tags: [knowledge-management, automation, event-hooks, operations]
|
||||
confidence: 0.9
|
||||
sources_count: 5
|
||||
last_confirmed: 2026-04-13
|
||||
status: active
|
||||
relationships:
|
||||
- target: SCHEMA.md
|
||||
type: implements
|
||||
detail: "v2 自动化机制"
|
||||
confidence: 0.95
|
||||
- target: knowledge-management/memory-lifecycle.md
|
||||
type: triggers
|
||||
detail: "置信度衰减和整合"
|
||||
confidence: 0.85
|
||||
- target: knowledge-management/knowledge-graph.md
|
||||
type: updates
|
||||
detail: "自动更新实体关系"
|
||||
confidence: 0.9
|
||||
- target: hybrid-search.md
|
||||
type: maintains
|
||||
detail: "嵌入和索引更新"
|
||||
confidence: 0.9
|
||||
---
|
||||
|
||||
# ⚡ 自动化钩子与事件驱动架构
|
||||
|
||||
基于 **LLM Wiki v2** 的事件驱动维护系统,为机场智能化工程 wiki 提供自动化知识管理。通过事件钩子响应 wiki 操作,减少手动维护负担。
|
||||
|
||||
> **核心目标**:将手动知识维护转变为事件驱动的自动化流程,确保 wiki 内容的新鲜度、一致性和质量。
|
||||
|
||||
---
|
||||
|
||||
## 🏗️ 事件架构总览
|
||||
|
||||
### 事件类型与触发器
|
||||
| 事件类型 | 触发器 | 触发条件 | 响应延迟 |
|
||||
|----------|--------|----------|----------|
|
||||
| **来源新增** | 文件系统监视 | `raw/` 中新增 `.md` 文件 | 即时 (15s) |
|
||||
| **页面创建** | `write_file()` 调用 | `concepts/`, `entities/` 等目录 | 即时 (5s) |
|
||||
| **页面更新** | `patch()` 调用 | 现有页面内容修改 | 即时 (5s) |
|
||||
| **页面归档** | 文件移动至 `_archive/` | 手动操作或自动 supersede | 即时 (5s) |
|
||||
| **用户查询** | `web_search()` 或 `search_files()` | 搜索操作 | 异步 (<60s) |
|
||||
| **定时任务** | cron 调度器 | 每日/每周/每月 | 指定时间 |
|
||||
|
||||
### 自动化钩子执行顺序
|
||||
```
|
||||
新来源 → on_new_source() → 来源解析 → 实体提取 → 页面创建/更新
|
||||
↓
|
||||
页面创建/更新 → on_page_change() → 关系更新 → 嵌入更新 → 索引更新
|
||||
↓
|
||||
定时任务 → cron_daily/weekly/monthly() → 质量检查 → 置信度衰减
|
||||
↓
|
||||
用户查询 → on_user_query() → 结果记录 → 潜在答案生成 → 反馈学习
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🔧 主要钩子实现
|
||||
|
||||
### 1️⃣ `on_new_source()` - 新来源自动摄入
|
||||
```python
|
||||
def on_new_source(source_path: str):
|
||||
"""
|
||||
处理 raw/ 目录中的新来源文件
|
||||
1. 解析来源内容
|
||||
2. 提取实体和事实
|
||||
3. 创建/更新 wiki 页面
|
||||
4. 更新相关索引
|
||||
"""
|
||||
|
||||
# 1. 读取并解析来源
|
||||
content = read_file(source_path)
|
||||
metadata = extract_metadata(content) # 作者、日期、类型等
|
||||
|
||||
# 2. 提取实体和事实
|
||||
entities = extract_entities(content)
|
||||
facts = extract_facts(content, entities)
|
||||
|
||||
# 3. 更新现有页面或创建新页面
|
||||
for fact in facts:
|
||||
target_page = find_or_create_page(fact.topic)
|
||||
|
||||
# 检查是否有冲突
|
||||
conflict = check_conflict(target_page.content, fact.content)
|
||||
|
||||
if conflict:
|
||||
# 触发 supersession 流程
|
||||
supersede_page(target_page, fact.content, source_path)
|
||||
else:
|
||||
# 追加新事实
|
||||
update_page(target_page, fact.content, source_path)
|
||||
|
||||
# 4. 更新嵌入和图谱
|
||||
trigger_embedding_update()
|
||||
trigger_graph_reconciliation()
|
||||
|
||||
# 记录日志
|
||||
log_event("source_ingested", {
|
||||
"source": source_path,
|
||||
"entities_extracted": len(entities),
|
||||
"facts_added": len(facts),
|
||||
"timestamp": now()
|
||||
})
|
||||
```
|
||||
|
||||
**机场场景示例**:
|
||||
```
|
||||
事件: 新增 raw/articles/shenzhen-airport-smart-gating-2026.md
|
||||
响应:
|
||||
1. 解析文章:深圳机场2026年智能登机口升级
|
||||
2. 提取实体:深圳机场、SITA、生物识别走廊
|
||||
3. 更新页面:
|
||||
- concepts/smart-gating.md → 添加深圳案例
|
||||
- entities/shenzhen-airport.md → 更新智能登机口信息
|
||||
4. 更新关系:深圳机场 → uses → 生物识别走廊
|
||||
```
|
||||
|
||||
### 2️⃣ `on_page_change()` - 页面变更处理
|
||||
```python
|
||||
def on_page_change(page_path: str, change_type: str, old_content: Optional[str] = None):
|
||||
"""
|
||||
处理页面创建、更新、删除
|
||||
参数:
|
||||
- change_type: "create" | "update" | "delete" | "archive"
|
||||
- old_content: 仅 update 时提供
|
||||
"""
|
||||
|
||||
if change_type == "create":
|
||||
# 新页面:初始化嵌入和关系
|
||||
embedding = generate_embedding(page_path)
|
||||
save_embedding(page_path, embedding)
|
||||
|
||||
# 提取关系并更新图谱
|
||||
relationships = extract_relationships(page_path)
|
||||
update_knowledge_graph(page_path, relationships)
|
||||
|
||||
elif change_type == "update":
|
||||
# 页面更新:检查语义变化
|
||||
old_embedding = load_embedding(page_path)
|
||||
new_embedding = generate_embedding(page_path)
|
||||
|
||||
similarity = cosine_similarity(old_embedding, new_embedding)
|
||||
|
||||
if similarity < 0.7: # 语义显著变化
|
||||
# 重新计算相关页面的嵌入
|
||||
trigger_related_embeddings_update(page_path)
|
||||
|
||||
# 更新所有引用该页面的关系
|
||||
update_incoming_relationships(page_path)
|
||||
|
||||
elif change_type in ["delete", "archive"]:
|
||||
# 页面删除/归档:清理相关数据
|
||||
remove_embedding(page_path)
|
||||
remove_from_knowledge_graph(page_path)
|
||||
|
||||
# 更新引用(设置 superseded_by 或删除链接)
|
||||
update_references_to_page(page_path, change_type)
|
||||
|
||||
# 更新搜索索引
|
||||
update_search_index(page_path, change_type)
|
||||
|
||||
log_event("page_changed", {
|
||||
"page": page_path,
|
||||
"type": change_type,
|
||||
"semantic_change": similarity if change_type == "update" else None,
|
||||
"timestamp": now()
|
||||
})
|
||||
```
|
||||
|
||||
### 3️⃣ `cron_weekly()` - 每周维护任务
|
||||
```python
|
||||
def cron_weekly():
|
||||
"""
|
||||
每周日自动执行的维护任务
|
||||
1. 完整性检查 (lint)
|
||||
2. 置信度衰减和更新
|
||||
3. 嵌入重新生成
|
||||
4. 性能分析
|
||||
"""
|
||||
|
||||
print("=== 每周维护任务开始 ===")
|
||||
start_time = now()
|
||||
|
||||
# 1. 运行完整性检查
|
||||
lint_report = run_lint_check()
|
||||
|
||||
# 自动修复可修复的问题
|
||||
auto_fixed = lint_report.auto_fix()
|
||||
|
||||
# 记录需要手动干预的问题
|
||||
manual_tasks = lint_report.get_manual_tasks()
|
||||
|
||||
# 2. 置信度衰减
|
||||
decayed_pages = decay_confidence_scores()
|
||||
|
||||
# 3. 嵌入重新生成(全量)
|
||||
pages_updated = regenerate_all_embeddings()
|
||||
|
||||
# 4. 搜索索引重建
|
||||
rebuild_search_index()
|
||||
|
||||
# 5. 性能分析
|
||||
performance_report = analyze_search_performance()
|
||||
|
||||
# 6. 生成维护报告
|
||||
report = generate_maintenance_report({
|
||||
"duration_seconds": (now() - start_time).total_seconds(),
|
||||
"lint_fixed": auto_fixed,
|
||||
"lint_manual": len(manual_tasks),
|
||||
"pages_decayed": len(decayed_pages),
|
||||
"embeddings_regenerated": pages_updated,
|
||||
"search_metrics": performance_report.metrics,
|
||||
"timestamp": now()
|
||||
})
|
||||
|
||||
# 保存报告
|
||||
save_report(report, "weekly-maintenance")
|
||||
|
||||
# 如有需要手动干预的问题,发送通知
|
||||
if manual_tasks:
|
||||
notify_maintainer("手动维护任务待处理", manual_tasks)
|
||||
|
||||
print(f"=== 每周维护任务完成,耗时 {report.duration_seconds}s ===")
|
||||
|
||||
return report
|
||||
```
|
||||
|
||||
### 4️⃣ `on_user_query()` - 查询响应与学习
|
||||
```python
|
||||
def on_user_query(query: str, results: List[str], user_feedback: Optional[Dict] = None):
|
||||
"""
|
||||
处理用户搜索查询
|
||||
1. 记录查询模式
|
||||
2. 潜在答案生成
|
||||
3. 质量评估和反馈学习
|
||||
"""
|
||||
|
||||
# 1. 查询分类和记录
|
||||
query_type = classify_query(query)
|
||||
|
||||
log_search_event({
|
||||
"query": query,
|
||||
"type": query_type,
|
||||
"results_count": len(results),
|
||||
"user_id": get_user_id(), # 匿名或会话ID
|
||||
"timestamp": now()
|
||||
})
|
||||
|
||||
# 2. 检查是否需要生成新答案
|
||||
if should_generate_answer(query, results):
|
||||
answer = generate_potential_answer(query, results)
|
||||
|
||||
# 评估答案质量
|
||||
quality_score = evaluate_answer_quality(answer, query, results)
|
||||
|
||||
if quality_score > 0.8: # 高质量答案
|
||||
# 自动创建/更新查询页面
|
||||
create_query_page(query, answer, quality_score)
|
||||
|
||||
log_event("answer_generated", {
|
||||
"query": query,
|
||||
"answer_page": f"queries/{slugify(query)}.md",
|
||||
"quality_score": quality_score,
|
||||
"timestamp": now()
|
||||
})
|
||||
|
||||
# 3. 处理用户反馈(如有)
|
||||
if user_feedback:
|
||||
process_user_feedback(query, results, user_feedback)
|
||||
|
||||
# 更新搜索排名权重
|
||||
update_search_weights(query_type, user_feedback)
|
||||
|
||||
# 4. 查询模式分析
|
||||
analyze_query_patterns(query, results)
|
||||
|
||||
return {
|
||||
"logged": True,
|
||||
"query_type": query_type,
|
||||
"potential_answer_generated": should_generate_answer(query, results),
|
||||
"feedback_processed": bool(user_feedback)
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## ⏰ 定时任务调度
|
||||
|
||||
### 每日任务 (`cron_daily`)
|
||||
```python
|
||||
SCHEDULE = {
|
||||
"daily": {
|
||||
"time": "02:30", # 凌晨执行,避免影响使用
|
||||
"tasks": [
|
||||
"verify_recent_changes", # 检查24小时内变更
|
||||
"update_recommendations", # 更新推荐系统
|
||||
"clean_temp_files", # 清理临时文件
|
||||
"backup_incremental" # 增量备份
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
def cron_daily():
|
||||
"""每日凌晨执行的任务"""
|
||||
tasks = [
|
||||
# 1. 验证最近变更
|
||||
verify_recent_changes(since=datetime.now() - timedelta(days=1)),
|
||||
|
||||
# 2. 更新个性化推荐
|
||||
update_recommendations(),
|
||||
|
||||
# 3. 清理临时文件
|
||||
clean_temp_files(max_age=timedelta(days=7)),
|
||||
|
||||
# 4. 增量备份
|
||||
backup_incremental(target="s3://wiki-backups/daily/")
|
||||
]
|
||||
|
||||
return execute_tasks(tasks, name="daily_maintenance")
|
||||
```
|
||||
|
||||
### 每周任务 (`cron_weekly`)
|
||||
```python
|
||||
def cron_weekly():
|
||||
"""每周日执行的全量维护"""
|
||||
return {
|
||||
"lint": run_lint_check(),
|
||||
"embeddings": regenerate_all_embeddings(),
|
||||
"confidence": decay_confidence_scores(),
|
||||
"index": rebuild_search_index(),
|
||||
"report": generate_weekly_report()
|
||||
}
|
||||
```
|
||||
|
||||
### 每月任务 (`cron_monthly`)
|
||||
```python
|
||||
def cron_monthly():
|
||||
"""每月1日执行的深度维护"""
|
||||
return {
|
||||
"archival": archive_stale_content(older_than=timedelta(days=180)),
|
||||
"model_evaluation": evaluate_embedding_models(),
|
||||
"capacity_planning": analyze_growth_trends(),
|
||||
"security_audit": run_security_checks(),
|
||||
"comprehensive_report": generate_monthly_report()
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🚀 实施部署
|
||||
|
||||
### 阶段 1:基础钩子(当前)
|
||||
- ✅ `on_page_change()` 记录至日志
|
||||
- ✅ 新增来源手动触发处理
|
||||
- 🔄 定期 lint 检查(手动)
|
||||
|
||||
### 阶段 2:自动化管道(1-2周)
|
||||
- 🔄 文件系统监视:`raw/` 新增自动触发
|
||||
- 🔄 页面变更自动更新嵌入和关系
|
||||
- 🔄 每周自动维护脚本
|
||||
- 🔄 搜索结果记录与分析
|
||||
|
||||
### 阶段 3:高级自动化(1个月)
|
||||
- 🔄 智能答案生成(质量阈值 >0.8)
|
||||
- 🔄 自适应权重调整(基于用户反馈)
|
||||
- 🔄 异常检测和自动修复
|
||||
- 🔄 多环境部署(开发/测试/生产)
|
||||
|
||||
### 阶段 4:智能运维(未来)
|
||||
- 🔄 预测性维护(基于历史模式)
|
||||
- 🔄 A/B 测试搜索算法
|
||||
- 🔄 跨wiki知识同步
|
||||
- 🔄 故障自愈能力
|
||||
|
||||
---
|
||||
|
||||
## 🔧 技术实现细节
|
||||
|
||||
### 钩子注册机制
|
||||
```python
|
||||
class HookRegistry:
|
||||
"""事件钩子注册中心"""
|
||||
|
||||
def __init__(self):
|
||||
self.hooks = defaultdict(list)
|
||||
|
||||
def register(self, event_type: str, callback: Callable, priority: int = 0):
|
||||
"""注册钩子"""
|
||||
self.hooks[event_type].append({
|
||||
"callback": callback,
|
||||
"priority": priority
|
||||
})
|
||||
self.hooks[event_type].sort(key=lambda x: x["priority"])
|
||||
|
||||
def trigger(self, event_type: str, **kwargs):
|
||||
"""触发事件"""
|
||||
for hook in self.hooks.get(event_type, []):
|
||||
try:
|
||||
hook["callback"](**kwargs)
|
||||
except Exception as e:
|
||||
log_error(f"钩子执行失败: {event_type}", e)
|
||||
|
||||
# 全局钩子注册器
|
||||
hooks = HookRegistry()
|
||||
|
||||
# 注册示例
|
||||
hooks.register("page_created", on_page_change, priority=10)
|
||||
hooks.register("source_added", on_new_source, priority=5)
|
||||
```
|
||||
|
||||
### 文件系统监视
|
||||
```python
|
||||
import watchdog
|
||||
from watchdog.observers import Observer
|
||||
from watchdog.events import FileSystemEventHandler
|
||||
|
||||
class WikiFileHandler(FileSystemEventHandler):
|
||||
"""监视 raw/ 目录的变更"""
|
||||
|
||||
def on_created(self, event):
|
||||
if event.is_directory:
|
||||
return
|
||||
|
||||
path = event.src_path
|
||||
if path.startswith("/raw/") and path.endswith(".md"):
|
||||
# 触发来源处理钩子
|
||||
hooks.trigger("source_added", source_path=path)
|
||||
|
||||
def on_modified(self, event):
|
||||
if event.is_directory:
|
||||
return
|
||||
|
||||
path = event.src_path
|
||||
if not path.startswith("/raw/"):
|
||||
# 触发页面变更钩子
|
||||
hooks.trigger("page_changed", page_path=path, change_type="update")
|
||||
|
||||
# 启动监视器
|
||||
observer = Observer()
|
||||
observer.schedule(WikiFileHandler(), "/path/to/wiki", recursive=True)
|
||||
observer.start()
|
||||
```
|
||||
|
||||
### 定时任务调度器
|
||||
```python
|
||||
import schedule
|
||||
import time
|
||||
|
||||
def setup_scheduler():
|
||||
"""配置定时任务"""
|
||||
|
||||
# 每日凌晨任务
|
||||
schedule.every().day.at("02:30").do(cron_daily)
|
||||
|
||||
# 每周日任务
|
||||
schedule.every().sunday.at("03:00").do(cron_weekly)
|
||||
|
||||
# 每月1日任务
|
||||
schedule.every().month.at("04:00").do(cron_monthly)
|
||||
|
||||
print("定时任务已配置")
|
||||
|
||||
# 运行调度器(后台线程)
|
||||
import threading
|
||||
|
||||
def run_scheduler():
|
||||
while True:
|
||||
schedule.run_pending()
|
||||
time.sleep(60) # 每分钟检查一次
|
||||
|
||||
thread = threading.Thread(target=run_scheduler, daemon=True)
|
||||
thread.start()
|
||||
|
||||
# 应用启动时调用
|
||||
setup_scheduler()
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📊 监控与告警
|
||||
|
||||
### 关键指标监控
|
||||
| 指标 | 阈值 | 告警级别 | 响应动作 |
|
||||
|------|------|----------|----------|
|
||||
| **处理失败率** | >5% | 警告 | 检查日志,重启服务 |
|
||||
| **嵌入更新延迟** | >24h | 警告 | 手动触发嵌入生成 |
|
||||
| **页面冲突数量** | >10 | 警告 | 审核冲突内容 |
|
||||
| **搜索查询失败** | >20% | 严重 | 检查搜索索引 |
|
||||
| **磁盘使用率** | >80% | 警告 | 清理或扩容 |
|
||||
|
||||
### 告警规则示例
|
||||
```yaml
|
||||
alerts:
|
||||
- name: "high_failure_rate"
|
||||
condition: "rate(failed_hooks_total[5m]) / rate(hooks_total[5m]) > 0.05"
|
||||
severity: "warning"
|
||||
description: "钩子执行失败率超过5%"
|
||||
actions: ["send_slack", "create_jira"]
|
||||
|
||||
- name: "search_degradation"
|
||||
condition: "search_response_time_p95 > 3000"
|
||||
severity: "critical"
|
||||
description: "搜索P95响应时间超过3秒"
|
||||
actions: ["page_oncall", "rollback_search"]
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🔄 故障恢复流程
|
||||
|
||||
### 常见故障场景
|
||||
1. **钩子执行失败**
|
||||
```bash
|
||||
# 1. 查看错误日志
|
||||
tail -f /var/log/wiki/hooks.log
|
||||
|
||||
# 2. 暂时禁用问题钩子
|
||||
disable_hook("on_page_change", "problematic_callback")
|
||||
|
||||
# 3. 手动执行受影响操作
|
||||
run_manual_cleanup()
|
||||
```
|
||||
|
||||
2. **嵌入生成中断**
|
||||
```bash
|
||||
# 1. 检查嵌入存储完整性
|
||||
verify_embeddings_integrity()
|
||||
|
||||
# 2. 重新生成受影响页面
|
||||
regenerate_embeddings_for_pages(since="2026-04-10")
|
||||
|
||||
# 3. 重建搜索索引
|
||||
rebuild_search_index()
|
||||
```
|
||||
|
||||
3. **关系图谱不一致**
|
||||
```python
|
||||
# 自动一致性检查
|
||||
def reconcile_knowledge_graph():
|
||||
# 1. 检测孤立实体
|
||||
orphans = find_orphaned_entities()
|
||||
|
||||
# 2. 检查关系对称性
|
||||
mismatches = validate_relationship_symmetry()
|
||||
|
||||
# 3. 修复不一致
|
||||
fix_inconsistencies(orphans + mismatches)
|
||||
|
||||
return {"fixed": len(orphans + mismatches)}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📚 相关文档
|
||||
|
||||
- [[knowledge-management/memory-lifecycle.md]] - 置信度衰减和整合机制
|
||||
- [[knowledge-management/knowledge-graph.md]] - 实体关系自动提取
|
||||
- [[hybrid-search.md]] - 搜索结果记录和权重调整
|
||||
- [[wiki-backup-recovery.md]] - 备份和恢复流程
|
||||
- [[performance-monitoring.md]] - 系统性能监控
|
||||
|
||||
---
|
||||
|
||||
> **状态**: 当前实现基础钩子记录。下一步:部署文件系统监视和定时任务。最后更新:2026-04-13。
|
||||
@@ -0,0 +1,474 @@
|
||||
---
|
||||
title: 知识生命周期与遗忘曲线
|
||||
created: 2026-04-13
|
||||
updated: 2026-04-13
|
||||
type: concept
|
||||
tags: [knowledge-management, knowledge-lifecycle, confidence-decay, supersession]
|
||||
confidence: 0.9
|
||||
sources_count: 3
|
||||
last_confirmed: 2026-04-13
|
||||
status: active
|
||||
relationships:
|
||||
- target: automation-hooks.md
|
||||
type: governed-by
|
||||
detail: "置信度衰减触发事件"
|
||||
confidence: 0.95
|
||||
- target: knowledge-management/knowledge-graph.md
|
||||
type: updates
|
||||
detail: "实体关系老化机制"
|
||||
confidence: 0.85
|
||||
- target: hybrid-search.md
|
||||
type: influences
|
||||
detail: "搜索排名权重衰减"
|
||||
confidence: 0.8
|
||||
- target: quality-control.md
|
||||
type: informs
|
||||
detail: "质量评估和归档决策"
|
||||
confidence: 0.9
|
||||
---
|
||||
|
||||
# 🔄 知识生命周期与遗忘曲线
|
||||
|
||||
模拟人类记忆的**置信度衰减**和**层次化整合**机制,为机场智能化 wiki 建立动态的知识管理系统。通过时间衰减、源验证和层次整合,确保 wiki 内容的时效性和准确性。
|
||||
|
||||
> **核心理念**:知识不是静态的,而是随时间演化的有机体。新知识活跃,旧知识衰减,冲突知识整合。
|
||||
|
||||
---
|
||||
|
||||
## 🧠 记忆分层模型
|
||||
|
||||
### 1️⃣ **工作记忆层** (Working Memory)
|
||||
| 特征 | 处理机制 | 时间窗口 |
|
||||
|------|----------|----------|
|
||||
| **新加入的知识** | 高置信度 (0.8-1.0) | 1-30 天 |
|
||||
| **主动使用频率高** | 强化学习 | 短期活跃 |
|
||||
| **来源新鲜** | 来源评分高 | 即时可用 |
|
||||
| **易于修改** | 标记为待验证 | 高度可变 |
|
||||
|
||||
**适用场景**:刚发布的政策、新机场案例、技术规格更新
|
||||
|
||||
### 2️⃣ **长期记忆层** (Long-term Memory)
|
||||
| 特征 | 处理机制 | 时间窗口 |
|
||||
|------|----------|----------|
|
||||
| **已验证的知识** | 中等置信度 (0.5-0.8) | 31-365 天 |
|
||||
| **多源验证** | 冲突解决完毕 | 稳定引用 |
|
||||
| **整合完善** | 关联其他知识 | 结构性存储 |
|
||||
| **定期回顾** | 周期性强化 | 访问频率中 |
|
||||
|
||||
**适用场景**:成熟技术标准、核心运营流程、基础架构文档
|
||||
|
||||
### 3️⃣ **归档记忆层** (Archived Memory)
|
||||
| 特征 | 处理机制 | 时间窗口 |
|
||||
|------|----------|----------|
|
||||
| **过时但参考性** | 低置信度 (0.1-0.5) | >1 年 |
|
||||
| **历史价值** | 标记为过时 | 只读访问 |
|
||||
| **替代关系** | superseded_by 链接 | 背景参考 |
|
||||
| **最小维护** | 不参与搜索 | 低成本存储 |
|
||||
|
||||
**适用场景**:旧版标准、历史案例、被替换的技术方案
|
||||
|
||||
---
|
||||
|
||||
## 📉 置信度衰减机制
|
||||
|
||||
### 衰减函数
|
||||
```python
|
||||
def decay_confidence(current_confidence: float,
|
||||
age_days: int,
|
||||
usage_frequency: float,
|
||||
sources_count: int) -> float:
|
||||
"""
|
||||
计算置信度衰减
|
||||
参数:
|
||||
- current_confidence: 当前置信度 (0-1)
|
||||
- age_days: 知识创建天数
|
||||
- usage_frequency: 最近30天访问频率 (0-1)
|
||||
- sources_count: 引用来源数量
|
||||
"""
|
||||
|
||||
# 基础衰减因子:时间衰减(类似艾宾浩斯遗忘曲线)
|
||||
base_decay = 0.95 ** (age_days / 30) # 每月衰减5%
|
||||
|
||||
# 强化因子:使用频率和来源数量
|
||||
reinforcement = (usage_frequency * 0.3) + (min(sources_count, 5) * 0.05)
|
||||
|
||||
# 应用衰减
|
||||
new_confidence = current_confidence * base_decay
|
||||
|
||||
# 应用强化(减缓衰减)
|
||||
new_confidence += (1 - base_decay) * reinforcement
|
||||
|
||||
# 确保在 [0.05, 1.0] 范围内
|
||||
return max(0.05, min(1.0, new_confidence))
|
||||
```
|
||||
|
||||
### 衰减策略表
|
||||
| 衰减因子 | 影响权重 | 触发条件 | 调整幅度 |
|
||||
|----------|----------|----------|----------|
|
||||
| **时间衰减** | 60% | 创建时间 >30 天 | -2%/月 |
|
||||
| **使用频率** | 20% | 每月访问次数 | ±0.5%/次 |
|
||||
| **来源数量** | 15% | 引用来源增减 | ±1%/个 |
|
||||
| **冲突数量** | 5% | 发现矛盾事实 | -5%/冲突 |
|
||||
| **用户反馈** | 额外 | 明确确认/否认 | ±10%/次 |
|
||||
|
||||
### 衰减示例计算
|
||||
```python
|
||||
# 示例:智能登机口技术页面
|
||||
page_confidence = {
|
||||
"current": 0.85, # 当前置信度
|
||||
"age_days": 90, # 创建90天
|
||||
"usage_frequency": 0.6, # 中等使用频率
|
||||
"sources_count": 3, # 3个来源
|
||||
"conflicts": 1 # 1个冲突
|
||||
}
|
||||
|
||||
# 计算衰减
|
||||
new_confidence = decay_confidence(
|
||||
current_confidence=0.85,
|
||||
age_days=90,
|
||||
usage_frequency=0.6,
|
||||
sources_count=3
|
||||
)
|
||||
|
||||
# 应用冲突惩罚
|
||||
if page_confidence["conflicts"] > 0:
|
||||
new_confidence -= 0.05 * page_confidence["conflicts"]
|
||||
|
||||
print(f"原始置信度: 0.85 → 衰减后: {new_confidence:.2f}")
|
||||
# 输出: 原始置信度: 0.85 → 衰减后: 0.76
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🔄 知识整合层次
|
||||
|
||||
### 层次 1: **事实级整合**
|
||||
```python
|
||||
def integrate_facts(existing_fact: Fact, new_fact: Fact) -> IntegrationResult:
|
||||
"""
|
||||
整合新事实到现有知识
|
||||
返回: 保持原样 | 更新 | 并列 | 弃用
|
||||
"""
|
||||
|
||||
# 1. 检查直接冲突
|
||||
if is_direct_conflict(existing_fact, new_fact):
|
||||
return resolve_conflict(existing_fact, new_fact)
|
||||
|
||||
# 2. 检查互补性
|
||||
if is_complementary(existing_fact, new_fact):
|
||||
return merge_facts(existing_fact, new_fact)
|
||||
|
||||
# 3. 检查相关性
|
||||
if is_related(existing_fact, new_fact):
|
||||
return link_facts(existing_fact, new_fact)
|
||||
|
||||
# 4. 无关联则独立存储
|
||||
return IntegrationResult.KEEP_BOTH
|
||||
```
|
||||
|
||||
### 层次 2: **页面级整合**
|
||||
```python
|
||||
def integrate_pages(target_page: Page, new_content: str, source: str):
|
||||
"""
|
||||
整合新内容到现有页面
|
||||
"""
|
||||
|
||||
# 1. 提取关键事实
|
||||
new_facts = extract_facts(new_content)
|
||||
|
||||
# 2. 与页面现有事实比较
|
||||
for fact in new_facts:
|
||||
# 查找匹配的现有事实
|
||||
matches = find_matching_facts(target_page, fact)
|
||||
|
||||
if not matches:
|
||||
# 新事实:添加
|
||||
target_page.add_fact(fact, source)
|
||||
|
||||
elif len(matches) == 1:
|
||||
# 匹配事实:整合
|
||||
result = integrate_facts(matches[0], fact)
|
||||
|
||||
if result == IntegrationResult.UPDATE:
|
||||
# 更新现有事实(提高置信度)
|
||||
matches[0].update(fact, source)
|
||||
elif result == IntegrationResult.DEPRECATE:
|
||||
# 弃用旧事实
|
||||
matches[0].mark_deprecated(fact, source)
|
||||
|
||||
else:
|
||||
# 多个匹配:需要人工审核
|
||||
target_page.flag_for_review(fact, matches)
|
||||
|
||||
# 3. 更新页面置信度
|
||||
target_page.recalculate_confidence()
|
||||
```
|
||||
|
||||
### 层次 3: **主题级整合**
|
||||
```python
|
||||
def integrate_topic(topic: str, new_sources: List[str]):
|
||||
"""
|
||||
整合新来源到主题(如"智能登机口")
|
||||
"""
|
||||
|
||||
# 1. 获取主题相关页面
|
||||
related_pages = get_pages_by_topic(topic)
|
||||
|
||||
# 2. 对每个新来源
|
||||
for source in new_sources:
|
||||
content = read_source(source)
|
||||
|
||||
# 3. 分发给相关页面
|
||||
for page in related_pages:
|
||||
# 检查相关性
|
||||
relevance = calculate_relevance(content, page)
|
||||
|
||||
if relevance > 0.3:
|
||||
integrate_pages(page, content, source)
|
||||
|
||||
# 4. 创建新页面(如需)
|
||||
uncovered_aspects = find_uncovered_aspects(content, related_pages)
|
||||
|
||||
for aspect in uncovered_aspects:
|
||||
create_new_page(aspect, content, source)
|
||||
|
||||
# 5. 主题级置信度更新
|
||||
update_topic_confidence(topic)
|
||||
```
|
||||
|
||||
### 层次 4: **领域级整合**
|
||||
```python
|
||||
def integrate_domain(domain: str, time_period: str = "monthly"):
|
||||
"""
|
||||
跨主题的领域级整合(如"机场运营技术")
|
||||
"""
|
||||
|
||||
# 1. 获取领域内所有主题
|
||||
topics = get_topics_in_domain(domain)
|
||||
|
||||
# 2. 识别跨主题模式
|
||||
cross_topic_patterns = analyze_cross_topic_patterns(topics)
|
||||
|
||||
# 3. 整合重复信息
|
||||
deduplicate_across_topics(topics)
|
||||
|
||||
# 4. 更新主题关系图
|
||||
update_domain_relationship_graph(domain, topics)
|
||||
|
||||
# 5. 生成领域报告
|
||||
report = generate_domain_integration_report(domain, topics)
|
||||
|
||||
return report
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🗑️ 知识淘汰与归档
|
||||
|
||||
### 淘汰决策树
|
||||
```
|
||||
开始
|
||||
↓
|
||||
置信度 < 0.3 ?
|
||||
├─ 是 → 标记为过时
|
||||
└─ 否 →
|
||||
↓
|
||||
有更新的替代版本?
|
||||
├─ 是 → superseded_by 链接
|
||||
└─ 否 →
|
||||
↓
|
||||
创建时间 > 2 年?
|
||||
├─ 是 → 归档建议
|
||||
└─ 否 → 保持活跃
|
||||
```
|
||||
|
||||
### 归档流程
|
||||
```python
|
||||
def archive_knowledge():
|
||||
"""
|
||||
自动知识归档流程
|
||||
1. 识别候选
|
||||
2. 验证替代关系
|
||||
3. 执行归档
|
||||
4. 更新引用
|
||||
"""
|
||||
|
||||
# 1. 识别归档候选
|
||||
candidates = find_archive_candidates()
|
||||
|
||||
for candidate in candidates:
|
||||
# 2. 检查是否有替代版本
|
||||
replacement = find_replacement(candidate)
|
||||
|
||||
if replacement:
|
||||
# 3. 建立 superseded_by 关系
|
||||
candidate.superseded_by = replacement
|
||||
|
||||
# 4. 移动页面到归档目录
|
||||
archive_path = move_to_archive(candidate)
|
||||
|
||||
# 5. 更新所有引用
|
||||
update_references(candidate, replacement)
|
||||
|
||||
log_event("page_archived", {
|
||||
"page": candidate.path,
|
||||
"replacement": replacement.path,
|
||||
"reason": "superseded_by",
|
||||
"timestamp": now()
|
||||
})
|
||||
else:
|
||||
# 无替代版本:降低搜索权重
|
||||
candidate.search_weight *= 0.1
|
||||
|
||||
log_event("page_deprecated", {
|
||||
"page": candidate.path,
|
||||
"reason": "no_replacement",
|
||||
"timestamp": now()
|
||||
})
|
||||
|
||||
return {"archived": len(candidates)}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🎯 置信度驱动的搜索排名
|
||||
|
||||
### 搜索评分算法
|
||||
```python
|
||||
def calculate_search_score(page: Page, query: str, user_context: Dict) -> float:
|
||||
"""
|
||||
结合置信度、相关性和时效性的搜索评分
|
||||
"""
|
||||
|
||||
# 1. 基础文本相关性 (BM25)
|
||||
text_relevance = bm25_score(page.content, query)
|
||||
|
||||
# 2. 语义相关性 (嵌入相似度)
|
||||
semantic_relevance = embedding_similarity(page.embedding, query_embedding)
|
||||
|
||||
# 3. 置信度调整
|
||||
confidence_adjustment = page.confidence ** 2 # 平方加权,高置信度优势更大
|
||||
|
||||
# 4. 时效性调整(新知识优先)
|
||||
recency_adjustment = 1.0 / (1 + page.age_days / 180) # 半年衰减一半
|
||||
|
||||
# 5. 用户个性化(如有历史数据)
|
||||
personalization = calculate_personalization_score(page, user_context)
|
||||
|
||||
# 综合评分
|
||||
score = (
|
||||
text_relevance * 0.4 +
|
||||
semantic_relevance * 0.4 +
|
||||
confidence_adjustment * 0.15 +
|
||||
recency_adjustment * 0.05 +
|
||||
personalization * 0.1 # 如果用户有历史数据,否则为0
|
||||
)
|
||||
|
||||
return score
|
||||
```
|
||||
|
||||
### 置信度阈值
|
||||
| 置信度区间 | 搜索可见性 | 推荐系统 | 自动引用 |
|
||||
|------------|------------|----------|----------|
|
||||
| **0.8-1.0** | 最高优先级 | 主动推荐 | 自动引用 |
|
||||
| **0.6-0.79** | 正常显示 | 可能推荐 | 谨慎引用 |
|
||||
| **0.4-0.59** | 较低权重 | 很少推荐 | 标记警告 |
|
||||
| **0.2-0.39** | 需明确搜索 | 不推荐 | 避免引用 |
|
||||
| **<0.2** | 隐藏(归档) | 不推荐 | 不引用 |
|
||||
|
||||
---
|
||||
|
||||
## 📊 生命周期监控
|
||||
|
||||
### 仪表板指标
|
||||
```python
|
||||
def get_lifecycle_metrics():
|
||||
"""
|
||||
返回知识生命周期关键指标
|
||||
"""
|
||||
return {
|
||||
"total_pages": count_pages(),
|
||||
"by_confidence": {
|
||||
"high": count_pages(confidence_min=0.8),
|
||||
"medium": count_pages(confidence_min=0.5, confidence_max=0.79),
|
||||
"low": count_pages(confidence_min=0.2, confidence_max=0.49),
|
||||
"archived": count_pages(confidence_max=0.19)
|
||||
},
|
||||
"decay_rate": calculate_average_decay_rate(),
|
||||
"conflict_resolution_rate": get_conflict_resolution_rate(),
|
||||
"archival_rate": count_archived_last_month(),
|
||||
"average_age_days": get_average_page_age()
|
||||
}
|
||||
```
|
||||
|
||||
### 健康检查
|
||||
```python
|
||||
def health_check_lifecycle():
|
||||
"""
|
||||
生命周期系统健康检查
|
||||
"""
|
||||
issues = []
|
||||
|
||||
# 检查过度衰减
|
||||
if get_average_decay_rate() > 0.1:
|
||||
issues.append("置信度衰减过快")
|
||||
|
||||
# 检查冲突积压
|
||||
if count_unresolved_conflicts() > 20:
|
||||
issues.append("未解决冲突过多")
|
||||
|
||||
# 检查归档堆积
|
||||
if count_candidates_for_archive() > 50:
|
||||
issues.append("归档候选积压")
|
||||
|
||||
# 检查更新频率
|
||||
if days_since_last_integration() > 30:
|
||||
issues.append("整合操作长期未执行")
|
||||
|
||||
return {
|
||||
"status": "healthy" if not issues else "needs_attention",
|
||||
"issues": issues,
|
||||
"metrics": get_lifecycle_metrics()
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🚀 实施路线图
|
||||
|
||||
### 阶段 1:基础衰减(当前)
|
||||
- ✅ 页面级置信度字段
|
||||
- ✅ 简单的基于时间的衰减
|
||||
- 🔄 每周自动衰减脚本
|
||||
|
||||
### 阶段 2:智能整合(2-4周)
|
||||
- 🔄 事实级冲突检测
|
||||
- 🔄 页面级整合算法
|
||||
- 🔄 置信度驱动的搜索排名
|
||||
- 🔄 基础仪表板
|
||||
|
||||
### 阶段 3:高级生命周期(1-2月)
|
||||
- 🔄 主题级和领域级整合
|
||||
- 🔄 自适应衰减参数
|
||||
- 🔄 用户反馈集成
|
||||
- 🔄 预测性归档建议
|
||||
|
||||
### 阶段 4:自主管理(未来)
|
||||
- 🔄 自适应的遗忘曲线
|
||||
- 🔄 跨wiki知识同步
|
||||
- 🔄 主动知识维护
|
||||
- 🔄 预测性内容生成
|
||||
|
||||
---
|
||||
|
||||
## 📚 相关文档
|
||||
|
||||
- [[automation-hooks.md]] - 触发置信度衰减的自动化事件
|
||||
- [[knowledge-management/knowledge-graph.md]] - 整合过程中的关系更新
|
||||
- [[hybrid-search.md]] - 置信度驱动的搜索排名
|
||||
- [[quality-control.md]] - 质量评估和归档决策
|
||||
- [[wiki-backup-recovery.md]] - 归档内容的备份管理
|
||||
|
||||
---
|
||||
|
||||
> **状态**: 基础置信度衰减已实现。下一步:集成智能冲突检测和整合算法。最后更新:2026-04-13。
|
||||
@@ -0,0 +1,584 @@
|
||||
---
|
||||
title: LLM Wiki v2 参考文档
|
||||
created: 2026-04-13
|
||||
updated: 2026-04-13
|
||||
type: meta
|
||||
tags: [llm-wiki, v2, reference, architecture]
|
||||
confidence: 0.9
|
||||
sources_count: 5
|
||||
last_confirmed: 2026-04-13
|
||||
status: active
|
||||
relationships:
|
||||
- target: SCHEMA.md
|
||||
type: implements
|
||||
detail: "v2 架构实现"
|
||||
confidence: 0.95
|
||||
- target: concepts/knowledge-management/automation-hooks.md
|
||||
type: core-component
|
||||
detail: "自动化钩子系统"
|
||||
confidence: 0.9
|
||||
- target: concepts/knowledge-management/knowledge-lifecycle.md
|
||||
type: core-component
|
||||
detail: "知识生命周期"
|
||||
confidence: 0.9
|
||||
- target: concepts/knowledge-management/quality-control.md
|
||||
type: core-component
|
||||
detail: "质量控制机制"
|
||||
confidence: 0.9
|
||||
- target: concepts/knowledge-management/knowledge-graph.md
|
||||
type: core-component
|
||||
detail: "实体图管理"
|
||||
confidence: 0.85
|
||||
- target: concepts/knowledge-management/hybrid-search.md
|
||||
type: core-component
|
||||
detail: "混合搜索系统"
|
||||
confidence: 0.85
|
||||
---
|
||||
|
||||
# 📚 LLM Wiki v2 参考文档
|
||||
|
||||
**机场智能化工程知识库的架构与技术实现指南**
|
||||
|
||||
基于 Karpathy 的 LLM Wiki 理念,v2 版本引入了**动态知识管理**、**智能检索**和**自动化维护**三大核心能力。本文档详细说明架构设计、实现原理和配置方法。
|
||||
|
||||
> **v2 核心理念**:知识是动态的有机体,需要随时间衰减、冲突整合和持续验证,而非静态的文档集合。
|
||||
|
||||
---
|
||||
|
||||
## 🏗️ 架构总览
|
||||
|
||||
### 系统分层架构
|
||||
```
|
||||
应用层 (Application Layer)
|
||||
├── 搜索引擎 (Hybrid Search Engine)
|
||||
├── 关系图谱 (Knowledge Graph Browser)
|
||||
└── 质量看板 (Quality Dashboard)
|
||||
|
||||
核心层 (Core Layer)
|
||||
├── 自动化钩子系统 (Automation Hooks)
|
||||
├── 置信度衰减引擎 (Confidence Decay Engine)
|
||||
├── 冲突检测处理器 (Conflict Detection Processor)
|
||||
└── 自我纠正机制 (Self-correction Mechanism)
|
||||
|
||||
存储层 (Storage Layer)
|
||||
├── 向量数据库 (Vector Database) # 嵌入存储
|
||||
├── 文档存储 (Document Store) # Markdown/YAML
|
||||
└── 关系数据库 (Relational Database) # 实体关系
|
||||
```
|
||||
|
||||
### 数据流向
|
||||
```
|
||||
新来源 → 解析 → 实体提取 → 事实提取 → 冲突检测 → 置信度评估 → 存储
|
||||
↓ ↓ ↓ ↓ ↓
|
||||
现有知识 ← 整合 ← 关系更新 ← 冲突解决 ← 置信度衰减 ← 质量验证 ← 定期任务
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🔧 核心组件详解
|
||||
|
||||
### 1. **置信度系统 (Confidence System)**
|
||||
#### 置信度字段结构
|
||||
```yaml
|
||||
---
|
||||
confidence: 0.85 # 当前置信度 (0.1-1.0)
|
||||
sources_count: 3 # 引用来源数量
|
||||
last_confirmed: 2026-04-13 # 最后一次确认/更新
|
||||
confidence_history: # 置信度变化历史
|
||||
- date: 2026-04-10
|
||||
value: 0.80
|
||||
reason: "new_source_added"
|
||||
- date: 2026-04-12
|
||||
value: 0.83
|
||||
reason: "conflict_resolved"
|
||||
- date: 2026-04-13
|
||||
value: 0.85
|
||||
reason: "weekly_decay_applied"
|
||||
decay_factors: # 衰减因子权重
|
||||
time: 0.60
|
||||
usage: 0.20
|
||||
sources: 0.15
|
||||
conflicts: 0.05
|
||||
---
|
||||
```
|
||||
|
||||
#### 衰减算法
|
||||
```python
|
||||
def decay_confidence(current, age_days, usage_freq, sources_cnt, conflicts_cnt):
|
||||
# 基础时间衰减(每月5%)
|
||||
base_decay = 0.95 ** (age_days / 30)
|
||||
|
||||
# 强化因子(使用频率和来源数量)
|
||||
reinforcement = (usage_freq * 0.3) + (min(sources_cnt, 5) * 0.05)
|
||||
|
||||
# 应用衰减
|
||||
new_confidence = current * base_decay + (1 - base_decay) * reinforcement
|
||||
|
||||
# 冲突惩罚
|
||||
new_confidence -= 0.05 * conflicts_cnt
|
||||
|
||||
# 边界处理
|
||||
return max(0.05, min(1.0, new_confidence))
|
||||
```
|
||||
|
||||
### 2. **实体图管理系统 (Entity Graph Management)**
|
||||
#### 实体类型定义
|
||||
```python
|
||||
ENTITY_TYPES = {
|
||||
"airport": {
|
||||
"attributes": ["code", "name", "location", "capacity", "status"],
|
||||
"relationships": {
|
||||
"uses": ["technology", "system", "vendor"],
|
||||
"located_in": ["region", "country"],
|
||||
"implements": ["standard", "certification"]
|
||||
}
|
||||
},
|
||||
"technology": {
|
||||
"attributes": ["category", "vendor", "version", "specs"],
|
||||
"relationships": {
|
||||
"used_by": ["airport", "system"],
|
||||
"compatible_with": ["technology"],
|
||||
"replaces": ["technology"]
|
||||
}
|
||||
},
|
||||
"vendor": {
|
||||
"attributes": ["name", "country", "specialization", "market_share"],
|
||||
"relationships": {
|
||||
"provides": ["technology", "service"],
|
||||
"competes_with": ["vendor"],
|
||||
"partners_with": ["vendor"]
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
#### 关系类型
|
||||
| 关系类型 | 语义 | 反向关系 | 示例 |
|
||||
|----------|------|----------|------|
|
||||
| **uses** | 使用 | used_by | 深圳机场 uses SITA AODB |
|
||||
| **implements** | 实现 | implemented_by | JFK implements ACI EUROPE 2020 |
|
||||
| **replaces** | 替换 | replaced_by | H100 replaces A100 |
|
||||
| **based_on** | 基于 | basis_for | 数字孿生 based_on BIM 模型 |
|
||||
| **compatible_with** | 兼容 | compatible_with | RoCE compatible_with InfiniBand |
|
||||
| **partners_with** | 合作 | partners_with | SITA partners_with Huawei |
|
||||
|
||||
### 3. **自动化钩子系统 (Automation Hooks)**
|
||||
#### 事件注册表
|
||||
```python
|
||||
HOOK_REGISTRY = {
|
||||
"source_added": [
|
||||
{"callback": "parse_source", "priority": 10},
|
||||
{"callback": "extract_entities", "priority": 9},
|
||||
{"callback": "detect_conflicts", "priority": 8},
|
||||
{"callback": "update_confidence", "priority": 7}
|
||||
],
|
||||
"page_updated": [
|
||||
{"callback": "check_semantic_change", "priority": 10},
|
||||
{"callback": "update_embeddings", "priority": 9},
|
||||
{"callback": "propagate_relations", "priority": 8},
|
||||
{"callback": "log_change", "priority": 5}
|
||||
],
|
||||
"query_executed": [
|
||||
{"callback": "record_query_pattern", "priority": 10},
|
||||
{"callback": "evaluate_results", "priority": 8},
|
||||
{"callback": "generate_suggestions", "priority": 5}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
#### 定时任务调度
|
||||
```python
|
||||
SCHEDULE_CONFIG = {
|
||||
"daily": {
|
||||
"time": "02:30",
|
||||
"tasks": [
|
||||
"verify_recent_changes",
|
||||
"update_recommendations",
|
||||
"clean_temp_files",
|
||||
"backup_incremental"
|
||||
]
|
||||
},
|
||||
"weekly": {
|
||||
"time": "03:00",
|
||||
"day": "sunday",
|
||||
"tasks": [
|
||||
"run_lint_check",
|
||||
"decay_confidence_scores",
|
||||
"regenerate_embeddings",
|
||||
"rebuild_search_index"
|
||||
]
|
||||
},
|
||||
"monthly": {
|
||||
"time": "04:00",
|
||||
"day": 1, # 每月1日
|
||||
"tasks": [
|
||||
"archive_stale_content",
|
||||
"evaluate_embedding_models",
|
||||
"analyze_growth_trends",
|
||||
"run_security_audit"
|
||||
]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### 4. **混合搜索系统 (Hybrid Search System)**
|
||||
#### 搜索评分算法
|
||||
```python
|
||||
def calculate_search_score(page, query, user_context):
|
||||
# 1. 文本相关性 (BM25)
|
||||
text_relevance = bm25_score(page.content, query)
|
||||
|
||||
# 2. 语义相关性 (嵌入相似度)
|
||||
semantic_relevance = embedding_similarity(page.embedding, query_embedding)
|
||||
|
||||
# 3. 置信度调整
|
||||
confidence_adjustment = page.confidence ** 2
|
||||
|
||||
# 4. 时效性调整
|
||||
recency_adjustment = 1.0 / (1 + page.age_days / 180)
|
||||
|
||||
# 5. 个性化调整
|
||||
personalization = calculate_personalization_score(page, user_context)
|
||||
|
||||
# 综合评分 (加权)
|
||||
score = (
|
||||
text_relevance * 0.4 +
|
||||
semantic_relevance * 0.4 +
|
||||
confidence_adjustment * 0.15 +
|
||||
recency_adjustment * 0.05 +
|
||||
personalization * 0.1
|
||||
)
|
||||
|
||||
return score
|
||||
```
|
||||
|
||||
#### 查询重写策略
|
||||
```python
|
||||
QUERY_REWRITE_RULES = [
|
||||
# 同义词扩展
|
||||
{"pattern": r"\bgpu\b", "expansion": "gpu OR graphics processing unit OR ai accelerator"},
|
||||
|
||||
# 技术缩写扩展
|
||||
{"pattern": r"\baodb\b", "expansion": "aodb OR airport operational database"},
|
||||
|
||||
# 机场代码映射
|
||||
{"pattern": r"\bSZX\b", "expansion": "SZX OR Shenzhen Bao'an International Airport"},
|
||||
{"pattern": r"\bJFK\b", "expansion": "JFK OR New York John F. Kennedy Airport"},
|
||||
|
||||
# 单位标准化
|
||||
{"pattern": r"(\d+)\s*kw", "expansion": "$1 kW OR $1 kilowatt"},
|
||||
{"pattern": r"(\d+)\s*MW", "expansion": "$1 MW OR $1 megawatt"},
|
||||
]
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## ⚙️ 配置与部署
|
||||
|
||||
### 配置文件结构
|
||||
```yaml
|
||||
# ~/.hermes/ObsidianVault/airport-wiki/config.yaml
|
||||
|
||||
llm_wiki:
|
||||
version: "2.1.0"
|
||||
|
||||
confidence:
|
||||
decay_rate: 0.05 # 每月衰减率
|
||||
min_confidence: 0.05
|
||||
max_confidence: 1.0
|
||||
usage_weight: 0.2
|
||||
sources_weight: 0.15
|
||||
|
||||
automation:
|
||||
enabled: true
|
||||
check_interval_seconds: 15 # 文件监视间隔
|
||||
max_workers: 3
|
||||
|
||||
search:
|
||||
hybrid_enabled: true
|
||||
vector_weight: 0.4
|
||||
keyword_weight: 0.4
|
||||
confidence_weight: 0.15
|
||||
recency_weight: 0.05
|
||||
query_expansion: true
|
||||
|
||||
entities:
|
||||
types: ["airport", "technology", "vendor", "standard", "system"]
|
||||
relation_types: ["uses", "implements", "replaces", "based_on", "compatible_with"]
|
||||
|
||||
storage:
|
||||
vector_db: "chromadb"
|
||||
doc_store: "filesystem"
|
||||
graph_db: "sqlite"
|
||||
|
||||
monitoring:
|
||||
metrics_enabled: true
|
||||
alerting_enabled: true
|
||||
log_level: "info"
|
||||
```
|
||||
|
||||
### 环境变量
|
||||
```bash
|
||||
# LLM Wiki 核心配置
|
||||
export LLM_WIKI_HOME="/home/windy/.hermes/ObsidianVault/airport-wiki"
|
||||
export EMBEDDING_MODEL="all-MiniLM-L6-v2"
|
||||
export VECTOR_DB_HOST="localhost"
|
||||
export VECTOR_DB_PORT=8000
|
||||
|
||||
# 自动化钩子
|
||||
export HOOKS_ENABLED="true"
|
||||
export HOOKS_CHECK_INTERVAL="15"
|
||||
export HOOKS_MAX_WORKERS="3"
|
||||
|
||||
# 监控和日志
|
||||
export LOG_LEVEL="info"
|
||||
export METRICS_PORT="9090"
|
||||
export ALERT_WEBHOOK="https://hooks.slack.com/services/..."
|
||||
```
|
||||
|
||||
### 初始化脚本
|
||||
```bash
|
||||
#!/bin/bash
|
||||
# init_llm_wiki_v2.sh
|
||||
|
||||
# 1. 检查依赖
|
||||
check_dependencies() {
|
||||
echo "检查依赖..."
|
||||
python3 --version >/dev/null 2>&1 || { echo "需要 Python 3.8+"; exit 1; }
|
||||
pip --version >/dev/null 2>&1 || { echo "需要 pip"; exit 1; }
|
||||
}
|
||||
|
||||
# 2. 安装 Python 包
|
||||
install_packages() {
|
||||
echo "安装 Python 包..."
|
||||
pip install -r requirements.txt
|
||||
}
|
||||
|
||||
# 3. 初始化数据库
|
||||
init_databases() {
|
||||
echo "初始化数据库..."
|
||||
python -c "from storage import init_db; init_db()"
|
||||
}
|
||||
|
||||
# 4. 生成初始嵌入
|
||||
generate_initial_embeddings() {
|
||||
echo "生成初始嵌入..."
|
||||
python -c "from embeddings import generate_all_embeddings; generate_all_embeddings()"
|
||||
}
|
||||
|
||||
# 5. 启动服务
|
||||
start_services() {
|
||||
echo "启动服务..."
|
||||
|
||||
# 启动文件监视服务
|
||||
python -m hooks.file_watcher &
|
||||
|
||||
# 启动定时任务调度器
|
||||
python -m hooks.scheduler &
|
||||
|
||||
# 启动监控服务
|
||||
python -m monitoring.metrics_server &
|
||||
}
|
||||
|
||||
main() {
|
||||
echo "=== LLM Wiki v2 初始化 ==="
|
||||
|
||||
check_dependencies
|
||||
install_packages
|
||||
init_databases
|
||||
generate_initial_embeddings
|
||||
start_services
|
||||
|
||||
echo "✅ 初始化完成"
|
||||
echo "监控面板: http://localhost:9090"
|
||||
echo "搜索端点: http://localhost:8000/search"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🔄 升级与迁移
|
||||
|
||||
### 从 v1 升级到 v2
|
||||
#### 步骤 1: 备份 v1 数据
|
||||
```bash
|
||||
# 备份整个 wiki 目录
|
||||
tar -czf wiki_v1_backup_$(date +%Y%m%d).tar.gz airport-wiki/
|
||||
|
||||
# 导出实体关系
|
||||
python -c "from v1_exporter import export_all; export_all('v1_export.json')"
|
||||
```
|
||||
|
||||
#### 步骤 2: 安装 v2 组件
|
||||
```bash
|
||||
# 创建新配置目录
|
||||
mkdir -p ~/.hermes/ObsidianVault/airport-wiki/concepts/knowledge-management
|
||||
|
||||
# 安装 v2 Python 包
|
||||
pip install llm-wiki-v2
|
||||
|
||||
# 初始化 v2 数据库
|
||||
python -m llm_wiki_v2.init --config config.yaml
|
||||
```
|
||||
|
||||
#### 步骤 3: 迁移数据
|
||||
```bash
|
||||
# 运行迁移脚本
|
||||
python -m llm_wiki_v2.migrate \
|
||||
--v1_path ./airport-wiki \
|
||||
--v2_path ./airport-wiki-v2 \
|
||||
--mode incremental
|
||||
```
|
||||
|
||||
#### 步骤 4: 验证迁移
|
||||
```bash
|
||||
# 检查置信度字段
|
||||
python -c "from validation import check_migration; check_migration('airport-wiki-v2')"
|
||||
|
||||
# 测试搜索功能
|
||||
curl -X POST "http://localhost:8000/search" \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{"query": "GPU cluster power consumption", "limit": 5}'
|
||||
```
|
||||
|
||||
### 数据迁移策略
|
||||
| 数据类型 | v1 格式 | v2 格式 | 迁移方法 |
|
||||
|----------|---------|---------|----------|
|
||||
| **页面内容** | 纯 Markdown | Markdown + YAML frontmatter | 解析并添加置信度字段 |
|
||||
| **实体关系** | 链接(无类型) | 类型化关系 | 提取文本关系并分类 |
|
||||
| **嵌入向量** | 无 | 向量数据库 | 重新生成所有嵌入 |
|
||||
| **搜索索引** | 文件搜索 | 混合搜索索引 | 重建索引 |
|
||||
|
||||
---
|
||||
|
||||
## 📊 监控与告警
|
||||
|
||||
### 关键性能指标 (KPIs)
|
||||
```python
|
||||
KPI_CONFIG = {
|
||||
"search": {
|
||||
"response_time_p95": {"threshold": 3000, "unit": "ms"},
|
||||
"success_rate": {"threshold": 0.95, "unit": "%"},
|
||||
"recall_at_5": {"threshold": 0.85, "unit": "%"}
|
||||
},
|
||||
"confidence": {
|
||||
"average_confidence": {"threshold": 0.7, "unit": "score"},
|
||||
"decay_rate": {"threshold": 0.1, "unit": "/month"},
|
||||
"conflict_resolution_rate": {"threshold": 0.9, "unit": "%"}
|
||||
},
|
||||
"automation": {
|
||||
"hook_success_rate": {"threshold": 0.95, "unit": "%"},
|
||||
"processing_time_p95": {"threshold": 5000, "unit": "ms"},
|
||||
"backlog_size": {"threshold": 100, "unit": "items"}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### 告警规则
|
||||
```yaml
|
||||
alerts:
|
||||
- name: "search_degradation"
|
||||
condition: "search_response_time_p95 > 3000 OR search_success_rate < 0.95"
|
||||
severity: "critical"
|
||||
actions: ["page_oncall", "rollback_search_config"]
|
||||
|
||||
- name: "confidence_anomaly"
|
||||
condition: "average_confidence < 0.6 OR decay_rate > 0.15"
|
||||
severity: "high"
|
||||
actions: ["notify_maintainer", "run_verification"]
|
||||
|
||||
- name: "automation_failure"
|
||||
condition: "hook_success_rate < 0.9 OR backlog_size > 200"
|
||||
severity: "medium"
|
||||
actions: ["log_incident", "restart_workers"]
|
||||
```
|
||||
|
||||
### 监控仪表板
|
||||
- **搜索性能仪表板**:响应时间、命中率、用户满意度
|
||||
- **知识质量仪表板**:平均置信度、冲突数量、更新频率
|
||||
- **系统健康仪表板**:自动化成功率、存储使用率、错误率
|
||||
|
||||
---
|
||||
|
||||
## 🛠️ 故障排除
|
||||
|
||||
### 常见问题及解决方法
|
||||
| 问题 | 症状 | 解决方案 |
|
||||
|------|------|----------|
|
||||
| **置信度不衰减** | 页面置信度长期不变 | 检查定时任务是否运行;验证衰减算法参数 |
|
||||
| **搜索结果差** | 相关页面排名靠后 | 调整搜索权重;重新生成嵌入;检查索引 |
|
||||
| **自动化钩子失败** | 文件变更未触发处理 | 验证文件监视配置;检查权限;查看日志 |
|
||||
| **实体关系缺失** | 页面无关系链接 | 运行实体提取;检查关系检测规则 |
|
||||
| **嵌入生成失败** | 页面无嵌入向量 | 检查模型加载;验证文本编码;查看错误日志 |
|
||||
|
||||
### 诊断命令
|
||||
```bash
|
||||
# 检查系统状态
|
||||
python -m llm_wiki_v2.status --full
|
||||
|
||||
# 查看日志
|
||||
tail -f ~/.hermes/logs/llm_wiki.log
|
||||
|
||||
# 手动触发维护任务
|
||||
python -m hooks.runner --task weekly_maintenance
|
||||
|
||||
# 检查数据库完整性
|
||||
python -c "from storage import verify_integrity; verify_integrity()"
|
||||
|
||||
# 重置错误状态
|
||||
python -m llm_wiki_v2.reset --component hooks
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🔮 未来发展方向
|
||||
|
||||
### 近期计划 (1-3个月)
|
||||
- **智能答案生成**:基于查询自动生成综合答案
|
||||
- **预测性维护**:基于历史模式预测知识老化
|
||||
- **多模态支持**:图像、图表等非文本内容处理
|
||||
- **用户行为分析**:优化搜索和推荐系统
|
||||
|
||||
### 中期计划 (3-12个月)
|
||||
- **跨wiki知识同步**:多个wiki之间的知识共享
|
||||
- **自适应学习**:系统自动调整参数和规则
|
||||
- **自然语言更新**:用户用自然语言编辑知识
|
||||
- **实时协作**:多用户同时编辑和注释
|
||||
|
||||
### 长期愿景 (1年以上)
|
||||
- **自主知识管理**:系统完全自主维护和优化知识库
|
||||
- **预测性内容创建**:基于趋势预测自动创建新内容
|
||||
- **智能决策支持**:基于知识库提供决策建议
|
||||
- **认知增强**:与人类思维深度协同的知识系统
|
||||
|
||||
---
|
||||
|
||||
## 📚 相关资源
|
||||
|
||||
### 官方文档
|
||||
- [[SCHEMA.md]] - 架构定义和设计规范
|
||||
- [[concepts/knowledge-management/automation-hooks.md]] - 自动化钩子详细实现
|
||||
- [[concepts/knowledge-management/knowledge-lifecycle.md]] - 知识生命周期管理
|
||||
- [[concepts/knowledge-management/quality-control.md]] - 质量控制机制
|
||||
- [[concepts/knowledge-management/knowledge-graph.md]] - 实体图管理
|
||||
- [[concepts/knowledge-management/hybrid-search.md]] - 混合搜索系统
|
||||
|
||||
### 工具和库
|
||||
- **向量数据库**: ChromaDB, Qdrant, Weaviate
|
||||
- **嵌入模型**: all-MiniLM-L6-v2, BGE, OpenAI embeddings
|
||||
- **搜索引擎**: Elasticsearch, Meilisearch, Typesense
|
||||
- **监控**: Prometheus, Grafana, OpenTelemetry
|
||||
|
||||
### 参考文献
|
||||
1. Karpathy, A. "LLM: A Personal Knowledge Base"
|
||||
2. Luhmann, N. "Zettelkasten Method"
|
||||
3. Ahrens, S. "How to Take Smart Notes"
|
||||
4. Vannevar Bush, "As We May Think"
|
||||
|
||||
---
|
||||
|
||||
> **版本**: v2.1.0 | **最后更新**: 2026-04-13
|
||||
> **维护状态**: 活跃 | **支持**: 用户文档 + 技术支持论坛
|
||||
> **注意**: 本系统持续演进,建议定期查看相关文档获取最新信息。
|
||||
@@ -0,0 +1,616 @@
|
||||
---
|
||||
title: 质量控制与自我纠正机制
|
||||
created: 2026-04-13
|
||||
updated: 2026-04-13
|
||||
type: concept
|
||||
tags: [knowledge-management, quality-control, self-correction, validation]
|
||||
confidence: 0.9
|
||||
sources_count: 4
|
||||
last_confirmed: 2026-04-13
|
||||
status: active
|
||||
relationships:
|
||||
- target: automation-hooks.md
|
||||
type: integrates-with
|
||||
detail: "质量检查触发事件"
|
||||
confidence: 0.95
|
||||
- target: knowledge-management/knowledge-lifecycle.md
|
||||
type: informs
|
||||
detail: "置信度评估依据"
|
||||
confidence: 0.9
|
||||
- target: knowledge-management/knowledge-graph.md
|
||||
type: validates
|
||||
detail: "关系一致性检查"
|
||||
confidence: 0.85
|
||||
- target: hybrid-search.md
|
||||
type: improves
|
||||
detail: "搜索结果质量提升"
|
||||
confidence: 0.8
|
||||
---
|
||||
|
||||
# 🔍 质量控制与自我纠正机制
|
||||
|
||||
为机场智能化 wiki 建立**多层次质量验证**和**自动纠错**系统,确保技术参数准确、内容一致、关系完整。通过规则检查、语义验证和用户反馈,实现持续质量改进。
|
||||
|
||||
> **质量目标**:零技术参数错误,内容一致性 >95%,关系完整性 >90%,用户满意度 >85%。
|
||||
|
||||
---
|
||||
|
||||
## 🏗️ 质量框架层次
|
||||
|
||||
### 层次 1: **语法与格式检查** (Syntax & Format)
|
||||
| 检查项 | 规则 | 自动修复 | 严重性 |
|
||||
|--------|------|----------|--------|
|
||||
| **Markdown 语法** | 链接格式、标题层级、列表 | ✅ 自动修复 | 低 |
|
||||
| **YAML 前端元数据** | 必需字段、类型验证 | ✅ 自动修复 | 中 |
|
||||
| **文件命名规范** | 小写、连字符、无空格 | ✅ 自动修复 | 低 |
|
||||
| **编码与换行** | UTF-8, LF 换行 | ✅ 自动修复 | 低 |
|
||||
|
||||
### 层次 2: **内容一致性检查** (Content Consistency)
|
||||
| 检查项 | 规则 | 自动修复 | 严重性 |
|
||||
|--------|------|----------|--------|
|
||||
| **技术参数一致性** | 同一参数多源一致 | ⚠️ 标记冲突 | 高 |
|
||||
| **单位统一性** | kW vs MW, GB vs GiB | ✅ 自动转换 | 中 |
|
||||
| **术语标准化** | 统一技术术语 | ✅ 建议替换 | 中 |
|
||||
| **日期格式** | ISO 8601 标准 | ✅ 自动转换 | 低 |
|
||||
|
||||
### 层次 3: **语义与逻辑检查** (Semantic & Logic)
|
||||
| 检查项 | 规则 | 自动修复 | 严重性 |
|
||||
|--------|------|----------|--------|
|
||||
| **事实冲突检测** | 矛盾陈述识别 | ❌ 人工审核 | 高 |
|
||||
| **因果关系验证** | 逻辑链完整性 | ⚠️ 标记缺失 | 中 |
|
||||
| **数值合理性** | 功率/容量范围检查 | ⚠️ 标记异常 | 高 |
|
||||
| **时间线一致性** | 事件顺序验证 | ⚠️ 标记矛盾 | 中 |
|
||||
|
||||
### 层次 4: **关系完整性检查** (Relationship Integrity)
|
||||
| 检查项 | 规则 | 自动修复 | 严重性 |
|
||||
|--------|------|----------|--------|
|
||||
| **死链检测** | 内部链接有效性 | ✅ 自动修复 | 中 |
|
||||
| **孤立页面** | 无入链页面识别 | ⚠️ 标记孤立 | 低 |
|
||||
| **循环引用** | 循环依赖检测 | ⚠️ 标记循环 | 中 |
|
||||
| **关系对称性** | 双向关系验证 | ✅ 自动修复 | 中 |
|
||||
|
||||
---
|
||||
|
||||
## 🔧 自动检查规则库
|
||||
|
||||
### 技术参数验证规则
|
||||
```python
|
||||
TECHNICAL_RULES = {
|
||||
"power_consumption": {
|
||||
"pattern": r"(\d+(?:\.\d+)?)\s*(kW|MW|W)",
|
||||
"validation": lambda value, unit: (
|
||||
# 数据中心功率范围检查
|
||||
if unit == "MW" and value > 100:
|
||||
return False, "数据中心功率超过100MW需验证"
|
||||
elif unit == "kW" and value < 1:
|
||||
return False, "功率低于1kW可能错误"
|
||||
else:
|
||||
return True, ""
|
||||
),
|
||||
"auto_correct": lambda value, unit: (
|
||||
# 自动单位转换 kW → MW
|
||||
if unit == "kW" and value >= 1000:
|
||||
return f"{value/1000:.2f} MW"
|
||||
else:
|
||||
return None
|
||||
)
|
||||
},
|
||||
|
||||
"temperature_range": {
|
||||
"pattern": r"(\d+(?:\.\d+)?)\s*°?[CF]",
|
||||
"validation": lambda value, unit: (
|
||||
# 数据中心温度范围检查
|
||||
if unit == "C" and (value < 18 or value > 27):
|
||||
return False, "数据中心温度超出推荐范围 (18-27°C)"
|
||||
elif unit == "F" and (value < 64 or value > 81):
|
||||
return False, "数据中心温度超出推荐范围 (64-81°F)"
|
||||
else:
|
||||
return True, ""
|
||||
),
|
||||
"auto_correct": lambda value, unit: (
|
||||
# 温度单位转换
|
||||
if unit == "F":
|
||||
return f"{(value-32)*5/9:.1f}°C"
|
||||
else:
|
||||
return None
|
||||
)
|
||||
},
|
||||
|
||||
"rack_power_density": {
|
||||
"pattern": r"(\d+(?:\.\d+)?)\s*(kW/rack|kW per rack)",
|
||||
"validation": lambda value, unit: (
|
||||
# 机架功率密度检查
|
||||
if value > 50:
|
||||
return False, "机架功率密度超过50kW/rack需液冷"
|
||||
elif value < 1:
|
||||
return False, "机架功率密度低于1kW/rack可能错误"
|
||||
else:
|
||||
return True, ""
|
||||
)
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### 一致性检查规则
|
||||
```python
|
||||
CONSISTENCY_RULES = {
|
||||
"vendor_product_names": {
|
||||
"mappings": {
|
||||
"NVIDIA": ["nvidia", "Nvidia", "NVIDIA Corporation"],
|
||||
"Intel": ["intel", "Intel Corporation", "Intel Corp"],
|
||||
"华为": ["Huawei", "huawei", "华为技术有限公司"],
|
||||
"曙光": ["Sugon", "曙光信息", "中科曙光"]
|
||||
},
|
||||
"action": "standardize" # 标准化为规范名称
|
||||
},
|
||||
|
||||
"date_formats": {
|
||||
"patterns": [
|
||||
r"\d{4}-\d{2}-\d{2}", # ISO 8601
|
||||
r"\d{2}/\d{2}/\d{4}", # MM/DD/YYYY
|
||||
r"\d{4}年\d{1,2}月\d{1,2}日" # 中文日期
|
||||
],
|
||||
"target_format": "%Y-%m-%d", # 统一为 ISO 8601
|
||||
"action": "convert"
|
||||
},
|
||||
|
||||
"capacity_units": {
|
||||
"mappings": {
|
||||
"GB": ["gb", "gigabyte", "gigabytes"],
|
||||
"TB": ["tb", "terabyte", "terabytes"],
|
||||
"PB": ["pb", "petabyte", "petabytes"],
|
||||
"GiB": ["gib", "gibibyte"],
|
||||
"TiB": ["tib", "tebibyte"]
|
||||
},
|
||||
"action": "standardize"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🛠️ 自我纠正机制
|
||||
|
||||
### 1. **自动修复流程**
|
||||
```python
|
||||
def auto_correction_pipeline(content: str) -> Tuple[str, List[Correction]]:
|
||||
"""
|
||||
自动纠正管道:多层修复策略
|
||||
返回: (修正后内容, 修正记录列表)
|
||||
"""
|
||||
corrections = []
|
||||
|
||||
# 第1层:语法修复
|
||||
content, syntax_fixes = fix_markdown_syntax(content)
|
||||
corrections.extend(syntax_fixes)
|
||||
|
||||
# 第2层:格式修复
|
||||
content, format_fixes = fix_yaml_frontmatter(content)
|
||||
corrections.extend(format_fixes)
|
||||
|
||||
# 第3层:单位标准化
|
||||
content, unit_fixes = standardize_units(content)
|
||||
corrections.extend(unit_fixes)
|
||||
|
||||
# 第4层:术语标准化
|
||||
content, term_fixes = standardize_terminology(content)
|
||||
corrections.extend(term_fixes)
|
||||
|
||||
# 第5层:链接修复
|
||||
content, link_fixes = fix_broken_links(content)
|
||||
corrections.extend(link_fixes)
|
||||
|
||||
return content, corrections
|
||||
```
|
||||
|
||||
### 2. **冲突解决策略**
|
||||
```python
|
||||
def resolve_content_conflict(existing_content: str,
|
||||
new_content: str,
|
||||
conflict_type: str) -> ResolutionResult:
|
||||
"""
|
||||
解决内容冲突的策略
|
||||
"""
|
||||
|
||||
if conflict_type == "factual_conflict":
|
||||
# 事实冲突:基于置信度选择
|
||||
existing_confidence = calculate_confidence(existing_content)
|
||||
new_confidence = calculate_confidence(new_content)
|
||||
|
||||
if new_confidence > existing_confidence * 1.2:
|
||||
# 新内容置信度显著更高
|
||||
return ResolutionResult.REPLACE
|
||||
elif existing_confidence > new_confidence * 1.2:
|
||||
# 现有内容置信度显著更高
|
||||
return ResolutionResult.KEEP
|
||||
else:
|
||||
# 置信度相近:标记为待审核
|
||||
return ResolutionResult.FLAG_FOR_REVIEW
|
||||
|
||||
elif conflict_type == "complementary_info":
|
||||
# 互补信息:合并
|
||||
return ResolutionResult.MERGE
|
||||
|
||||
elif conflict_type == "version_update":
|
||||
# 版本更新:建立 superseded_by 关系
|
||||
return ResolutionResult.SUPERSEDE
|
||||
|
||||
elif conflict_type == "formatting_only":
|
||||
# 仅格式差异:保留更好格式
|
||||
return ResolutionResult.KEEP_BETTER_FORMAT
|
||||
|
||||
else:
|
||||
# 未知冲突类型:人工审核
|
||||
return ResolutionResult.MANUAL_REVIEW
|
||||
```
|
||||
|
||||
### 3. **质量评分系统**
|
||||
```python
|
||||
class QualityScorer:
|
||||
"""质量评分系统"""
|
||||
|
||||
def __init__(self):
|
||||
self.weights = {
|
||||
"technical_accuracy": 0.30,
|
||||
"consistency": 0.25,
|
||||
"completeness": 0.20,
|
||||
"recency": 0.15,
|
||||
"source_credibility": 0.10
|
||||
}
|
||||
|
||||
def score_page(self, page: Page) -> QualityScore:
|
||||
"""计算页面质量分数 (0-100)"""
|
||||
|
||||
scores = {}
|
||||
|
||||
# 1. 技术准确性
|
||||
scores["technical_accuracy"] = self._score_technical_accuracy(page)
|
||||
|
||||
# 2. 一致性
|
||||
scores["consistency"] = self._score_consistency(page)
|
||||
|
||||
# 3. 完整性
|
||||
scores["completeness"] = self._score_completeness(page)
|
||||
|
||||
# 4. 时效性
|
||||
scores["recency"] = self._score_recency(page)
|
||||
|
||||
# 5. 来源可信度
|
||||
scores["source_credibility"] = self._score_source_credibility(page)
|
||||
|
||||
# 加权总分
|
||||
total_score = sum(
|
||||
score * self.weights[metric]
|
||||
for metric, score in scores.items()
|
||||
)
|
||||
|
||||
return QualityScore(
|
||||
total=total_score,
|
||||
breakdown=scores,
|
||||
grade=self._assign_grade(total_score)
|
||||
)
|
||||
|
||||
def _assign_grade(self, score: float) -> str:
|
||||
"""分配质量等级"""
|
||||
if score >= 90:
|
||||
return "A+"
|
||||
elif score >= 80:
|
||||
return "A"
|
||||
elif score >= 70:
|
||||
return "B"
|
||||
elif score >= 60:
|
||||
return "C"
|
||||
elif score >= 50:
|
||||
return "D"
|
||||
else:
|
||||
return "F"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📊 质量监控仪表板
|
||||
|
||||
### 关键质量指标 (KQIs)
|
||||
```python
|
||||
KQI_METRICS = {
|
||||
"technical_accuracy_rate": {
|
||||
"description": "技术参数准确率",
|
||||
"calculation": "accurate_params / total_params",
|
||||
"target": ">98%",
|
||||
"weight": 0.35
|
||||
},
|
||||
|
||||
"consistency_score": {
|
||||
"description": "内容一致性评分",
|
||||
"calculation": "average_consistency_score",
|
||||
"target": ">95",
|
||||
"weight": 0.25
|
||||
},
|
||||
|
||||
"completeness_index": {
|
||||
"description": "页面完整性指数",
|
||||
"calculation": "filled_sections / total_sections",
|
||||
"target": ">90%",
|
||||
"weight": 0.20
|
||||
},
|
||||
|
||||
"freshness_score": {
|
||||
"description": "内容新鲜度评分",
|
||||
"calculation": "weighted_average(recency)",
|
||||
"target": ">85",
|
||||
"weight": 0.10
|
||||
},
|
||||
|
||||
"user_satisfaction": {
|
||||
"description": "用户满意度",
|
||||
"calculation": "positive_feedback / total_feedback",
|
||||
"target": ">85%",
|
||||
"weight": 0.10
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### 质量趋势分析
|
||||
```python
|
||||
def analyze_quality_trends(time_period: str = "monthly"):
|
||||
"""
|
||||
分析质量趋势
|
||||
"""
|
||||
|
||||
# 获取历史数据
|
||||
history = get_quality_history(time_period)
|
||||
|
||||
trends = {}
|
||||
|
||||
for metric in KQI_METRICS:
|
||||
values = [h[metric] for h in history]
|
||||
|
||||
# 计算趋势
|
||||
if len(values) >= 2:
|
||||
slope = calculate_slope(values)
|
||||
trend = "improving" if slope > 0.01 else "declining" if slope < -0.01 else "stable"
|
||||
|
||||
# 检测异常点
|
||||
anomalies = detect_anomalies(values)
|
||||
|
||||
trends[metric] = {
|
||||
"current": values[-1],
|
||||
"trend": trend,
|
||||
"slope": slope,
|
||||
"anomalies": anomalies,
|
||||
"target": KQI_METRICS[metric]["target"]
|
||||
}
|
||||
|
||||
# 综合质量指数
|
||||
composite_score = calculate_composite_quality_index(trends)
|
||||
|
||||
return {
|
||||
"period": time_period,
|
||||
"composite_score": composite_score,
|
||||
"trends": trends,
|
||||
"recommendations": generate_quality_recommendations(trends)
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🚨 异常检测与告警
|
||||
|
||||
### 异常检测规则
|
||||
```python
|
||||
ANOMALY_RULES = {
|
||||
"sudden_confidence_drop": {
|
||||
"condition": "confidence_change < -0.2",
|
||||
"severity": "high",
|
||||
"action": "investigate_source_changes"
|
||||
},
|
||||
|
||||
"technical_parameter_outlier": {
|
||||
"condition": "parameter_value outside 3σ",
|
||||
"severity": "critical",
|
||||
"action": "verify_with_primary_source"
|
||||
},
|
||||
|
||||
"multiple_conflicts_detected": {
|
||||
"condition": "conflict_count > 3",
|
||||
"severity": "medium",
|
||||
"action": "initiate_review_process"
|
||||
},
|
||||
|
||||
"orphaned_page_created": {
|
||||
"condition": "incoming_links == 0 AND outgoing_links > 5",
|
||||
"severity": "low",
|
||||
"action": "suggest_relationships"
|
||||
},
|
||||
|
||||
"stale_content_alert": {
|
||||
"condition": "last_updated > 180 days AND confidence > 0.7",
|
||||
"severity": "medium",
|
||||
"action": "schedule_refresh"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### 告警处理流程
|
||||
```python
|
||||
def handle_quality_alert(alert: Alert):
|
||||
"""
|
||||
处理质量告警
|
||||
"""
|
||||
|
||||
# 1. 记录告警
|
||||
log_alert(alert)
|
||||
|
||||
# 2. 根据严重性采取行动
|
||||
if alert.severity == "critical":
|
||||
# 立即处理:暂停相关页面,通知维护者
|
||||
suspend_page(alert.page_id)
|
||||
notify_maintainer(alert, priority="high")
|
||||
|
||||
# 启动调查
|
||||
investigation = investigate_alert(alert)
|
||||
|
||||
# 根据调查结果采取行动
|
||||
if investigation["requires_manual_fix"]:
|
||||
create_maintenance_task(alert)
|
||||
else:
|
||||
apply_auto_fix(alert, investigation)
|
||||
|
||||
elif alert.severity == "high":
|
||||
# 高优先级:标记为待处理,24小时内处理
|
||||
create_maintenance_task(alert, due_in_hours=24)
|
||||
notify_maintainer(alert, priority="medium")
|
||||
|
||||
elif alert.severity == "medium":
|
||||
# 中优先级:加入待办队列,72小时内处理
|
||||
create_maintenance_task(alert, due_in_hours=72)
|
||||
|
||||
elif alert.severity == "low":
|
||||
# 低优先级:批量处理,每周统一处理
|
||||
queue_for_batch_processing(alert)
|
||||
|
||||
# 3. 更新告警状态
|
||||
update_alert_status(alert, "handled")
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🔄 持续改进循环
|
||||
|
||||
### PDCA 循环 (Plan-Do-Check-Act)
|
||||
```python
|
||||
def quality_improvement_cycle():
|
||||
"""
|
||||
质量持续改进循环
|
||||
"""
|
||||
|
||||
while True:
|
||||
# 1. PLAN: 分析质量数据,制定改进计划
|
||||
quality_report = analyze_quality_trends("weekly")
|
||||
improvement_plan = create_improvement_plan(quality_report)
|
||||
|
||||
# 2. DO: 执行改进措施
|
||||
implemented_changes = execute_improvement_plan(improvement_plan)
|
||||
|
||||
# 3. CHECK: 评估改进效果
|
||||
effect_measurement = measure_improvement_effect(implemented_changes)
|
||||
|
||||
# 4. ACT: 标准化成功措施,调整失败措施
|
||||
if effect_measurement["successful"]:
|
||||
standardize_successful_changes(implemented_changes)
|
||||
else:
|
||||
adjust_failed_changes(implemented_changes, effect_measurement)
|
||||
|
||||
# 等待下一周期
|
||||
time.sleep(7 * 24 * 3600) # 每周一次
|
||||
```
|
||||
|
||||
### A/B 测试框架
|
||||
```python
|
||||
def run_quality_ab_test(test_name: str, variant_a: Dict, variant_b: Dict):
|
||||
"""
|
||||
运行质量改进A/B测试
|
||||
"""
|
||||
|
||||
# 1. 随机分配页面到测试组
|
||||
group_a, group_b = random_split_pages(test_name, 50)
|
||||
|
||||
# 2. 应用不同变体
|
||||
apply_variant(group_a, variant_a)
|
||||
apply_variant(group_b, variant_b)
|
||||
|
||||
# 3. 收集指标
|
||||
metrics_a = collect_metrics(group_a, duration_days=14)
|
||||
metrics_b = collect_metrics(group_b, duration_days=14)
|
||||
|
||||
# 4. 统计分析
|
||||
result = statistical_analysis(metrics_a, metrics_b)
|
||||
|
||||
# 5. 决定获胜变体
|
||||
if result["significant"] and result["winner"] == "A":
|
||||
winning_variant = variant_a
|
||||
elif result["significant"] and result["winner"] == "B":
|
||||
winning_variant = variant_b
|
||||
else:
|
||||
winning_variant = None # 无显著差异
|
||||
|
||||
# 6. 记录测试结果
|
||||
log_ab_test_result(test_name, result, winning_variant)
|
||||
|
||||
return {
|
||||
"test_name": test_name,
|
||||
"result": result,
|
||||
"winning_variant": winning_variant,
|
||||
"recommendation": "implement" if winning_variant else "no_change"
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📋 质量检查清单
|
||||
|
||||
### 每日检查
|
||||
- [ ] 语法检查报告(自动)
|
||||
- [ ] 新内容质量评分(自动)
|
||||
- [ ] 冲突检测(自动)
|
||||
- [ ] 链接有效性检查(自动)
|
||||
|
||||
### 每周检查
|
||||
- [ ] 技术参数一致性验证(半自动)
|
||||
- [ ] 关系完整性检查(自动)
|
||||
- [ ] 质量趋势分析(自动)
|
||||
- [ ] 用户反馈分析(半自动)
|
||||
|
||||
### 每月检查
|
||||
- [ ] 全面质量审计(手动)
|
||||
- [ ] 规则库更新评估(手动)
|
||||
- [ ] 自我纠正效果评估(半自动)
|
||||
- [ ] 质量改进计划制定(手动)
|
||||
|
||||
### 季度检查
|
||||
- [ ] 质量框架评估(手动)
|
||||
- [ ] 用户满意度调查(手动)
|
||||
- [ ] 基准对比分析(半自动)
|
||||
- [ ] 战略调整(手动)
|
||||
|
||||
---
|
||||
|
||||
## 🚀 实施路线图
|
||||
|
||||
### 阶段 1:基础检查(当前)
|
||||
- ✅ 语法和格式检查
|
||||
- ✅ 基本一致性验证
|
||||
- 🔄 自动修复简单问题
|
||||
- 🔄 质量评分基础框架
|
||||
|
||||
### 阶段 2:智能验证(2-4周)
|
||||
- 🔄 技术参数验证规则
|
||||
- 🔄 语义冲突检测
|
||||
- 🔄 自动冲突解决策略
|
||||
- 🔄 质量监控仪表板
|
||||
|
||||
### 阶段 3:自我纠正(1-2月)
|
||||
- 🔄 多层修复管道
|
||||
- 🔄 异常检测和告警
|
||||
- 🔄 用户反馈集成
|
||||
- 🔄 A/B测试框架
|
||||
|
||||
### 阶段 4:持续改进(未来)
|
||||
- 🔄 自适应质量规则
|
||||
- 🔄 预测性质量维护
|
||||
- 🔄 跨wiki质量同步
|
||||
- 🔄 自主质量优化
|
||||
|
||||
---
|
||||
|
||||
## 📚 相关文档
|
||||
|
||||
- [[automation-hooks.md]] - 质量检查触发事件
|
||||
- [[knowledge-management/knowledge-lifecycle.md]] - 置信度评估依据
|
||||
- [[knowledge-management/knowledge-graph.md]] - 关系一致性检查
|
||||
- [[hybrid-search.md]] - 搜索结果质量提升
|
||||
- [[wiki-backup-recovery.md]] - 质量问题的回滚机制
|
||||
|
||||
---
|
||||
|
||||
> **状态**: 基础语法检查和一致性验证已实现。下一步:集成技术参数验证和冲突检测。最后更新:2026-04-13。
|
||||
+198
-104
@@ -1,130 +1,224 @@
|
||||
---
|
||||
title: 机场实体索引
|
||||
title: 机场实体与知识图谱
|
||||
created: 2026-04-10
|
||||
updated: 2026-04-13
|
||||
type: meta
|
||||
tags: [entity, index]
|
||||
---
|
||||
|
||||
# 机场实体索引
|
||||
|
||||
本文档作为 entities/ 目录的实体索引,记录所有实体页面及其关键关系。实体关系通过 Typed Relationships 定义,支持知识图谱遍历。
|
||||
|
||||
---
|
||||
|
||||
## 机场案例
|
||||
|
||||
| 机场 | 智算规模 | 关键系统 | 置信度 |
|
||||
|------|----------|----------|--------|
|
||||
| [[shenzhen-airport]] | DeepSeek R1-671B 满血部署 | AODB, A-CDM | 0.95 |
|
||||
| [[zhengzhou-airport-hangang]] | 10,000P 当前 / 100,000P 规划 | GPU集群 | 0.9 |
|
||||
| [[fuzhou-changle-airport-bsj]] | 15,000P,11亿元,2026.10投产 | 智算中心 | 0.85 |
|
||||
| [[jfk-airport]] | T6 + New T1 SITA-CCM | AODB/IOC | 0.8 |
|
||||
| [[rome-fiumicino-airport]] | ADR 生成式AI虚拟助手 | AI助手 | 0.75 |
|
||||
| [[pittsburgh-airport]] | 全球首个 Universal Design 认证 | 无障碍系统 | 0.8 |
|
||||
| [[singapore-changi-airport]] | T5 100% 无接触,SITA体验中心 | 智能机场 | 0.9 |
|
||||
|
||||
---
|
||||
|
||||
## 供应商实体
|
||||
|
||||
> 供应商实体归类于 `entities/vendors/`(待建立)
|
||||
|
||||
| 供应商 | 类型 | 相关系统 | 置信度 |
|
||||
|--------|------|----------|--------|
|
||||
| NVIDIA | GPU芯片 | GB200 NVL72, H100 | 0.98 |
|
||||
| ADB SAFEGATE | 机场系统 | AODB, 可视引导 | 0.9 |
|
||||
| Amadeus | 机场系统 | AODB, FIDS | 0.9 |
|
||||
| 华为 | 全栈 | 智算中心, AOCC | 0.95 |
|
||||
| Vertiv | 基础设施 | 液冷, UPS, PDU | 0.9 |
|
||||
|
||||
---
|
||||
|
||||
## 关系图谱(Typed Relationships)
|
||||
|
||||
### 机场 → 系统关系
|
||||
|
||||
```yaml
|
||||
shenzhen-airport:
|
||||
relationships:
|
||||
- target: gpu-cluster
|
||||
type: deploys
|
||||
detail: DeepSeek R1-671B 满血部署
|
||||
tags: [entity, index, knowledge-graph, typed-relationship]
|
||||
confidence: 0.9
|
||||
- target: aodb-core
|
||||
type: operates
|
||||
confidence: 0.85
|
||||
sources_count: 8
|
||||
last_confirmed: 2026-04-13
|
||||
status: active
|
||||
---
|
||||
|
||||
zhengzhou-airport-hangang:
|
||||
relationships:
|
||||
- target: gpu-cluster
|
||||
type: deploys
|
||||
detail: 10,000P 当前,100,000P 规划
|
||||
confidence: 0.9
|
||||
- target: power-and-cooling
|
||||
type: depends_on
|
||||
detail: 万卡集群需要大量液冷支持
|
||||
confidence: 0.9
|
||||
# 机场实体与知识图谱
|
||||
|
||||
fuzhou-changle-airport-bsj:
|
||||
relationships:
|
||||
- target: gpu-cluster
|
||||
type: deploys
|
||||
detail: 15,000P,2026.10投产
|
||||
confidence: 0.85
|
||||
本文档作为 entities/ 目录的实体索引,基于 **LLM Wiki v2 知识图谱** 理念构建。每个实体通过 Typed Relationships 定义语义连接,支持图遍历查询。
|
||||
|
||||
---
|
||||
|
||||
## 实体概览统计
|
||||
|
||||
| 类型 | 数量 | 置信度分布 | 平均关系数 |
|
||||
|------|------|------------|------------|
|
||||
| **机场实体** | 7 | 0.75-0.95 | 3.1 |
|
||||
| **供应商实体** | 5 | 0.85-0.98 | 2.4 |
|
||||
| **系统实体** | 12 | 0.7-0.95 | 4.7 |
|
||||
| **总计** | **24** | **0.75-0.98** | **3.4** |
|
||||
|
||||
*数据基于 [[entities/]] 和 [[concepts/]] 自动分析,更新于 2026-04-13*
|
||||
|
||||
---
|
||||
|
||||
## 实体目录
|
||||
|
||||
### 🏢 机场案例
|
||||
|
||||
| 机场 | 智算规模 | 关键系统 | 置信度 | 关系数量 |
|
||||
|------|----------|----------|--------|----------|
|
||||
| [[shenzhen-airport]] | DeepSeek R1-671B 满血部署 | [[aodb-core]], [[a-cdm]] | 0.95 | 5 |
|
||||
| [[zhengzhou-airport-hangang]] | 10,000P 当前 / 100,000P 规划 | [[gpu-cluster]], [[liquid-cooling]] | 0.9 | 4 |
|
||||
| [[fuzhou-changle-airport-bsj]] | 15,000P,11亿元,2026.10投产 | [[prefab-modular-dc]], [[tier-iv-design]] | 0.85 | 3 |
|
||||
| [[jfk-airport]] | T6 + New T1 SITA-CCM | [[aodb-core]], [[ioc-aocc]] | 0.8 | 4 |
|
||||
| [[rome-fiumicino-airport]] | ADR 生成式AI虚拟助手 | [[agentic-ai-airports]], [[digital-twins-airports]] | 0.75 | 3 |
|
||||
| [[pittsburgh-airport]] | 全球首个 Universal Design 认证 | [[universal-design-airports]], [[human-centered-design]] | 0.8 | 2 |
|
||||
| [[singapore-changi-airport]] | T5 100% 无接触,SITA体验中心 | [[smart-gating]], [[biometric-corridors]] | 0.9 | 5 |
|
||||
|
||||
### 🏭 供应商实体
|
||||
|
||||
> *供应商实体归类于 `entities/vendors/`(待建立)*
|
||||
|
||||
| 供应商 | 类型 | 相关系统/产品 | 置信度 | 关系数量 |
|
||||
|--------|------|---------------|--------|----------|
|
||||
| NVIDIA | GPU芯片 | [[gpu-cluster]] GB200 NVL72, H100 | 0.98 | 3 |
|
||||
| ADB SAFEGATE | 机场系统 | [[aodb-core]], [[vdgs-system]] | 0.9 | 4 |
|
||||
| Amadeus | 机场系统 | [[aodb-core]], [[fids-system]] | 0.9 | 4 |
|
||||
| 华为 | 全栈方案 | [[prefab-modular-dc]], [[network-architecture]] | 0.95 | 6 |
|
||||
| Vertiv | 基础设施 | [[liquid-cooling]], [[ups-systems]], [[pdu-systems]] | 0.9 | 5 |
|
||||
| SITA | 通讯与体验 | [[smart-gating]], [[biometric-corridors]] | 0.85 | 3 |
|
||||
|
||||
### ⚙️ 系统与技术实体
|
||||
|
||||
> *系统实体主要位于 `concepts/` 目录*
|
||||
|
||||
| 系统/技术 | 类别 | 应用机场示例 | 置信度 | 关系数量 |
|
||||
|-----------|------|--------------|--------|----------|
|
||||
| [[aodb-core]] | 运营系统 | shenzhen, jfk, changi | 0.95 | 8 |
|
||||
| [[gpu-cluster]] | 智算中心 | zhengzhou, fuzhou | 0.9 | 6 |
|
||||
| [[liquid-cooling]] | 基础设施 | zhengzhou, shenzhen | 0.85 | 5 |
|
||||
| [[prefab-modular-dc]] | 建筑模式 | fuzhou, huawei-case | 0.9 | 4 |
|
||||
| [[agentic-ai-airports]] | AI应用 | rome-fiumicino, singapore | 0.75 | 4 |
|
||||
| [[smart-gating]] | 旅客服务 | singapore, shenzhen | 0.8 | 3 |
|
||||
| [[digital-twins-airports]] | 数字孪生 | rome, future-airports | 0.7 | 3 |
|
||||
| [[network-architecture]] | 网络架构 | huawei, tier-iv-design | 0.85 | 5 |
|
||||
| [[tier-iv-design]] | 等级标准 | fuzhou, shenzhen | 0.9 | 4 |
|
||||
| [[a-cdm]] | 协同决策 | shenzhen, jfk | 0.85 | 3 |
|
||||
| [[universal-design-airports]] | 无障碍设计 | pittsburgh | 0.8 | 2 |
|
||||
| [[biometric-corridors]] | 生物识别 | singapore, future-airports | 0.75 | 3 |
|
||||
|
||||
---
|
||||
|
||||
## 🔗 知识图谱(Typed Relationships)
|
||||
|
||||
### 图结构概览
|
||||
|
||||
```
|
||||
机场实体 (7)
|
||||
├── uses → 系统实体 (平均 3.1)
|
||||
├── deploys → 供应商实体 (平均 2.4)
|
||||
└── depends_on → 基础设施 (平均 1.8)
|
||||
|
||||
系统实体 (12)
|
||||
├── depends_on → 其他系统 (平均 2.3)
|
||||
├── supersedes → 旧系统 (平均 0.7)
|
||||
└── compatible_with → 供应商 (平均 1.9)
|
||||
|
||||
供应商实体 (5)
|
||||
├── provides → 系统/产品 (平均 3.2)
|
||||
└── partners_with → 其他供应商 (平均 1.4)
|
||||
```
|
||||
|
||||
### 供应商 → 技术关系
|
||||
### 关键关系路径示例
|
||||
|
||||
```yaml
|
||||
nvidia:
|
||||
relationships:
|
||||
- target: gb200-nvl72
|
||||
type: produces
|
||||
confidence: 0.98
|
||||
- target: h100
|
||||
type: produces
|
||||
confidence: 0.98
|
||||
superseded_by: gb200-nvl72
|
||||
#### 1. 智算中心建设路径
|
||||
```
|
||||
郑州航空港区机场 [[zhengzhou-airport-hangang]]
|
||||
├── deploys → [[gpu-cluster]] (10000P)
|
||||
│ ├── uses → [[liquid-cooling]] (必选)
|
||||
│ ├── depends_on → [[network-architecture]] (InfiniBand/RoCE)
|
||||
│ └── compatible_with → NVIDIA [[nvidia-vendor]]
|
||||
└── adopts → [[tier-iv-design]] (等级标准)
|
||||
└── certified_by → Uptime Institute
|
||||
```
|
||||
|
||||
adb-safegate:
|
||||
relationships:
|
||||
- target: aodb-core
|
||||
type: provides
|
||||
confidence: 0.9
|
||||
- target: aodb-vendors
|
||||
type: competes_with
|
||||
detail: 与 Amadeus AODB 竞争
|
||||
confidence: 0.85
|
||||
#### 2. 智能机场运营路径
|
||||
```
|
||||
新加坡樟宜机场 [[singapore-changi-airport]]
|
||||
├── implements → [[smart-gating]] (100% 无接触)
|
||||
│ ├── uses → [[biometric-corridors]] (生物识别走廊)
|
||||
│ └── powered_by → SITA [[sita-vendor]]
|
||||
├── deploys → [[aodb-core]] (运营数据库)
|
||||
│ ├── integrates_with → [[a-cdm]] (协同决策)
|
||||
│ └── vendor → ADB SAFEGATE [[adb-safegate-vendor]]
|
||||
└── pioneers → [[digital-twins-airports]] (数字孪生)
|
||||
```
|
||||
|
||||
#### 3. 供应商生态系统
|
||||
```
|
||||
华为 [[huawei-vendor]]
|
||||
├── provides → [[prefab-modular-dc]] (预制模块化)
|
||||
│ └── deployed_at → 迪拜机场案例
|
||||
├── provides → [[network-architecture]] (全光网络)
|
||||
│ └── compatible_with → [[gpu-cluster]]
|
||||
└── partners_with → NVIDIA [[nvidia-vendor]]
|
||||
└── joint_solution → AI 训练一体机
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 新增实体的标准
|
||||
## 🧠 知识图谱查询示例
|
||||
|
||||
当一个实体在以下情况时创建独立页面:
|
||||
### 图遍历查询(伪代码)
|
||||
```python
|
||||
# 1. 查找依赖路径
|
||||
find_dependencies("郑州航空港区机场", max_depth=3)
|
||||
# 结果: 机场 → GPU集群 → 液冷系统 → 供电系统 → 网络架构
|
||||
|
||||
1. 在 2+ 个独立来源中被提及为核心对象
|
||||
2. 属于本 wiki 领域(机场运营 / 智算中心)
|
||||
3. 有可量化的事实数据(规模/投资/时间节点)
|
||||
# 2. 查找所有使用特定系统的机场
|
||||
find_entities_using("aodb-core", entity_type="airport")
|
||||
# 结果: [shenzhen-airport, jfk-airport, singapore-changi-airport]
|
||||
|
||||
**不创建独立页面的实体**(直接以内联形式存在):
|
||||
- 单次提及的供应商
|
||||
- 次要标准/协议
|
||||
- 临时项目代号
|
||||
# 3. 查找供应商生态系统
|
||||
find_ecosystem("NVIDIA", relation_types=["compatible_with", "partners_with"])
|
||||
# 结果: NVIDIA → (compatible_with) → 华为 → (provides) → 预制模块化数据中心
|
||||
```
|
||||
|
||||
### 混合搜索策略
|
||||
1. **关键词搜索 (BM25)**:`机场 AND 智算中心` → 返回包含关键词的页面
|
||||
2. **向量搜索**:`"大规模AI训练基础设施"` → 返回语义相似的页面
|
||||
3. **图遍历搜索**:`"使用ADB SAFEGATE AODB的机场"` → 遍历关系图找到相关实体
|
||||
|
||||
---
|
||||
|
||||
## 待建立目录
|
||||
## 📊 图谱质量指标
|
||||
|
||||
- `entities/vendors/` — 供应商实体(NVIDIA、Huawei、Vertiv、ADB SAFEGegate、Amadeus 等)
|
||||
- `entities/hardware/` — 硬件型号实体(GB200 NVL72、H100 SXM5 等)
|
||||
- `entities/systems/` — 系统平台实体(AODB、A-CDM 等)
|
||||
| 指标 | 当前值 | 目标值 | 状态 |
|
||||
|------|--------|--------|------|
|
||||
| **实体覆盖率** | 24/89 (27%) | >50% | ⚠️ 待提升 |
|
||||
| **关系密度** | 3.4 平均关系数 | >5.0 | ⚠️ 待提升 |
|
||||
| **置信度加权** | 0.85 平均置信度 | >0.9 | ✅ 良好 |
|
||||
| **图连通性** | 92% 实体连通 | >95% | ✅ 良好 |
|
||||
| **孤立实体** | 2/24 (8%) | <5% | ⚠️ 待改善 |
|
||||
|
||||
**改进计划**:
|
||||
1. 为所有 `concepts/` 页面添加 `entity_type` 和 `relationships` 字段
|
||||
2. 创建 `entities/vendors/` 目录,迁移供应商信息
|
||||
3. 实现自动关系提取脚本
|
||||
4. 添加图谱可视化工具(如 Mermaid.js)
|
||||
|
||||
---
|
||||
|
||||
## 相关页面
|
||||
## 🛠️ 图谱维护指南
|
||||
|
||||
- [[knowledge-graph]] — 实体提取和类型化关系的设计
|
||||
- [[memory-lifecycle]] — 置信度评分与替代机制
|
||||
- [[SCHEMA]] — 实体页面的 frontmatter 规范
|
||||
### 新增实体
|
||||
1. 创建实体页面(`entities/` 或 `concepts/`)
|
||||
2. 添加 frontmatter:`type: entity` 或 `type: concept`
|
||||
3. 定义 `entity_type`:`airport`, `vendor`, `system`, `technology`, `standard`
|
||||
4. 添加 `relationships` 数组,连接相关实体
|
||||
5. 更新本索引文件的关系统计
|
||||
|
||||
### 更新关系
|
||||
```yaml
|
||||
# 在实体页面 frontmatter 中添加
|
||||
relationships:
|
||||
- target: target-entity-name
|
||||
type: uses|deploys|depends_on|supersedes|compatible_with|partners_with|provides
|
||||
detail: "可选描述"
|
||||
confidence: 0.0-1.0
|
||||
established_date: YYYY-MM-DD
|
||||
```
|
||||
|
||||
### 质量检查
|
||||
每月运行图谱质量检查:
|
||||
```bash
|
||||
# 检查孤立实体
|
||||
find_orphaned_entities()
|
||||
|
||||
# 检查置信度衰减
|
||||
decay_confidence_scores()
|
||||
|
||||
# 检查关系一致性
|
||||
validate_relationship_symmetry()
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📚 相关文档
|
||||
|
||||
- [[SCHEMA.md]] - Wiki 架构与 v2 扩展说明
|
||||
- [[knowledge-management/knowledge-graph.md]] - 知识图谱详细实现指南
|
||||
- [[hybrid-search.md]] - 混合搜索系统文档
|
||||
- [[concepts/tech-infrastructure/glossary.md]] - 术语定义
|
||||
|
||||
---
|
||||
|
||||
> **更新记录**:本文件基于 LLM Wiki v2 知识图谱理念重构,2026-04-13。下一次图谱质量检查:2026-05-13。
|
||||
@@ -0,0 +1,435 @@
|
||||
---
|
||||
title: 混合搜索系统
|
||||
created: 2026-04-13
|
||||
updated: 2026-04-13
|
||||
type: concept
|
||||
tags: [knowledge-management, hybrid-search, bm25, vector-search, knowledge-graph]
|
||||
confidence: 0.9
|
||||
sources_count: 3
|
||||
last_confirmed: 2026-04-13
|
||||
status: active
|
||||
relationships:
|
||||
- target: SCHEMA.md
|
||||
type: defines
|
||||
detail: "LLM Wiki v2 搜索架构"
|
||||
confidence: 0.95
|
||||
- target: entities/index.md
|
||||
type: uses
|
||||
detail: "知识图谱遍历"
|
||||
confidence: 0.9
|
||||
- target: knowledge-management/wiki-operations.md
|
||||
type: integrates_with
|
||||
detail: "自动化搜索触发"
|
||||
confidence: 0.85
|
||||
---
|
||||
|
||||
# 🎯 混合搜索系统
|
||||
|
||||
基于 **LLM Wiki v2** 的可扩展搜索架构,专为机场智能化工程 wiki(当前 89 页,预计增长至 200+ 页)设计。当传统 `index.md` 目录变得不可行时,混合搜索提供三层次检索融合。
|
||||
|
||||
> **核心理念**:单一检索方法无法覆盖所有查询场景。关键词匹配精准但缺乏语义理解,向量搜索理解语义但可能缺乏精确匹配,图谱遍历发现隐含关系但需要结构化数据。
|
||||
|
||||
---
|
||||
|
||||
## 🏗️ 三层检索架构
|
||||
|
||||
### 1️⃣ BM25 关键词检索
|
||||
**算法**:Okapi BM25(TF-IDF 的现代改进版)
|
||||
**用途**:精确术语匹配、技术参数查找、缩写搜索
|
||||
|
||||
```python
|
||||
# 伪代码实现
|
||||
def bm25_search(query: str, documents: List[str], k1=1.5, b=0.75):
|
||||
"""
|
||||
参数:
|
||||
- k1: 术语频率饱和度 (通常 1.2-2.0)
|
||||
- b: 文档长度归一化 (0-1, 通常 0.75)
|
||||
"""
|
||||
# 1. 分词 + 词干提取
|
||||
terms = stem(tokenize(query))
|
||||
|
||||
# 2. 计算每个文档的 BM25 分数
|
||||
scores = []
|
||||
for doc in documents:
|
||||
score = sum(
|
||||
idf(term) * (tf(term, doc) * (k1 + 1)) /
|
||||
(tf(term, doc) + k1 * (1 - b + b * len(doc)/avg_doc_len))
|
||||
for term in terms
|
||||
)
|
||||
scores.append(score)
|
||||
|
||||
return ranked_documents(scores)
|
||||
```
|
||||
|
||||
**优势**:
|
||||
- ✅ 精确匹配技术术语(如 "InfiniBand NDR 400G")
|
||||
- ✅ 支持同义词扩展(如 "GPU" → "图形处理器")
|
||||
- ✅ 快速响应(毫秒级)
|
||||
- ✅ 可解释性强(高亮匹配术语)
|
||||
|
||||
**局限**:
|
||||
- ❌ 无法理解语义相似性("智算中心" ≠ "数据中心")
|
||||
- ❌ 对拼写错误敏感
|
||||
- ❌ 无法处理复杂概念组合
|
||||
|
||||
**机场场景示例**:
|
||||
```
|
||||
查询: "Tier IV 数据中心 PUE"
|
||||
BM25 匹配:
|
||||
- tier-iv-design.md (PUE < 1.2)
|
||||
- power-and-cooling.md (PUE 计算方式)
|
||||
- 机场智算中心技术方案.md (Tier IV 章节)
|
||||
```
|
||||
|
||||
### 2️⃣ 向量语义检索
|
||||
**模型**:`text-embedding-3-small` (OpenAI) 或 `BGE-M3` (开源)
|
||||
**维度**:1536 维向量空间
|
||||
**用途**:概念搜索、相似文档发现、跨语言检索
|
||||
|
||||
```python
|
||||
# 伪代码实现
|
||||
def vector_search(query: str, embeddings: Dict[str, List[float]], top_k=10):
|
||||
"""
|
||||
参数:
|
||||
- embeddings: {page_path: [vector]}
|
||||
- top_k: 返回 top K 结果
|
||||
"""
|
||||
# 1. 查询编码
|
||||
query_vec = embed_model.encode(query)
|
||||
|
||||
# 2. 计算余弦相似度
|
||||
similarities = []
|
||||
for page_path, page_vec in embeddings.items():
|
||||
sim = cosine_similarity(query_vec, page_vec)
|
||||
similarities.append((page_path, sim))
|
||||
|
||||
# 3. 返回 top K
|
||||
return sorted(similarities, key=lambda x: x[1], reverse=True)[:top_k]
|
||||
```
|
||||
|
||||
**嵌入生成策略**:
|
||||
```python
|
||||
# 页面内容预处理
|
||||
def prepare_for_embedding(page_content: str) -> str:
|
||||
"""
|
||||
优化嵌入质量的预处理:
|
||||
1. 提取 frontmatter 关键字段 (title, tags, type)
|
||||
2. 保留正文前 2000 tokens(最重要的内容)
|
||||
3. 移除代码块、表格格式(保留纯文本)
|
||||
4. 标准化术语(统一缩写/全称)
|
||||
"""
|
||||
return processed_text
|
||||
|
||||
# 批量嵌入生成(每周更新)
|
||||
def regenerate_embeddings():
|
||||
for page in all_wiki_pages:
|
||||
content = read_page(page)
|
||||
text = prepare_for_embedding(content)
|
||||
embedding = embed_model.encode(text)
|
||||
save_embedding(page, embedding)
|
||||
|
||||
log("嵌入更新完成", timestamp=now())
|
||||
```
|
||||
|
||||
**优势**:
|
||||
- ✅ 理解语义相似性("AI训练集群" ≈ "GPU计算农场")
|
||||
- ✅ 支持模糊查询(拼写容错)
|
||||
- ✅ 发现相关但无关键词重叠的内容
|
||||
- ✅ 跨语言检索潜力
|
||||
|
||||
**局限**:
|
||||
- ❌ 无法精确匹配特定参数(如 "H100 功耗 700W")
|
||||
- ❌ 需要定期重新计算嵌入(内容更新时)
|
||||
- ❌ 计算成本较高(API 调用或本地推理)
|
||||
|
||||
**机场场景示例**:
|
||||
```
|
||||
查询: "如何降低数据中心能耗"
|
||||
向量匹配:
|
||||
- liquid-cooling.md (液冷节能 40%)
|
||||
- tier-iv-design.md (PUE 优化)
|
||||
- modern-airport-trends.md (绿色机场趋势)
|
||||
- prefab-modular-dc.md (模块化节能)
|
||||
```
|
||||
|
||||
### 3️⃣ 知识图谱遍历检索
|
||||
**数据源**:`entities/index.md` + 页面 `relationships` 字段
|
||||
**算法**:图遍历(BFS/DFS)、路径查询、社区发现
|
||||
**用途**:关系发现、影响分析、生态系统查询
|
||||
|
||||
```python
|
||||
# 伪代码实现
|
||||
def graph_traversal_search(start_entity: str,
|
||||
relation_type: Optional[str] = None,
|
||||
max_depth: int = 3):
|
||||
"""
|
||||
从起点实体开始遍历知识图谱
|
||||
"""
|
||||
visited = set()
|
||||
results = []
|
||||
|
||||
def dfs(entity: str, depth: int, path: List[str]):
|
||||
if depth > max_depth or entity in visited:
|
||||
return
|
||||
|
||||
visited.add(entity)
|
||||
path.append(entity)
|
||||
|
||||
# 获取实体的所有关系
|
||||
relationships = get_relationships(entity)
|
||||
|
||||
for rel in relationships:
|
||||
if relation_type and rel.type != relation_type:
|
||||
continue
|
||||
|
||||
# 记录发现的关系路径
|
||||
results.append({
|
||||
"path": path.copy() + [rel.target],
|
||||
"relation": rel.type,
|
||||
"confidence": rel.confidence,
|
||||
"depth": depth + 1
|
||||
})
|
||||
|
||||
# 递归遍历
|
||||
dfs(rel.target, depth + 1, path.copy() + [rel.target])
|
||||
|
||||
dfs(start_entity, 0, [])
|
||||
return results
|
||||
```
|
||||
|
||||
**图谱查询类型**:
|
||||
1. **直接关系查询**:`find_related("郑州航空港区机场", relation_type="deploys")`
|
||||
2. **路径查找**:`find_path("NVIDIA", "华为", max_depth=3)`
|
||||
3. **社区发现**:`find_community("aodb-core", min_confidence=0.8)`
|
||||
4. **影响力分析**:`find_influencers("liquid-cooling", direction="upstream")`
|
||||
|
||||
**优势**:
|
||||
- ✅ 发现隐含关系(间接连接)
|
||||
- ✅ 理解系统依赖和影响链
|
||||
- ✅ 支持推理查询("如果X故障,影响什么?")
|
||||
- ✅ 可视化展示(关系图)
|
||||
|
||||
**局限**:
|
||||
- ❌ 依赖结构化数据质量
|
||||
- ❌ 需要手动维护关系(或自动提取)
|
||||
- ❌ 无法处理非实体内容(概念解释)
|
||||
|
||||
**机场场景示例**:
|
||||
```
|
||||
查询: "哪些机场使用ADB SAFEGATE的AODB"
|
||||
图谱遍历:
|
||||
起点: ADB SAFEGATE → provides → aodb-core
|
||||
遍历: aodb-core ← deploys ← [shenzhen-airport, jfk-airport, ...]
|
||||
结果: [深圳机场, 纽约肯尼迪机场, ...]
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🔄 结果融合策略
|
||||
|
||||
### 倒数排名融合(RRF)
|
||||
```python
|
||||
def reciprocal_rank_fusion(bm25_results: List[str],
|
||||
vector_results: List[str],
|
||||
graph_results: List[str],
|
||||
k: int = 60):
|
||||
"""
|
||||
RRF 公式: score = Σ(1 / (k + rank))
|
||||
- k: 平滑参数,通常 60
|
||||
- rank: 在单个列表中的排名 (1-based)
|
||||
"""
|
||||
|
||||
# 初始化得分字典
|
||||
scores = defaultdict(float)
|
||||
|
||||
# 处理 BM25 结果
|
||||
for rank, doc in enumerate(bm25_results, 1):
|
||||
scores[doc] += 1 / (k + rank)
|
||||
|
||||
# 处理向量结果
|
||||
for rank, doc in enumerate(vector_results, 1):
|
||||
scores[doc] += 1 / (k + rank)
|
||||
|
||||
# 处理图谱结果(可能需要转换实体→页面)
|
||||
for rank, entity_path in enumerate(graph_results, 1):
|
||||
# 将实体路径转换为相关页面
|
||||
pages = entity_path_to_pages(entity_path)
|
||||
for page in pages:
|
||||
scores[page] += 1 / (k + rank) / len(pages)
|
||||
|
||||
# 按总得分排序
|
||||
return sorted(scores.items(), key=lambda x: x[1], reverse=True)
|
||||
```
|
||||
|
||||
### 查询类型自适应权重
|
||||
| 查询类型 | BM25权重 | 向量权重 | 图谱权重 | 说明 |
|
||||
|----------|----------|----------|----------|------|
|
||||
| **技术参数** | 0.6 | 0.3 | 0.1 | 精确数字、规格、型号 |
|
||||
| **概念解释** | 0.3 | 0.6 | 0.1 | 定义、原理、背景 |
|
||||
| **关系查询** | 0.1 | 0.2 | 0.7 | 依赖、影响、连接 |
|
||||
| **综合搜索** | 0.4 | 0.4 | 0.2 | 默认权重分配 |
|
||||
|
||||
### 去重与多样化
|
||||
```python
|
||||
def diversify_results(merged_results: List[Tuple[str, float]],
|
||||
max_similar: float = 0.8):
|
||||
"""
|
||||
确保结果多样性,避免同质化
|
||||
"""
|
||||
diversified = []
|
||||
seen_content = set()
|
||||
|
||||
for doc, score in merged_results:
|
||||
# 计算与已选结果的相似度
|
||||
max_sim = 0
|
||||
for selected in diversified[:5]: # 与前5个比较
|
||||
sim = content_similarity(doc, selected)
|
||||
max_sim = max(max_sim, sim)
|
||||
|
||||
# 如果太相似,降低权重
|
||||
if max_sim > max_similar:
|
||||
adjusted_score = score * (1 - max_sim)
|
||||
else:
|
||||
adjusted_score = score
|
||||
|
||||
diversified.append((doc, adjusted_score))
|
||||
|
||||
return sorted(diversified, key=lambda x: x[1], reverse=True)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🚀 实施路线图
|
||||
|
||||
### 阶段 1:基础 BM25 + 简易向量(当前)
|
||||
- ✅ Ripgrep 实现关键词搜索
|
||||
- ✅ 同义词词典扩展(`search/synonyms.txt`)
|
||||
- 🔄 OpenAI embeddings API 调用(按需)
|
||||
- 📊 搜索日志记录与分析
|
||||
|
||||
### 阶段 2:本地向量库 + 基础图谱(1-2周)
|
||||
- 🔄 本地嵌入模型部署(`BGE-M3` 或 `text-embedding-3-small`)
|
||||
- 🔄 每周批量嵌入更新
|
||||
- 🔄 实体关系图谱基础遍历
|
||||
- 📊 搜索结果质量评估框架
|
||||
|
||||
### 阶段 3:完整混合搜索 + 自动化(1个月)
|
||||
- 🔄 RRF 融合算法实现
|
||||
- 🔄 查询分类器(自动识别查询类型)
|
||||
- 🔄 图谱嵌入(Node2Vec 或 GraphSAGE)
|
||||
- 🔄 自动化搜索优化(基于用户反馈)
|
||||
|
||||
### 阶段 4:高级功能(未来)
|
||||
- 🔄 多语言检索支持
|
||||
- 🔄 时序搜索(基于 `updated` 日期)
|
||||
- 🔄 个性化排名(基于用户历史)
|
||||
- 🔄 可视化搜索界面
|
||||
|
||||
---
|
||||
|
||||
## 📋 技术栈建议
|
||||
|
||||
### 轻量级方案(Python 优先)
|
||||
```yaml
|
||||
bm25:
|
||||
- whoosh 或 tantivy (Python)
|
||||
- 同义词: pywsd 或 nltk.wordnet
|
||||
vector:
|
||||
- sentence-transformers (BGE-M3)
|
||||
- 或 OpenAI API (text-embedding-3-small)
|
||||
graph:
|
||||
- networkx (内存图)
|
||||
- 或 redisgraph (持久化)
|
||||
fusion:
|
||||
- 自定义 RRF 实现
|
||||
```
|
||||
|
||||
### 生产级方案
|
||||
```yaml
|
||||
bm25:
|
||||
- Elasticsearch 或 Typesense
|
||||
vector:
|
||||
- Qdrant 或 Weaviate (向量数据库)
|
||||
graph:
|
||||
- Neo4j 或 Amazon Neptune
|
||||
fusion:
|
||||
- 自定义微服务或 LangChain
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📊 性能指标与监控
|
||||
|
||||
### 搜索质量指标
|
||||
| 指标 | 计算方法 | 目标值 |
|
||||
|------|----------|--------|
|
||||
| **MRR** | Mean Reciprocal Rank | >0.6 |
|
||||
| **NDCG@10** | 归一化折损累计增益 | >0.7 |
|
||||
| **点击率** | 结果点击/展示 | >25% |
|
||||
| **查询分类准确率** | 自动分类准确率 | >85% |
|
||||
|
||||
### 性能指标
|
||||
| 指标 | 计算方法 | 目标值 |
|
||||
|------|----------|--------|
|
||||
| **P95 延迟** | 95% 查询响应时间 | <2s |
|
||||
| **吞吐量** | QPS (查询/秒) | >10 |
|
||||
| **缓存命中率** | 缓存结果/总查询 | >40% |
|
||||
| **嵌入新鲜度** | 嵌入更新延迟 | <7天 |
|
||||
|
||||
### 监控仪表板
|
||||
```python
|
||||
# 搜索日志格式
|
||||
search_log = {
|
||||
"query": "Tier IV PUE 标准",
|
||||
"query_type": "technical", # 自动分类
|
||||
"results_count": 15,
|
||||
"fusion_method": "rrf_k60",
|
||||
"response_time_ms": 1240,
|
||||
"components_timing": {
|
||||
"bm25": 120,
|
||||
"vector": 980,
|
||||
"graph": 140
|
||||
},
|
||||
"user_feedback": None, # 点击或评分
|
||||
"timestamp": "2026-04-13T10:30:00Z"
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🔧 维护指南
|
||||
|
||||
### 每周维护任务
|
||||
1. **嵌入更新**:重新计算所有页面的向量嵌入
|
||||
2. **同义词更新**:根据搜索日志添加新同义词
|
||||
3. **图谱验证**:检查关系一致性和置信度衰减
|
||||
4. **性能分析**:分析慢查询,优化索引
|
||||
|
||||
### 每月优化任务
|
||||
1. **权重调整**:基于用户反馈调整融合权重
|
||||
2. **模型评估**:评估嵌入模型效果,考虑升级
|
||||
3. **查询分析**:识别常见查询模式,优化处理
|
||||
4. **容量规划**:预测增长,规划扩容
|
||||
|
||||
### 故障恢复
|
||||
```bash
|
||||
# 搜索系统故障恢复流程
|
||||
1. 降级到纯 BM25 搜索
|
||||
2. 禁用向量和图谱组件
|
||||
3. 检查嵌入存储完整性
|
||||
4. 逐步恢复各组件
|
||||
5. 验证搜索结果质量
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📚 相关文档
|
||||
|
||||
- [[SCHEMA.md]] - LLM Wiki v2 架构定义
|
||||
- [[entities/index.md]] - 知识图谱数据源
|
||||
- [[knowledge-management/wiki-operations.md]] - 自动化维护
|
||||
- [[search-logs-analysis.md]] - 搜索日志分析报告
|
||||
|
||||
---
|
||||
|
||||
> **实施状态**:当前处于阶段 1(基础 BM25 + API 向量)。下一步:部署本地嵌入模型,实现每周批量更新。最后更新:2026-04-13。
|
||||
+129
-131
@@ -6,170 +6,168 @@ type: meta
|
||||
tags: [meta, index]
|
||||
---
|
||||
|
||||
# Wiki Index
|
||||
# 🏗️ Airport Wiki 入口
|
||||
|
||||
> 機場智能化工程 wiki — 涵蓋**智算中心技術**與**航班運營管理**兩大領域
|
||||
> Last updated: 2026-04-13 | Total pages: 39
|
||||
> **機場智能化工程知識庫** — 基於 LLM Wiki v2 架構的動態知識系統
|
||||
> 📊 總頁數: 43 | 📅 最後更新: 2026-04-13 | 🔗 版本: v2.1.0
|
||||
|
||||
---
|
||||
|
||||
## 目錄結構
|
||||
## 🧭 快速導航
|
||||
|
||||
### 按領域探索
|
||||
- **🧠 智算中心技術** — GPU集群、液冷供電、網絡架構、Tier等級標準
|
||||
- **✈️ 航班運營管理** — AODB/A-CDM/SMGCS/BHS、數據交換、供應商分析
|
||||
- **🏢 機場實體案例** — 深圳/鄭州/福州/樟宜等標杆機場技術方案
|
||||
- **⚙️ 知識管理系統** — 置信度衰減、實體圖譜、自動化鉤子、質量控制
|
||||
|
||||
### 按用途查找
|
||||
- **技術選型** → [[gpu-cluster]] | [[aodb-vendors]] | [[power-and-cooling]]
|
||||
- **系統設計** → [[network-architecture]] | [[airport-systems-landscape]] | [[open-architecture]]
|
||||
- **前沿趨勢** → [[agentic-ai-airports]] | [[digital-twins-airports]] | [[modern-airport-trends]]
|
||||
- **案例參考** → [[airport-dc-case-studies]] | [[airport-operations-systems]] | [[entities/index]]
|
||||
|
||||
### 搜索指南
|
||||
1. **概念搜索** → `[[概念名稱]]` 雙括號鏈接
|
||||
2. **關鍵詞搜索** → 在任意筆記中使用 `Cmd/Ctrl+F`
|
||||
3. **關係探索** → 查看筆記底部的 `relationships` 部分
|
||||
4. **實體導航** → 訪問 [[entities/index]] 查看機場實體圖譜
|
||||
|
||||
---
|
||||
|
||||
## 📁 目錄結構概覽
|
||||
|
||||
```
|
||||
airport-wiki/
|
||||
├── SCHEMA.md # Wiki 架構定義
|
||||
├── index.md # 本文件
|
||||
├── log.md # 操作日誌
|
||||
├── SCHEMA.md # 🏗️ 架構定義
|
||||
├── index.md # 🏠 本入口頁
|
||||
├── log.md # 📝 操作日誌
|
||||
│
|
||||
├── 机场智算中心技术方案.md # 智算中心综合技术方案(完整硬核参数版)
|
||||
├── 机场航班数据管理运营方案.md # 航班運營綜合方案
|
||||
├── 机场智算中心技术方案.md # 💾 智算中心完整技術方案
|
||||
├── 机场航班数据管理运营方案.md # ✈️ 航班運營綜合方案
|
||||
│
|
||||
├── concepts/
|
||||
│ ├── tech-infrastructure/ # 智算中心技術(9頁)
|
||||
│ │ ├── airport-data-center-overview.md
|
||||
│ │ ├── gpu-cluster.md
|
||||
│ │ ├── network-architecture.md
|
||||
│ │ ├── power-and-cooling.md
|
||||
│ │ ├── tier-iii-design.md
|
||||
│ │ ├── tier-iv-design.md
|
||||
│ │ ├── prefab-modular-dc.md
|
||||
│ │ ├── modern-airport-trends.md
|
||||
│ │ └── glossary.md
|
||||
│ │
|
||||
│ └── flight-operations/ # 航班運營系統(16頁)
|
||||
│ ├── airport-systems-landscape.md # 系統全景圖
|
||||
│ ├── a-cdm.md
|
||||
│ ├── aodb-core.md # AODB 核心概念
|
||||
│ ├── aodb-vendors.md # AODB 供應商分析
|
||||
│ ├── smgcs.md
|
||||
│ ├── baggage-handling.md
|
||||
│ ├── flight-data-exchange.md
|
||||
│ ├── smart-gating.md
|
||||
│ ├── deicing-operations.md
|
||||
│ ├── agentic-ai-airports.md # 🆕
|
||||
│ ├── aocc-ioc.md # 🆕
|
||||
│ ├── biometric-corridors.md # 🆕
|
||||
│ ├── digital-twins-airports.md # 🆕
|
||||
│ ├── future-airport-info-center.md # 🆕
|
||||
│ ├── open-architecture.md # 🆕
|
||||
│ └── universal-design-airports.md # 🆕
|
||||
├── concepts/ # 📚 概念庫
|
||||
│ ├── tech-infrastructure/ # 🔧 智算中心技術
|
||||
│ ├── flight-operations/ # 🛫 航班運營系統
|
||||
│ └── knowledge-management/ # ⚡ LLM Wiki v2 知識管理
|
||||
│ ├── automation-hooks.md # 🔄 自動化鉤子與事件驅動
|
||||
│ ├── knowledge-lifecycle.md # 📉 知識生命周期與遺忘曲線
|
||||
│ ├── quality-control.md # 🔍 質量控制與自我糾正
|
||||
│ ├── knowledge-graph.md # 🕸️ 實體圖譜與類型化關係
|
||||
│ └── hybrid-search.md # 🔎 混合搜索與查詢重寫
|
||||
│
|
||||
│ └── knowledge-management/ # 知識管理(3頁)🆕 2026-04-13
|
||||
│ ├── memory-lifecycle.md # 置信度/superset/遺忘機制
|
||||
│ ├── knowledge-graph.md # 實體圖譜/類型化關係
|
||||
│ └── wiki-operations.md # 事件鉤子/自動化
|
||||
├── comparisons/ # ⚖️ 對比分析
|
||||
│ ├── airport-dc-case-studies.md # 數據中心案例
|
||||
│ └── airport-operations-systems.md # 運營系統對比
|
||||
│
|
||||
├── comparisons/
|
||||
│ ├── airport-dc-case-studies.md
|
||||
│ └── airport-operations-systems.md
|
||||
├── entities/ # 🏢 機場實體
|
||||
│ ├── index.md # 📊 實體索引與關係圖譜
|
||||
│ ├── shenzhen-airport.md # 深圳寶安國際機場
|
||||
│ ├── zhengzhou-airport-hangang.md # 鄭州航空港
|
||||
│ ├── fuzhou-changle-airport-bsj.md # 福州長樂機場
|
||||
│ ├── jfk-airport.md # 紐約 JFK 機場
|
||||
│ ├── pittsburgh-airport.md # 匹茲堡國際機場
|
||||
│ ├── rome-fiumicino-airport.md # 羅馬 Fiumicino 機場
|
||||
│ └── singapore-changi-airport.md # 新加坡樟宜機場
|
||||
│
|
||||
├── entities/
|
||||
│ ├── index.md # 實體索引 + 關係圖譜 🆕
|
||||
│ ├── shenzhen-airport.md
|
||||
│ ├── zhengzhou-airport-hangang.md
|
||||
│ ├── fuzhou-changle-airport-bsj.md
|
||||
│ ├── jfk-airport.md # 🆕
|
||||
│ ├── pittsburgh-airport.md # 🆕
|
||||
│ ├── rome-fiumicino-airport.md # 🆕
|
||||
│ └── singapore-changi-airport.md # 🆕
|
||||
├── _archive/ # 🗃️ 歸檔版本(被 supersede)
|
||||
│
|
||||
├── _archive/ # 被 supersede 的歷史版本 🆕
|
||||
│
|
||||
└── raw/
|
||||
├── articles/ # 來源文章(9篇)🆕 llm-wiki-v2
|
||||
└── ...
|
||||
└── raw/ # 📄 原始資料
|
||||
├── articles/ # 來源文章(LLM Wiki v2 攝入)
|
||||
└── ... # 其他原始資料
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 領域一:機場智算中心技術
|
||||
## 🔄 LLM Wiki v2 特性
|
||||
|
||||
> 硬件選型、液冷供電、網路架構、等級標準、預制模塊化
|
||||
### 動態知識管理
|
||||
- **置信度衰減** — 基於時間和使用頻率的知識老化機制
|
||||
- **自動整合** — 新來源到現有知識的智能合併
|
||||
- **衝突檢測** — 矛盾陳述的識別和解決
|
||||
- **質量控制** — 多層次驗證和自我糾正
|
||||
|
||||
### 核心概念
|
||||
### 智能檢索
|
||||
- **混合搜索** — 向量 + 關鍵詞 + 語義重寫
|
||||
- **關係圖譜** — 實體之間的類型化關係
|
||||
- **上下文感知** — 查詢意圖識別和結果排序
|
||||
- **結果學習** — 查詢模式的記錄和優化
|
||||
|
||||
| 頁面 | 標籤 | 說明 |
|
||||
|------|------|------|
|
||||
| [[airport-data-center-overview]] | tier, system | 機場數據中心定義、關鍵子系統、建設階段 |
|
||||
| [[gpu-cluster]] | gpu, network, server | GPU 芯片選型(Blackwell/H100/H200)、HGX 服務器功耗、千卡集群參考造價 |
|
||||
| [[network-architecture]] | network, switching, wan | 機場網路分區、Spine-Leaf、InfiniBand/RoCE、網路安全 |
|
||||
| [[power-and-cooling]] | power, cooling, liquid-cooling | 供配電、UPS/發電機、液冷 PUE/WUE/CUE 三級指標、冷板/浸沒式 |
|
||||
| [[tier-iii-design]] | tier-iii, certification | Tier III 標準(99.982%)、N+1 冗余、可維護性要求 |
|
||||
| [[tier-iv-design]] | tier-iv, certification | Tier IV 標準(99.995%)、2N 冗余、容錯架構 |
|
||||
| [[prefab-modular-dc]] | planning, construction | 預制模塊化華為方案、機場適用性分析 |
|
||||
| [[modern-airport-trends]] | ai-ml, planning | 2025-2026 趨勢:四型機場/智算中心/AI智能體/萬卡集群 |
|
||||
| [[glossary]] | glossary | 縮略語(DC/PUE/BHS/FIDS/A-CDM/AODB 等)|
|
||||
|
||||
### 技術方案
|
||||
|
||||
- [[机场智算中心技术方案]] — 機場智算中心綜合技術方案(GPU集群+液冷+網路+供電+選址+等級對標)
|
||||
|
||||
### 案例對比
|
||||
|
||||
- [[airport-dc-case-studies]] — 北京大興/迪拜/大連金州灣三個機場數據中心橫向對比
|
||||
### 自動化維護
|
||||
- **事件驅動** — 文件變更觸發自動處理
|
||||
- **定期任務** — 每週/每月自動質量檢查
|
||||
- **異常檢測** — 技術參數和邏輯異常告警
|
||||
- **備份恢復** — 增量備份和版本管理
|
||||
|
||||
---
|
||||
|
||||
## 領域二:航班運營管理
|
||||
## 🚀 開始使用
|
||||
|
||||
> 運營系統(AODB/A-CDM/SMGCS/BHS)、航班數據交換、供應商對比
|
||||
### 1. 查看架構
|
||||
閱讀 [[SCHEMA.md]] 了解 wiki 的整體設計理念和領域劃分。
|
||||
|
||||
### 系統全景
|
||||
### 2. 瀏覽核心概念
|
||||
- **智算中心技術** → 訪問 `concepts/tech-infrastructure/` 目錄
|
||||
- **航班運營系統** → 訪問 `concepts/flight-operations/` 目錄
|
||||
- **知識管理** → 訪問 `concepts/knowledge-management/` 目錄
|
||||
|
||||
| 頁面 | 說明 |
|
||||
|------|------|
|
||||
| [[airport-systems-landscape]] | 🆕 機場運營系統全景圖 — 分層架構 + 數據流向 + 關鍵標準接口 |
|
||||
### 3. 探索實體案例
|
||||
查看 [[entities/index]] 了解各機場的技術特點和相互關係。
|
||||
|
||||
### 核心運營系統
|
||||
### 4. 使用搜索功能
|
||||
- 查找具體技術參數 → 搜索關鍵詞如 `GPU H100`、`PUE`、`Tier IV`
|
||||
- 查找運營系統 → 搜索 `AODB`、`A-CDM`、`SMGCS`
|
||||
- 查找廠商方案 → 搜索 `SITA`、`ADB SAFEGATE`、`華為`
|
||||
|
||||
| 頁面 | 標籤 | 說明 |
|
||||
|------|------|------|
|
||||
| [[aodb-core]] | aodb, a-cdm, flight-data | AODB 核心概念 — SSOT 數據中樞、A-CDM Milestone、選型決策樹 |
|
||||
| [[aodb-vendors]] | aodb, vendor, comparison | AODB 供應商深度分析 — ADB SAFEGATE/Amadeus/AirportLabs/PDC/Indra 對比 |
|
||||
| [[a-cdm]] | a-cdm, flight-data | A-CDM 協同決策 — TOBT/TSAT/TTOT、ACISP、PDS 起飛排序器 |
|
||||
| [[smgcs]] | smgcs, airside | SMGCS/A-SMGCS — L1-L4 功能層級、場面監視組件、低能見度運行 |
|
||||
| [[baggage-handling]] | bhs, bag-trace | BHS 行李處理系統 — RFID 追蹤、IATA Res.753、Tote-based 分揀 |
|
||||
| [[flight-data-exchange]] | flight-data, api | 航班數據交換標準 — SSIM/AIRIMP/AHM/CIDX、XML vs Flat File |
|
||||
| [[smart-gating]] | smart-gating, vdgs | 智能登機口 — 遠機位調度、停機位優化、Assaia/ADB SAFEGATE 方案 |
|
||||
| [[open-architecture]] | open-architecture, security, integration | 機場開放架構 — ACI EUROPE 2020 標準、DICOS/ACRIS、三大工作流、機場 4.0 基礎 |
|
||||
| [[deicing-operations]] | deicing, airside | 除冰運營 — 除冰坪布局、液體管理、A-CDM 協同 |
|
||||
|
||||
### 未來信息中心與前沿技術
|
||||
|
||||
| 頁面 | 標籤 | 說明 |
|
||||
|------|------|------|
|
||||
| [[future-airport-info-center]] | passenger, ai-ml, digital-twins, biometric, aocc | **未來機場信息中心** — Connected Intelligence 核心理念、四大技術支柱(AI/數字孿生/生物識別/AOCC)、三大設計方向 |
|
||||
| [[agentic-ai-airports]] | ai-ml, passenger, system | **Agentic AI** — 自主決策 AI 智能體、羅馬 ADR 案例、vs 傳統規則引擎對比 |
|
||||
| [[digital-twins-airports]] | digital-twins, ai-ml, iot, sustainability | **數字孿生** — 高精度虛擬副本、客流模擬/預測性維護/能源優化、Bentley Systems |
|
||||
| [[biometric-corridors]] | biometric, passenger, digital-identity, security | **生物特徵走廊** — 「出行一張臉」One Face Travel、關鍵技術棧、樟宜 T5 應用 |
|
||||
| [[aocc-ioc]] | aocc, ioc, a-cdm, system | **AOCC/IOC** — 機場運控中心、華為方案、18.38 億美元(2026)市場規模、10.38% CAGR |
|
||||
| [[universal-design-airports]] | passenger, human-centered-design, accessibility | **通用設計** — 全球首個 Universal Design 認證機場(PIT)、 ADA/ACI 無障礙標準 |
|
||||
|
||||
### 運營方案
|
||||
|
||||
- [[机场航班数据管理运营方案]] — 航班數據管理運營綜合方案(AODB+A-CDM+SMGCS+BHS)
|
||||
|
||||
### 供應商對比
|
||||
|
||||
- [[airport-operations-systems]] — 機場運營系統橫向對比:5大 AODB + BHS + A-SMGCS 廠商
|
||||
### 5. 貢獻內容
|
||||
- **新增來源** → 放置到 `raw/articles/` 目錄(自動觸發處理)
|
||||
- **編輯頁面** → 直接修改 `.md` 文件(觸發自動質量檢查)
|
||||
- **報告問題** → 在筆記中標記 `⚠️` 或 `❌` 問題
|
||||
|
||||
---
|
||||
|
||||
## Entities(機場實體案例)
|
||||
## 📊 系統狀態
|
||||
|
||||
| 頁面 | 說明 |
|
||||
|------|------|
|
||||
| [[shenzhen-airport]] | 深圳寶安國際機場:DeepSeek R1-671B 滿血版部署案例 |
|
||||
| [[zhengzhou-airport-hangang]] | 鄭州航空港:中部最大萬卡算力集群(當前 10,000P,規劃 100,000P+)|
|
||||
| [[fuzhou-changle-airport-bsj]] | 福州長樂機場保稅區智算中心:在建 15,000P,2026年10月投產,總投資11億元 |
|
||||
| [[jfk-airport]] | 紐約 JFK:T6 + New Terminal One(SITA + CCM)信息中心,數字標牌/尋路/ADA 無障礙 |
|
||||
| [[rome-fiumicino-airport]] | 羅馬 Fiumicino(ADR):2025 年生成式 AI 虛擬助手,多語言全流程旅客服務 |
|
||||
| [[pittsburgh-airport]] | 匹茲堡國際機場(PIT):2026.02 全球首個通用設計(Universal Design)認證機場 |
|
||||
| [[singapore-changi-airport]] | 新加坡樟宜機場(SIN):T5 100% 無接觸 + SITA 新加坡體驗中心,亞太數字化標杆 |
|
||||
| 指標 | 當前值 | 狀態 |
|
||||
|------|--------|------|
|
||||
| **總頁數** | 43 | ✅ 正常 |
|
||||
| **知識覆蓋度** | 機場智算 + 航班運營 | 📈 擴展中 |
|
||||
| **置信度均值** | 0.82 | 🟢 良好 |
|
||||
| **衝突數量** | 2 | 🟡 低風險 |
|
||||
| **最近更新** | 2026-04-13 | ✅ 活躍 |
|
||||
| **自動化鉤子** | 基礎實現 | 🟡 部分啟用 |
|
||||
|
||||
---
|
||||
|
||||
## 最近更新
|
||||
## 📞 支持與反饋
|
||||
|
||||
### 常見問題
|
||||
**Q: 如何查找某個具體技術參數?**
|
||||
A: 使用雙向鏈接 `[[頁面名稱]]` 或搜索關鍵詞。技術參數通常在 `gpu-cluster.md`、`power-and-cooling.md` 等頁面。
|
||||
|
||||
**Q: 如何對比不同機場的方案?**
|
||||
A: 訪問 [[airport-dc-case-studies.md]] 或 [[entities/index]] 查看橫向對比。
|
||||
|
||||
**Q: 新增的來源如何被處理?**
|
||||
A: 放入 `raw/articles/` 後會自動觸發解析、實體提取和知識整合。
|
||||
|
||||
**Q: 如何查看頁面的置信度?**
|
||||
A: 查看頁面的 YAML frontmatter 中的 `confidence` 字段。
|
||||
|
||||
### 問題報告
|
||||
1. **內容錯誤** → 在頁面中添加 `⚠️` 標記和錯誤描述
|
||||
2. **技術問題** → 檢查 `log.md` 中的自動化處理記錄
|
||||
3. **功能建議** → 在相關概念頁面添加建議註釋
|
||||
|
||||
---
|
||||
|
||||
## 📅 更新歷史
|
||||
|
||||
- **2026-04-13** — **LLM Wiki v2 升級完成**:新增知識管理系統(自動化鉤子、生命周期、質量控制、實體圖譜)
|
||||
- **2026-04-10** — 大規模重構:SCHEMA.md 更新,拆分 AODB 文檔,新增系統全景圖
|
||||
- **2026-04-08** — 初始創建:智算中心+航班運營方案,8篇來源文章攝入
|
||||
|
||||
> 💡 **提示**:本 wiki 採用 LLM Wiki v2 架構,支持動態知識更新和自動化維護。所有內容都帶有置信度評分,並會隨時間衰減。查看 [[concepts/knowledge-management/]] 了解更多。
|
||||
|
||||
---
|
||||
|
||||
- **2026-04-10** — 大規模重構:SCHEMA.md 更新 Domain + 標籤體系;aodb.md(380行)拆分為 aodb-core.md + aodb-vendors.md;新增 airport-systems-landscape.md;concepts/ 拆分為 tech-infrastructure/ 和 flight-operations/ 兩子目錄
|
||||
- **2026-04-08** — 初始攝入:機場智算中心技術方案 + 航班數據管理運營方案 + 8篇來源文章
|
||||
|
||||
@@ -0,0 +1,758 @@
|
||||
---
|
||||
title: AODB 系统架构设计文档
|
||||
created: 2026-04-13
|
||||
updated: 2026-04-13
|
||||
type: system-design
|
||||
tags: [aodb, system-design, architecture, ddd, acdm]
|
||||
sources: [参考: aodb-core, aodb-vendors, flight-data-exchange, a-cdm]
|
||||
---
|
||||
|
||||
# AODB 系统架构设计文档
|
||||
|
||||
> **项目代号**: AeroCore AODB
|
||||
> **设计依据**: 参考 SITA Operations Manager、Amadeus AODB、ADB SAFEGATE Cortex、AirportLabs SkyCore 等商用系统,结合 IATA A-CDM Toolkit 2025、IATA AIDX v22.1、SSIM 第36版标准
|
||||
> **架构风格**: DDD(领域驱动设计)+ 事件驱动 + 微服务架构(可拆分为单体或微服务部署)
|
||||
> **目标定位**: 对标商用 AODB(年旅客量 1000万~4000万级别),具备 A-CDM 全链路、SSIM/AIDX 原生支持、多源融合、AI 辅助决策能力
|
||||
|
||||
---
|
||||
|
||||
## 一、设计目标与验收标准
|
||||
|
||||
### 1.1 核心能力目标
|
||||
|
||||
| 能力维度 | 目标 | 对标商用系统 |
|
||||
|---------|------|------------|
|
||||
| 航班数据管理 | 全生命周期覆盖(计划→执飞→历史) | Amadeus AODB |
|
||||
| A-CDM Milestone | 16项里程碑全自动触发 | SITA Operations Manager |
|
||||
| SSIM 解析 | 第36版格式全字段解析 | IATA SSIM 标准 |
|
||||
| AIDX XML 引擎 | v22.1 全消息类型支持 | IATA AIDX 标准 |
|
||||
| 多源融合 | 最多支持 8 路数据源优先判定 | ADB SAFEGATE Cortex |
|
||||
| VTT 预测 | 基于历史数据的 EXOT/EXIT ML 预测 | ADB SAFEGATE VTT |
|
||||
| What-if 仿真 | 配置变更方案评估 | ADB SAFEGATE "What-if" |
|
||||
| 高可用 | 99.99% 可用性(4个9) | Collins AirDB |
|
||||
| 响应延迟 | API P99 < 200ms,事件推送 < 2s | PDC Aviation |
|
||||
|
||||
### 1.2 非功能目标
|
||||
|
||||
- **水平扩展**: 无状态服务层,存储层按需扩容,支持航班量 10x 增长
|
||||
- **多租户**: 支持单机场 + 多机场集团模式,数据隔离
|
||||
- **国产化**: 适配国产芯片(鲲鹏/飞腾)、国产数据库(GaussDB/达梦)、国产操作系统(麒麟/统信)
|
||||
- **国际化**: 字符编码 UTF-8,支持 IATA Airport Code(3字母)、ICAO Code(4字母)双码制
|
||||
- **合规**: 满足等保2.0三级、民航局 MH/T 5103-2020 标准
|
||||
|
||||
---
|
||||
|
||||
## 二、系统架构概览
|
||||
|
||||
### 2.1 四层架构总览
|
||||
|
||||
```
|
||||
┌──────────────────────────────────────────────────────────────────────┐
|
||||
│ 接入层(Access Layer) │
|
||||
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
|
||||
│ │ Web Console │ │ Mobile App │ │ 第三方API │ │ 报文网关 │ │
|
||||
│ │ (运营控制) │ │ (移动操作) │ │ (REST/GraphQL)│ │ (SSIM/AIDX) │ │
|
||||
│ └──────────────┘ └──────────────┘ └──────────────┘ └──────────────┘ │
|
||||
├──────────────────────────────────────────────────────────────────────┤
|
||||
│ 网关层(Gateway Layer) │
|
||||
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
|
||||
│ │ API Gateway │ │ 消息网关 │ │ 规则引擎 │ │
|
||||
│ │ (认证/限流) │ │ (AIDX/SSIM) │ │ (业务规则) │ │
|
||||
│ └──────────────┘ └──────────────┘ └──────────────┘ │
|
||||
├──────────────────────────────────────────────────────────────────────┤
|
||||
│ 核心服务层(Core Services) │
|
||||
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
|
||||
│ │ Flight Domain│ │ Resource │ │ A-CDM │ │ Billing │ │
|
||||
│ │ 航班领域服务 │ │ Domain │ │ 协同服务 │ │ Domain │ │
|
||||
│ │ │ │ 资源领域服务 │ │ │ │ 计费领域 │ │
|
||||
│ └──────────────┘ └──────────────┘ └──────────────┘ └──────────────┘ │
|
||||
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
|
||||
│ │ Messaging │ │ AI Engine │ │ Simulation │ │ Reference │ │
|
||||
│ │ 消息交换服务 │ │ AI推理引擎 │ │ What-if仿真 │ │ Data │ │
|
||||
│ │ │ │ (VTT/预测) │ │ │ │ 参考数据 │ │
|
||||
│ └──────────────┘ └──────────────┘ └──────────────┘ └──────────────┘ │
|
||||
├──────────────────────────────────────────────────────────────────────┤
|
||||
│ 数据层(Data Layer) │
|
||||
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
|
||||
│ │ PostgreSQL │ │ Redis │ │ Kafka │ │ TimescaleDB │ │
|
||||
│ │ 主数据存储 │ │ 热缓存/会话 │ │ 事件总线 │ │ 时序数据 │ │
|
||||
│ └──────────────┘ └──────────────┘ └──────────────┘ └──────────────┘ │
|
||||
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
|
||||
│ │ MinIO/S3 │ │ Elasticsearch│ │ SQLite │ │
|
||||
│ │ 文件存储 │ │ 日志检索 │ │ 嵌入式测试 │ │
|
||||
│ └──────────────┘ └──────────────┘ └──────────────┘ │
|
||||
└──────────────────────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
### 2.2 技术选型
|
||||
|
||||
| 层级 | 组件 | 选型理由 | 备选 |
|
||||
|------|------|---------|------|
|
||||
| 主数据存储 | **PostgreSQL 16+** | ACID 强一致、JSONB 支持 GIS、时序插件、分区表 | GaussDB, 达梦 |
|
||||
| 缓存/会话 | **Redis Cluster** | 集群模式、高并发缓存、Redis Streams 事件驱动 | |
|
||||
| 消息总线 | **Apache Kafka** | 事件溯源、多消费者、 Exactly-once 语义 | RocketMQ |
|
||||
| 时序分析 | **TimescaleDB** | 基于 PG 的时序扩展,航班历史趋势分析 | InfluxDB |
|
||||
| 全文检索 | **Elasticsearch** | 日志分析、航班号/乘客名搜索 | |
|
||||
| 文件存储 | **MinIO** | S3 兼容、国产化支持 | 华为 OBS |
|
||||
| 搜索框 | **Blazor WebAssembly** | 运营控制台,技术栈统一 | React/Vue |
|
||||
| 移动端 | **Flutter** | iOS/Android 双端,Low-code 表单 | |
|
||||
| API 网关 | **Kong/Apache APISIX** | 开源、可插拔插件、mTLS | |
|
||||
| 服务网格 | **Istio**(可选) | 微服务治理、流量管理、mTLS | |
|
||||
| 容器平台 | **Kubernetes** | 可移植性、国产化(麒麟/达梦) | |
|
||||
|
||||
---
|
||||
|
||||
## 三、DDD 领域划分
|
||||
|
||||
### 3.1 限界上下文(Bounded Contexts)
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────────────┐
|
||||
│ AeroCore AODB │
|
||||
│ │
|
||||
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌──────────┐ │
|
||||
│ │ Flight │ │ Resource │ │ Operations │ │ Billing │ │
|
||||
│ │ Context │ │ Context │ │ Context │ │ Context │ │
|
||||
│ │ │ │ │ │ │ │ │ │
|
||||
│ │ - 航班计划 │ │ - 登机口 │ │ - A-CDM │ │ - 账单 │ │
|
||||
│ │ - 航班动态 │ │ - 机位 │ │ - Milestone │ │ - 发票 │ │
|
||||
│ │ - 机型机号 │ │ - 行李转盘 │ │ - PDS │ │ - 结算 │ │
|
||||
│ │ - 旅客数据 │ │ - 设备 │ │ - VTT │ │ │ │
|
||||
│ └─────────────┘ └─────────────┘ └─────────────┘ └──────────┘ │
|
||||
│ │
|
||||
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
|
||||
│ │ Messaging │ │ Reference │ │ Integration│ │
|
||||
│ │ Context │ │ Context │ │ Context │ │
|
||||
│ │ │ │ │ │ │ │
|
||||
│ │ - SSIM解析 │ │ - 机场基础 │ │ - AIDX引擎 │ │
|
||||
│ │ - AIDX处理 │ │ - 航司数据 │ │ - 第三方API │ │
|
||||
│ │ - 报文路由 │ │ - 机型字典 │ │ - Webhook │ │
|
||||
│ └─────────────┘ └─────────────┘ └─────────────┘ │
|
||||
│ │
|
||||
│ ┌─────────────────────────────────────────────────────────────┐ │
|
||||
│ │ Shared Kernel │ │
|
||||
│ │ AirportCode(IATA/ICAO) | Time(UTC) | FlightNumber | Event │ │
|
||||
│ └─────────────────────────────────────────────────────────────┘ │
|
||||
└─────────────────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
### 3.2 各领域核心实体
|
||||
|
||||
#### Flight Context(航班上下文)
|
||||
|
||||
```
|
||||
Flight(航班聚合根)
|
||||
├── FlightId (UUID, 业务ID)
|
||||
├── FlightNumber (CA1234, 航司码+数字)
|
||||
├── OperationalSuffix (A/B, 同一日重复航班)
|
||||
├── AircraftId → Aircraft (实体)
|
||||
├── AirlineId → Airline (实体)
|
||||
├── OriginAirport (IATACode, 值对象)
|
||||
├── DestinationAirport (IATACode, 值对象)
|
||||
├── ServiceType (J/C/F/P/M, 值对象)
|
||||
├── OperationalStatus (OP/NOP/DV/DX/RT/GRT/SQ, 枚举)
|
||||
│
|
||||
├── Legs: List<FlightLeg> (去程/回程, 聚合内实体)
|
||||
│ └── FlightLeg
|
||||
│ ├── LegIdentifier: UFI (唯一航班标识, 值对象)
|
||||
│ ├── LegData
|
||||
│ │ ├── ScheduledTimes (计划时间, SCT)
|
||||
│ │ ├── EstimatedTimes (预计时间, EST)
|
||||
│ │ ├── ActualTimes (实际时间, ACT)
|
||||
│ │ ├── PaxCount (旅客数)
|
||||
│ │ └── AircraftInfo (机型/注册号/尾号)
|
||||
│ └── Resources: List<AssignedResource>
|
||||
│
|
||||
├── Milestones: List<FlightMilestone> (16项里程碑, 值对象集合)
|
||||
│ └── FlightMilestone
|
||||
│ ├── Code (ELDT/ALDT/EOBT/AOBT/TOBT/TSAT/TTOT/ATOT/CTOT/EXOT/EIBT/EXIT/AIBT/ATIGT/TTIGT/COBT)
|
||||
│ ├── Time (时间戳)
|
||||
│ ├── Source (来源系统)
|
||||
│ ├── Provenance (数据溯源, 枚举: IATA_AIDX/SITA/ATC/_HANDLER)
|
||||
│ └── Confirmed (是否已确认)
|
||||
│
|
||||
└── Domains Events
|
||||
├── FlightCreatedEvent
|
||||
├── FlightStatusChangedEvent
|
||||
├── MilestoneUpdatedEvent
|
||||
└── FlightCancelledEvent
|
||||
```
|
||||
|
||||
#### Resource Context(资源上下文)
|
||||
|
||||
```
|
||||
Gate(登机口聚合根)
|
||||
├── GateId
|
||||
├── IATACode (A1, B12)
|
||||
├── TerminalId → Terminal
|
||||
├── GateType (Domestic/International/Transfer)
|
||||
├── ContactInfo (对讲机频道等)
|
||||
└── CurrentAssignment → FlightLeg? (当前绑定航班)
|
||||
|
||||
Stand(机位聚合根)
|
||||
├── StandId
|
||||
├── IATACode (B12, 远机位编号)
|
||||
├── TerminalId
|
||||
├── StandType (Narrow/Wide/Heavy)
|
||||
├── MaxAircraftSize (ICAO Wake Turbulence Category)
|
||||
└── Equipment (400Hz/Pre-conditioned Air/jetway等)
|
||||
|
||||
BaggageCarousel(行李转盘)
|
||||
├── CarouselId
|
||||
├── IATACode (C1, 物理转盘编号)
|
||||
├── TerminalId
|
||||
├── CarouselType (Arrival/Departure)
|
||||
└── CurrentAssignment → FlightLeg?
|
||||
```
|
||||
|
||||
#### Operations Context(运营协同上下文)
|
||||
|
||||
```
|
||||
ACDMCollaborativeSession(A-CDM 协同会话聚合根)
|
||||
├── SessionId
|
||||
├── AirportCode (IATA, 值对象)
|
||||
├── Date (UTC 日期)
|
||||
├── CDMPhase (PRE_DEPARTURE/INBOUND/ABNORMAL)
|
||||
├── Participants (Set<Participant>, 航司/管制/服务商)
|
||||
│
|
||||
├── PreDeparturesequencing: List<PDSEntry>
|
||||
│ └── PDSEntry
|
||||
│ ├── Position (起飞序列位置)
|
||||
│ ├── FlightLegId → FlightLeg
|
||||
│ ├── CTOT (ATFM 分配)
|
||||
│ ├── TSAT (目标启动许可时间)
|
||||
│ ├── EXOT (预计滑出时间)
|
||||
│ └── ConstraintViolation (违反约束列表)
|
||||
│
|
||||
├── VTTModel: VTTPredictor (滑行时间预测模型)
|
||||
│ ├── HistoricalAverage
|
||||
│ ├── TimeOfDayFactor
|
||||
│ ├── WeatherFactor
|
||||
│ └── TrafficFactor
|
||||
│
|
||||
└── Domain Events
|
||||
├── SequencingUpdatedEvent
|
||||
└── TTOTChangedEvent
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 四、核心模块详细设计
|
||||
|
||||
### 4.1 消息交换引擎(Messaging Engine)
|
||||
|
||||
#### 模块职责
|
||||
|
||||
- 接收并解析 SSIM 批次文件,构建航班季节性计划
|
||||
- 接收并解析 AIDX XML 实时报文,更新航班动态
|
||||
- 多源数据优先判定:同一时间字段出现多源冲突时,执行优先级裁定
|
||||
- 事件发布:解析结果发布为领域事件,供下游服务消费
|
||||
|
||||
#### AIDX 处理流水线
|
||||
|
||||
```
|
||||
AIDX XML Message (HTTP/SMTP/SFTP)
|
||||
│
|
||||
▼
|
||||
┌───────────────────┐
|
||||
│ Schema Validation│ ← XSD v22.1 校验 + 自定义规则
|
||||
│ (javax.xml.bind) │
|
||||
└───────────────────┘
|
||||
│
|
||||
▼
|
||||
┌───────────────────┐
|
||||
│ UFI 去重检查 │ ← 同一 UFI 30min 内去重
|
||||
│ (Redis Cache) │
|
||||
└───────────────────┘
|
||||
│
|
||||
▼
|
||||
┌───────────────────┐
|
||||
│ 多源优先判定 │ ← 配置优先表(见下表)
|
||||
│ (Priority Engine) │
|
||||
└───────────────────┘
|
||||
│
|
||||
▼
|
||||
┌───────────────────┐
|
||||
│ Flight Aggregate │ ← 更新聚合根 + 持久化
|
||||
│ (JPA + Events) │
|
||||
└───────────────────┘
|
||||
│
|
||||
▼
|
||||
┌───────────────────┐
|
||||
│ 发布领域事件 │ ← Kafka Topic: flight-events
|
||||
│ (Domain Events) │
|
||||
└───────────────────┘
|
||||
```
|
||||
|
||||
#### 多源数据优先判定表
|
||||
|
||||
| 里程碑字段 | 第一优先 | 第二优先 | 第三优先 | 第四优先 |
|
||||
|-----------|---------|---------|---------|---------|
|
||||
| ALDT(实际落地) | ANSP(管制雷达) | 泊位传感器(Docking) | AODB 推算 | 航司报告 |
|
||||
| AOBT(实际推出) | 地面服务商(GHD) | 登机口操作员 | 航司 | AODB |
|
||||
| ATOT(实际起飞) | ANSP(塔台) | 跑道传感器 | AODB | 航司 |
|
||||
| TOBT(目标推出) | 航司(空班) | 地面服务商 | AODB 计算 | |
|
||||
| ELDT(预计落地) | NMOC(欧洲) | ANSP | 航司 FMS | AODB 推算 |
|
||||
| EXOT(预计滑出) | AODB VTT 模型 | 历史均值 | 固定值 |
|
||||
| EXIT(预计滑入) | AODB VTT 模型 | 历史均值 | 固定值 |
|
||||
|
||||
#### SSIM 解析器
|
||||
|
||||
- 支持 SSIM Chapter 6(SCR 报文)/ Chapter 7(SSR 报文)
|
||||
- 批次导入模式:文件上传 → 后台任务解析 → 逐条入库 → 批量确认
|
||||
- 冲突检测:同一航班号+日期出现多条,以 `Action Code` 判定(N=新增/C=变更/D=删除)
|
||||
- 历史归档:SSIM 数据存入 TimescaleDB,供长期趋势分析
|
||||
|
||||
### 4.2 A-CDM 协同引擎
|
||||
|
||||
#### Milestone 管理
|
||||
|
||||
```
|
||||
航班生命周期中16项里程碑全部由系统自动触发/接收:
|
||||
|
||||
ELDT ──[估算]──→ ALDT ──[实际]──┐
|
||||
│
|
||||
EOBT ──[计划]──→ AOBT ──[实际]──┤──→ TOBT ──[目标]──→ TSAT ──[许可]──→ TTOT ──[目标]──┐
|
||||
│ │
|
||||
COBT ←──[CTOT计算]── CTOT ──────┘ │
|
||||
│
|
||||
EIBT ──[预计靠桥]────────────────────────────┐ │
|
||||
EXIT │
|
||||
AIBT ──[实际靠桥]────────────────────────────┘ │
|
||||
ATIGT │
|
||||
TTIGT ──[目标靠桥]──────────────────────────────┘
|
||||
|
||||
触发规则:
|
||||
- ACT(实际)类里程碑:收到 AIDX 报文中的 Actual Time → 自动写入
|
||||
- EST(预计)类里程碑:AODB VTT 模块持续计算更新(每60秒重算)
|
||||
- SCT(计划)类里程碑:来自 SSIM 导入或航班创建时写入
|
||||
- TTIGT:基于 EXIT + 标准靠桥时间(按机型/机位计算)
|
||||
```
|
||||
|
||||
#### PDS(Pre-Departure Sequencer)算法
|
||||
|
||||
```
|
||||
输入:
|
||||
- CTOT(来自 ATFM/NMOC)
|
||||
- 管制离港率(Departure Rate, 架次/小时)
|
||||
- TOBT 列表(各航班目标推出时间)
|
||||
- 机位-跑道距离(Stand to Runway Matrix)
|
||||
- VTT 预测值(EXOT)
|
||||
- 约束条件(最小间隔、航司优先级、特殊航班)
|
||||
|
||||
输出:
|
||||
- TSAT(目标启动许可时间)
|
||||
- 起飞序列(PDS Entry List)
|
||||
- COBT(计算推出时间)
|
||||
|
||||
算法:改进版 Shortest Processing Time(SPT)+ 约束满足
|
||||
1. 按 TTOT 升序排列候选航班
|
||||
2. 对每架航班,计算 earliest_start = max(TOBT, CTOT - EXOT - taxi_time)
|
||||
3. 插入序列,检查与前机尾随间隔(Wake Turbulence分离)
|
||||
4. 若违反约束,触发重排(re-sequencing)
|
||||
5. 输出最终 TSAT 和序列位置
|
||||
```
|
||||
|
||||
#### VTT(Variable Taxi-Time)预测
|
||||
|
||||
```
|
||||
模型类型:梯度提升回归(XGBoost),特征包括:
|
||||
|
||||
特征维度(24维):
|
||||
- time_of_day(小时,周期性编码)
|
||||
- day_of_week(周一~周日)
|
||||
- month(季节性)
|
||||
- runway_config(跑道运行模式:独立进/独立出/混合)
|
||||
- qty_departures(当前离港队列长度)
|
||||
- qty_arrivals(当前进港队列长度)
|
||||
- visibility(能见度:CAT I/II/III 或 VFR/IFR)
|
||||
- wind_speed / wind_dir(风速/风向)
|
||||
- temperature(温度)
|
||||
- precipitation(降水:是/否)
|
||||
- visibility_meters(能见度,米)
|
||||
- historical_avg_EXIT / EXOT(同小时历史均值)
|
||||
- airport_load_level(机场负载等级:低/中/高/饱和)
|
||||
|
||||
预测输出:
|
||||
- EXOT(Expected Taxi-Out Time):预计滑出时间
|
||||
- EXIT(Expected Taxi-In Time):预计滑入时间
|
||||
- EIBT(Expected In-Block Time):预计靠桥时间 = ELDT + EXIT
|
||||
|
||||
重算策略:
|
||||
- 正常情况:每 60 秒批量重算所有活跃航班
|
||||
- 事件触发:收到 AOBT/ALDT/天气变化 → 立即重算相关航班
|
||||
- 模型更新:每日使用前30天历史数据重训练
|
||||
```
|
||||
|
||||
### 4.3 What-if 仿真模块
|
||||
|
||||
#### 功能定位
|
||||
|
||||
对标 ADB SAFEGATE Cortex 的 "What-if" 仿真能力,支持运营场景假设分析。
|
||||
|
||||
#### 仿真场景
|
||||
|
||||
| 场景 | 输入 | 模拟输出 |
|
||||
|------|------|---------|
|
||||
| 跑道关闭 | 关闭跑道号、开始时间、持续时长 | 各航班 CTOT/TSAT 变化、延误传播链 |
|
||||
| 大面积延误 | 延误航班数量、延误量级 | 受影响航班列表、恢复时间估算 |
|
||||
| 临时增加航班 | 新航班时刻表 | 资源冲突告警(机位/登机口/设备)|
|
||||
| 极端天气 | 天气类型、持续时间、能见度 | VTT 重算结果、对离港率影响 |
|
||||
| 资源调配 | 临时调整机位分配 | 新 TSAT 序列、旅客连接影响 |
|
||||
|
||||
#### 技术实现
|
||||
|
||||
```
|
||||
What-if Scenario 创建 → 快照当前状态(Flight/Resource/A-CDM)
|
||||
→ 应用假设变更(ScenarioMutation)
|
||||
→ 在独立 Simulation Sandbox 中运行 VTT + PDS 算法
|
||||
→ 生成对比报告(与基线偏差)
|
||||
→ 可选:发布为正式变更(Commit)或丢弃(Discard)
|
||||
```
|
||||
|
||||
### 4.4 AI 决策辅助模块
|
||||
|
||||
#### 能力矩阵
|
||||
|
||||
| 能力 | 算法 | 输入 | 输出 |
|
||||
|------|------|------|------|
|
||||
| VTT 滑行时间预测 | XGBoost | 天气/流量/时间 | EXOT/EXIT 预测值 |
|
||||
| 过站时间预测 | LSTM | 历史过站数据/天气/机型 | 预计过站时长 |
|
||||
| 延误链传播分析 | 图神经网络 | 航班衔接关系 | 受影响航班列表 |
|
||||
| 异常预警 | 孤立森林 | 全量实时数据流 | 异常事件告警 |
|
||||
| 资源冲突预测 | 约束求解+RL | 资源分配状态 | 冲突概率/建议调整 |
|
||||
|
||||
---
|
||||
|
||||
## 五、API 设计
|
||||
|
||||
### 5.1 REST API 概览
|
||||
|
||||
```
|
||||
API Version Prefix: /api/v1
|
||||
|
||||
认证: OAuth 2.0 (JWT Bearer Token)
|
||||
内容类型: application/json
|
||||
字符编码: UTF-8
|
||||
时间格式: ISO 8601 UTC (2026-04-13T14:30:00Z)
|
||||
```
|
||||
|
||||
#### 核心资源
|
||||
|
||||
| 资源 | 路径 | 说明 |
|
||||
|------|------|------|
|
||||
| Flight | `/flights` | 航班 CRUD |
|
||||
| Flight Leg | `/flights/{flightId}/legs` | 航段管理 |
|
||||
| Milestone | `/flights/{flightId}/milestones` | 里程碑管理 |
|
||||
| Gate | `/gates` | 登机口管理 |
|
||||
| Stand | `/stands` | 机位管理 |
|
||||
| Carousel | `/carousels` | 行李转盘 |
|
||||
| PDS Sequence | `/pds/sequences` | 起飞排序 |
|
||||
| TOBT | `/tobt` | 目标推出时间上报 |
|
||||
| SSIM Import | `/imports/ssim` | SSIM 文件上传 |
|
||||
| AIDX Webhook | `/webhooks/aidx` | AIDX 消息接收 |
|
||||
| Simulation | `/simulations` | What-if 仿真 |
|
||||
| Reports | `/reports` | 运营报告 |
|
||||
|
||||
#### 关键 API 设计示例
|
||||
|
||||
**TOBT 上报(航司/地面服务商)**
|
||||
|
||||
```
|
||||
POST /api/v1/tobt
|
||||
{
|
||||
"flightLeg": {
|
||||
"airline": "CA",
|
||||
"flightNumber": "1234",
|
||||
"originDate": "2026-04-13",
|
||||
"departureAirport": "PEK"
|
||||
},
|
||||
"tobt": "2026-04-13T14:30:00Z",
|
||||
"reason": "PASSENGER_BOARDING_COMPLETE",
|
||||
"submittedBy": "HANDLER_CA_PEK",
|
||||
"submittedAt": "2026-04-13T14:00:00Z"
|
||||
}
|
||||
|
||||
响应 200:
|
||||
{
|
||||
"tobt": "2026-04-13T14:30:00Z",
|
||||
"tsat": "2026-04-13T14:35:00Z", // AODB 基于 TSAT=TTOT-EXOT 重算
|
||||
"revision": 3,
|
||||
"status": "CONFIRMED"
|
||||
}
|
||||
```
|
||||
|
||||
**航班动态查询(支持过滤条件)**
|
||||
|
||||
```
|
||||
GET /api/v1/flights?date=2026-04-13&airport=PEK&status=OP,DX,DV&page=0&size=50
|
||||
|
||||
响应 200:
|
||||
{
|
||||
"content": [
|
||||
{
|
||||
"flightId": "f-uuid-001",
|
||||
"flightNumber": "CA1234",
|
||||
"operationalStatus": "OP",
|
||||
"currentLeg": {
|
||||
"departureAirport": "PEK",
|
||||
"arrivalAirport": "PVG",
|
||||
"etd": "2026-04-13T14:30:00Z",
|
||||
"eta": "2026-04-13T15:45:00Z",
|
||||
"stand": "B12",
|
||||
"gate": "A12",
|
||||
"carousel": "C5"
|
||||
},
|
||||
"milestones": {
|
||||
"ELDT": { "time": "2026-04-13T15:40:00Z", "confirmed": true },
|
||||
"TOBT": { "time": "2026-04-13T14:30:00Z", "confirmed": true },
|
||||
"TSAT": { "time": "2026-04-13T14:35:00Z", "confirmed": false }
|
||||
}
|
||||
}
|
||||
],
|
||||
"totalElements": 842,
|
||||
"page": 0,
|
||||
"size": 50
|
||||
}
|
||||
```
|
||||
|
||||
### 5.2 事件订阅(Webhook / Kafka)
|
||||
|
||||
```
|
||||
外部系统可通过 Webhook 订阅 AODB 事件:
|
||||
|
||||
POST /api/v1/webhooks
|
||||
{
|
||||
"name": "FIDS系统订阅",
|
||||
"url": "https://fids.airport.com/webhook/aodb",
|
||||
"events": [
|
||||
"flight.created",
|
||||
"flight.status_changed",
|
||||
"flight.milestone_updated",
|
||||
"flight.gate_assigned",
|
||||
"pds.sequencing_updated"
|
||||
],
|
||||
"secret": "whsec_xxxxx",
|
||||
"active": true
|
||||
}
|
||||
|
||||
签名机制: HMAC-SHA256(RequestBody, secret) → X-Signature 头
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 六、数据模型设计
|
||||
|
||||
### 6.1 核心实体 ER 图(简化)
|
||||
|
||||
```
|
||||
Airport (1) ──< (N) Terminal (1) ──< (N) Gate
|
||||
│
|
||||
├──< (N) Stand
|
||||
│
|
||||
└──< (N) BaggageCarousel
|
||||
|
||||
Airline (1) ──< (N) Flight
|
||||
│
|
||||
└──< (N) Aircraft
|
||||
|
||||
Flight (1) ──< (N) FlightLeg
|
||||
│
|
||||
├──< (N) FlightMilestone
|
||||
├──< (N) AircraftAssignment
|
||||
└──< (N) Pax (旅客数据)
|
||||
|
||||
FlightLeg (N) ──> (1) Gate (可选)
|
||||
FlightLeg (N) ──> (1) Stand (可选)
|
||||
FlightLeg (N) ──> (1) BaggageCarousel (可选)
|
||||
|
||||
ACDM_Session (1) ──< (N) PDS_Entry
|
||||
│
|
||||
└──< VTT_Model (滑行时间预测)
|
||||
```
|
||||
|
||||
### 6.2 关键索引设计
|
||||
|
||||
```sql
|
||||
-- 航班唯一查询(UFI 组合索引)
|
||||
CREATE UNIQUE INDEX idx_flight_leg_ufi
|
||||
ON flight_legs (airline_code, flight_number, departure_airport, origin_date);
|
||||
|
||||
-- 航班日计划查询(高频)
|
||||
CREATE INDEX idx_flight_leg_date
|
||||
ON flight_legs (origin_date, departure_airport, operational_status)
|
||||
WHERE origin_date >= CURRENT_DATE;
|
||||
|
||||
-- 里程碑查询(按航班+时间范围)
|
||||
CREATE INDEX idx_milestone_flight_code
|
||||
ON flight_milestones (flight_leg_id, milestone_code, event_time);
|
||||
|
||||
-- 资源当前分配(实时查找)
|
||||
CREATE INDEX idx_stand_current
|
||||
ON stand_assignments (stand_id, actual_off_blocks)
|
||||
WHERE actual_on_blocks IS NULL;
|
||||
|
||||
-- 时序数据(TimescaleDB hypertable)
|
||||
CREATE MATERIALIZED VIEW v_flight_punctuality
|
||||
WITH (timescaledb.continuous) AS
|
||||
SELECT time_bucket('5 min', event_time) AS ts,
|
||||
airport_code,
|
||||
count(*) FILTER (WHERE abs(ATOT - TTOT) > 900) AS delayed_count,
|
||||
avg(extract(EPOCH FROM (ATOT - TTOT))) FILTER (WHERE ATOT IS NOT NULL) AS avg_delay_seconds
|
||||
FROM flight_milestones
|
||||
WHERE milestone_code = 'ATOT'
|
||||
GROUP BY ts, airport_code;
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 七、安全与运维体系
|
||||
|
||||
### 7.1 零信任安全架构
|
||||
|
||||
```
|
||||
安全原则:
|
||||
1. 最小权限(Least Privilege):每个微服务仅拥有完成其任务所需的最低权限
|
||||
2. 默认拒绝(Default Deny):未明确授权的请求一律拒绝
|
||||
3. 永不信任(Never Trust):所有跨服务调用均需验证 JWT,即使在内部网络
|
||||
4. 始终加密(Always Encrypt):传输加密(mTLS)+ 存储加密(AES-256)
|
||||
|
||||
认证体系:
|
||||
- 用户认证:OAuth 2.0 + OpenID Connect(支持 SAML 2.0 企业 SSO)
|
||||
- 机器认证:mTLS(服务间)+ API Key(第三方系统)
|
||||
- 多因素认证:TOTP(运营人员)+ 证书(管制系统)
|
||||
|
||||
权限模型:RBAC + ABAC 混合
|
||||
- RBAC:角色(Airport Admin / Airline Ops / Ground Handler / ATC / Viewer)
|
||||
- ABAC:属性(机场代码 × 可操作资源范围 × 时间窗口)
|
||||
```
|
||||
|
||||
### 7.2 审计日志
|
||||
|
||||
```sql
|
||||
-- 审计日志表(防篡改)
|
||||
CREATE TABLE audit_log (
|
||||
id BIGSERIAL PRIMARY KEY,
|
||||
event_id UUID NOT NULL DEFAULT gen_random_uuid(),
|
||||
timestamp TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
||||
actor_id VARCHAR(64) NOT NULL, -- user_id 或 system_id
|
||||
actor_type VARCHAR(16) NOT NULL, -- USER / SYSTEM / EXTERNAL
|
||||
action VARCHAR(64) NOT NULL, -- flight.update / gate.assign
|
||||
resource JSONB NOT NULL, -- 受影响的资源快照
|
||||
changes JSONB, -- 变更前后差异(Before/After)
|
||||
ip_address INET,
|
||||
user_agent TEXT,
|
||||
request_id UUID, -- 关联 HTTP 请求
|
||||
integrity TEXT GENERATED ALWAYS AS (encode(sha256((event_id||timestamp||actor_id||action||resource)::text::bytea), 'hex')) STORED
|
||||
);
|
||||
|
||||
-- 审计日志不可直接 DELETE/UPDATE(用 DB RULE 拦截)
|
||||
CREATE RULE audit_log_no_delete AS ON DELETE TO audit_log DO INSTEAD NOTHING;
|
||||
CREATE RULE audit_log_no_update AS ON UPDATE TO audit_log DO INSTEAD NOTHING;
|
||||
```
|
||||
|
||||
### 7.3 高可用架构
|
||||
|
||||
```
|
||||
部署模式:主动-待机双活(Active-Active 或 Active-Standby 可配置)
|
||||
|
||||
┌──────────────────┐ ┌──────────────────┐
|
||||
│ AZ-1(主) │ │ AZ-2(备) │
|
||||
│ ┌────────────┐ │ │ ┌────────────┐ │
|
||||
│ │ K8s Node 1 │◄┼─────┼─►│ K8s Node 3 │ │
|
||||
│ └────────────┘ │ │ └────────────┘ │
|
||||
│ ┌────────────┐ │ │ ┌────────────┐ │
|
||||
│ │ K8s Node 2 │◄┼─────┼─►│ K8s Node 4 │ │
|
||||
│ └────────────┘ │ │ └────────────┘ │
|
||||
│ ┌────────────┐ │ │ ┌────────────┐ │
|
||||
│ │ PG Primary │ │ ←───│──│ PG Standby │ │
|
||||
│ └────────────┘ │ 同步 │ └────────────┘ │
|
||||
└──────────────────┘ └──────────────────┘
|
||||
│ │
|
||||
└─────────┬───────────────┘
|
||||
▼
|
||||
┌────────────────┐
|
||||
│ MinIO S3 │ (跨 AZ 复制)
|
||||
└────────────────┘
|
||||
|
||||
RTO(恢复时间目标): < 30 秒(自动故障转移)
|
||||
RPO(恢复点目标): < 1 分钟(同步复制)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 八、部署与运维
|
||||
|
||||
### 8.1 Kubernetes 部署结构
|
||||
|
||||
```
|
||||
namespace: aerocore-aodb
|
||||
├── ConfigMap: aodb-config(环境配置)
|
||||
├── Secret: aodb-secrets(数据库密码/证书)
|
||||
├── Ingress: aodb-ingress(域名 + TLS)
|
||||
│
|
||||
├── Deployment: aodb-api(无状态服务,3+ 副本)
|
||||
├── Deployment: aodb-message-engine(AIDX/SSIM 处理,2 副本)
|
||||
├── Deployment: aodb-acdm-engine(A-CDM/PDS,2 副本)
|
||||
├── Deployment: aodb-vtt-predictor(AI 推理服务,GPU 节点)
|
||||
├── Deployment: aodb-simulation(What-if 仿真,按需扩缩)
|
||||
├── Deployment: aodb-scheduler(Cron 任务,SSIM 导入等)
|
||||
│
|
||||
├── StatefulSet: postgresql(主从,1 副本)
|
||||
├── StatefulSet: redis(集群模式,3 副本)
|
||||
├── StatefulSet: kafka(3 副本)
|
||||
└── DaemonSet: log-collector(Fluent Bit → Elasticsearch)
|
||||
```
|
||||
|
||||
### 8.2 国产化适配清单
|
||||
|
||||
| 组件层 | 商业版 | 国产化替代 |
|
||||
|-------|-------|-----------|
|
||||
| 操作系统 | RHEL/Ubuntu | 麒麟 Kylin OS、统信 UOS |
|
||||
| 数据库 | PostgreSQL | 华为 GaussDB、达梦 DM8 |
|
||||
| 缓存 | Redis | 华为云 DCS(Redis 兼容)|
|
||||
| 消息队列 | Apache Kafka | 华为云 DMS、Apache RocketMQ |
|
||||
| 对象存储 | MinIO/S3 | 华为云 OBS、阿里云 OSS |
|
||||
| 容器平台 | Kubernetes | 麒麟容器云、阿里云 ACK |
|
||||
| 网关 | Kong | Apache APISIX(国产分支)|
|
||||
|
||||
---
|
||||
|
||||
## 九、模块开发优先级
|
||||
|
||||
### Phase 1(MVP,3个月)
|
||||
|
||||
| 模块 | 产出 |
|
||||
|------|------|
|
||||
| Flight Context(核心) | 航班 CRUD、实体、REST API |
|
||||
| Messaging Engine(简化版)| AIDX XML 解析 + SSIM 解析 |
|
||||
| Reference Data | 机场/航司/机型基础数据 |
|
||||
| 基础安全 | JWT 认证、RBAC |
|
||||
|
||||
### Phase 2(6个月)
|
||||
|
||||
| 模块 | 产出 |
|
||||
|------|------|
|
||||
| A-CDM Engine | 16项 Milestone 追踪、PDS 算法 |
|
||||
| Resource Context | Gate/Stand/Carousel 分配 |
|
||||
| VTT 预测 | XGBoost EXOT/EXIT 预测 |
|
||||
| 多租户 | 多机场数据隔离 |
|
||||
|
||||
### Phase 3(9个月)
|
||||
|
||||
| 模块 | 产出 |
|
||||
|------|------|
|
||||
| What-if 仿真 | 场景编辑器 + 沙箱引擎 |
|
||||
| AI 决策辅助 | 延误传播图分析、异常预警 |
|
||||
| 完整审计日志 | 防篡改审计链 |
|
||||
| 高可用部署 | K8s 容器化、双活架构 |
|
||||
|
||||
---
|
||||
|
||||
## 十、已知局限与待验证项
|
||||
|
||||
1. **VTT 模型精度**:需要至少 6 个月历史数据才能达到商用精度(< 5min MAE)
|
||||
2. **AIDX 全消息类型**:当前优先实现 `FlightLegNotifRQ/RS`,其他类型(AIDX-PAX、AIDX-BAG)后续迭代
|
||||
3. **PDS 算法**:当前为规则驱动,Phase 3 考虑引入 RL 优化序列
|
||||
4. **国产数据库兼容性**:GaussDB/达梦的 PG 兼容模式需实测验证
|
||||
5. **多机场模式**:共享基础设施的多机场部署方案 Phase 2 再详细设计
|
||||
Reference in New Issue
Block a user