Files
airport-wiki/concepts/knowledge-management/llm-wiki-v2-reference.md
T

561 lines
16 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: LLM Wiki v2 参考文档
created: 2026-04-13
updated: 2026-04-15
type: core-component
tags: [llm-wiki, v2, reference, architecture]
sources_count: 1
confidence: 0.85
last_confirmed: 2026-04-15
status: active
relationships:
- target: concepts/knowledge-management/hybrid-search.md
detail: "混合搜索系统"
---
# 📚 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
> **维护状态**: 活跃 | **支持**: 用户文档 + 技术支持论坛
> **注意**: 本系统持续演进,建议定期查看相关文档获取最新信息。