From 99d66a960197c29a331da4220a78d73e99803d00 Mon Sep 17 00:00:00 2001 From: zhiqiang feng Date: Mon, 13 Apr 2026 17:22:30 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=AE=8C=E6=88=90=20LLM=20Wiki=20v2=20?= =?UTF-8?q?=E5=8D=87=E7=BA=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增知识管理系统核心文档 - 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 特性: 置信度衰减、智能整合、质量验证、事件驱动自动化 --- airport-wiki/SCHEMA.md | 143 ++++ .../knowledge-management/automation-hooks.md | 569 +++++++++++++ .../knowledge-lifecycle.md | 474 +++++++++++ .../llm-wiki-v2-reference.md | 584 ++++++++++++++ .../knowledge-management/quality-control.md | 616 ++++++++++++++ airport-wiki/entities/index.md | 270 +++++-- airport-wiki/hybrid-search.md | 435 ++++++++++ airport-wiki/index.md | 260 +++--- .../aodb-system-architecture.md | 758 ++++++++++++++++++ 9 files changed, 3890 insertions(+), 219 deletions(-) create mode 100644 airport-wiki/concepts/knowledge-management/automation-hooks.md create mode 100644 airport-wiki/concepts/knowledge-management/knowledge-lifecycle.md create mode 100644 airport-wiki/concepts/knowledge-management/llm-wiki-v2-reference.md create mode 100644 airport-wiki/concepts/knowledge-management/quality-control.md create mode 100644 airport-wiki/hybrid-search.md create mode 100644 airport-wiki/systems-design/aodb-system-architecture.md diff --git a/airport-wiki/SCHEMA.md b/airport-wiki/SCHEMA.md index 194eef9..1980723 100644 --- a/airport-wiki/SCHEMA.md +++ b/airport-wiki/SCHEMA.md @@ -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 完整參考 +``` diff --git a/airport-wiki/concepts/knowledge-management/automation-hooks.md b/airport-wiki/concepts/knowledge-management/automation-hooks.md new file mode 100644 index 0000000..1014b9f --- /dev/null +++ b/airport-wiki/concepts/knowledge-management/automation-hooks.md @@ -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。 \ No newline at end of file diff --git a/airport-wiki/concepts/knowledge-management/knowledge-lifecycle.md b/airport-wiki/concepts/knowledge-management/knowledge-lifecycle.md new file mode 100644 index 0000000..41fca52 --- /dev/null +++ b/airport-wiki/concepts/knowledge-management/knowledge-lifecycle.md @@ -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。 \ No newline at end of file diff --git a/airport-wiki/concepts/knowledge-management/llm-wiki-v2-reference.md b/airport-wiki/concepts/knowledge-management/llm-wiki-v2-reference.md new file mode 100644 index 0000000..8a41442 --- /dev/null +++ b/airport-wiki/concepts/knowledge-management/llm-wiki-v2-reference.md @@ -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 +> **维护状态**: 活跃 | **支持**: 用户文档 + 技术支持论坛 +> **注意**: 本系统持续演进,建议定期查看相关文档获取最新信息。 \ No newline at end of file diff --git a/airport-wiki/concepts/knowledge-management/quality-control.md b/airport-wiki/concepts/knowledge-management/quality-control.md new file mode 100644 index 0000000..9ddeb7c --- /dev/null +++ b/airport-wiki/concepts/knowledge-management/quality-control.md @@ -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。 \ No newline at end of file diff --git a/airport-wiki/entities/index.md b/airport-wiki/entities/index.md index f393871..a172705 100644 --- a/airport-wiki/entities/index.md +++ b/airport-wiki/entities/index.md @@ -1,130 +1,224 @@ --- -title: 机场实体索引 +title: 机场实体与知识图谱 created: 2026-04-10 updated: 2026-04-13 type: meta -tags: [entity, index] +tags: [entity, index, knowledge-graph, typed-relationship] +confidence: 0.9 +sources_count: 8 +last_confirmed: 2026-04-13 +status: active --- -# 机场实体索引 +# 机场实体与知识图谱 -本文档作为 entities/ 目录的实体索引,记录所有实体页面及其关键关系。实体关系通过 Typed Relationships 定义,支持知识图谱遍历。 +本文档作为 entities/ 目录的实体索引,基于 **LLM Wiki v2 知识图谱** 理念构建。每个实体通过 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 | +| 类型 | 数量 | 置信度分布 | 平均关系数 | +|------|------|------------|------------| +| **机场实体** | 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* --- -## 供应商实体 +## 实体目录 -> 供应商实体归类于 `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 | +| 机场 | 智算规模 | 关键系统 | 置信度 | 关系数量 | +|------|----------|----------|--------|----------| +| [[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) +## 🔗 知识图谱(Typed Relationships) -### 机场 → 系统关系 +### 图结构概览 -```yaml -shenzhen-airport: - relationships: - - target: gpu-cluster - type: deploys - detail: DeepSeek R1-671B 满血部署 - confidence: 0.9 - - target: aodb-core - type: operates - confidence: 0.85 +``` +机场实体 (7) + ├── uses → 系统实体 (平均 3.1) + ├── deploys → 供应商实体 (平均 2.4) + └── depends_on → 基础设施 (平均 1.8) -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 +系统实体 (12) + ├── depends_on → 其他系统 (平均 2.3) + ├── supersedes → 旧系统 (平均 0.7) + └── compatible_with → 供应商 (平均 1.9) -fuzhou-changle-airport-bsj: - relationships: - - target: gpu-cluster - type: deploys - detail: 15,000P,2026.10投产 - confidence: 0.85 +供应商实体 (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。 \ No newline at end of file diff --git a/airport-wiki/hybrid-search.md b/airport-wiki/hybrid-search.md new file mode 100644 index 0000000..073020e --- /dev/null +++ b/airport-wiki/hybrid-search.md @@ -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。 \ No newline at end of file diff --git a/airport-wiki/index.md b/airport-wiki/index.md index 6ab5146..47776ae 100644 --- a/airport-wiki/index.md +++ b/airport-wiki/index.md @@ -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篇來源文章 diff --git a/airport-wiki/systems-design/aodb-system-architecture.md b/airport-wiki/systems-design/aodb-system-architecture.md new file mode 100644 index 0000000..9322244 --- /dev/null +++ b/airport-wiki/systems-design/aodb-system-architecture.md @@ -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 +│ ├── LegIdentifier: UFI (唯一航班标识, 值对象) +│ ├── LegData +│ │ ├── ScheduledTimes (计划时间, SCT) +│ │ ├── EstimatedTimes (预计时间, EST) +│ │ ├── ActualTimes (实际时间, ACT) +│ │ ├── PaxCount (旅客数) +│ │ └── AircraftInfo (机型/注册号/尾号) +│ └── Resources: List +│ +├── Milestones: List (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, 航司/管制/服务商) +│ +├── PreDeparturesequencing: List +│ └── 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 再详细设计