FANUC RAG Knowledge Base — pluggable retrieval + SAG hybrid search + OKF concepts
Project description
FANUC RAG 知识库
190 份 FANUC 工业机器人技术文档 → 20 万+ 向量 → 自然语言问答
快速开始
# 1. 克隆仓库
git clone https://github.com/Ikalus1988/self-grow-wiki.git
cd self-grow-wiki
# 2. 安装依赖
python3 -m venv ~/mkdocs-env
source ~/mkdocs-env/bin/activate
pip install -r requirements.txt
# 3. 准备向量库(二选一)
# 方式A: 从PDF重建(需要PDF源文件,耗时30-60分钟)
python3 scripts/import/rag_builder.py --input /path/to/pdf/
# 方式B: 迁移已有向量库(3.0G,秒级)
# 将 rag_chromadb/ 目录放到 ~/rag_chromadb/
# 4. 修改配置
# 编辑 rag_core.py 中的向量库路径
# CHROMA_PATH = "/你的路径/rag_chromadb"
# 5. 启动服务
chmod +x start_rag.sh
./start_rag.sh
服务端口
| 服务 | 端口 | 说明 |
|---|---|---|
| RAG Web UI | 7860 | Gradio 问答界面 |
| 管理面板 | 7861 | Gradio 管理后台 |
| RAG API | 8002 | FastAPI HTTP 接口 |
| Ollama | 11434 | 本地 LLM 兜底 |
目录结构
self-grow-wiki/
├── rag_core.py # 核心检索+生成
├── rag_web.py # Gradio Web UI
├── rag_api.py # FastAPI HTTP API
├── rag_admin.py # 管理面板
├── rag_feedback_card.py # 反馈卡片
├── start_rag.sh # 一键启动脚本
├── auto_flywheel.py # 自动飞轮
├── daily_audit.py # 每日巡检
├── badcase_review.py # Badcase 审核
├── kb_learning.py # 自学习模块
├── synonyms.json # 同义词表
├── requirements.txt # Python 依赖
├── wxauto_bot.py # 微信机器人(旧版)
├── wxauto_bot/
│ └── bot.py # 微信机器人(v7,推荐)
├── scripts/
│ ├── import/ # PDF 导入工具
│ │ ├── rag_builder.py # 批量导入
│ │ ├── rag_builder_ocr.py # OCR 增强导入
│ │ ├── rag_import_fanuc.py # FANUC 专用导入
│ │ └── import_batch.py # 批量导入
│ ├── audit/ # 审计工具
│ │ ├── audit_chunks_p1.py
│ │ ├── audit_exam_p2.py
│ │ ├── audit_pdf_chunk_p3.py
│ │ └── audit_pdf_chunk_v2.py
│ ├── exam/ # 试卷生成
│ │ ├── gen_exam.py
│ │ ├── gen_exam_c.py
│ │ ├── gen_exam_c_v2.py
│ │ └── gen_exam_v2.py
│ ├── docs/ # 文档工具
│ │ ├── doc_classifier.py
│ │ ├── doc_verify.py
│ │ ├── doc_verify_v2.py
│ │ ├── generate_mkdocs.py
│ │ └── graph_to_obsidian.py
│ ├── kb_selfcheck.py # 知识库自检
│ ├── rag_phase2_semantic_tag.py
│ └── rag_phase2b_refine.py
├── lessons/ # Lessons(供 MisakaNet 使用)
└── tests/ # 测试
核心功能
检索增强
| 能力 | 说明 |
|---|---|
| 语义搜索 + BM25 混合检索 | RRF 融合,兼顾语义和关键词 |
| 报警代码规范化 | SRVO-023 / SRVO023 / SRVO-023 全匹配 |
| 型号系列强制召回 | M-900 / R-2000iC 系列文档不遗漏 |
| 品牌过滤 | 查询含 FANUC 时自动排除 KUKA/ABB 文档 |
| 同义词扩展 | 49 组同义词自动扩展查询 |
| 多问题拆分 | "A 和 B 的区别" 自动拆分分别检索 |
LLM 四通道容灾
| 优先级 | 模型 | 来源 | 响应时间 |
|---|---|---|---|
| 1 | MiMo-V2-Flash | Mify 内网 | ~1.5s |
| 2 | MiMo-V2-Pro | Mify 内网 | ~0.5s |
| 3 | DeepSeek-Chat | DeepSeek API | ~2s |
| 4 | Qwen2.5:3b | Ollama 本地 | ~50s |
质量保证
- 每日自动巡检 — cron 6:00,抽样 7-8 题,通过率 >=90% 为合格
- 入库质检门禁 — 新 PDF 入库前自动检查污染/重复/二进制残留
- 自学习飞轮 — 巡检失败 -> badcase -> 审核 -> 同义词 -> 检索增强
迁移指南
最小迁移(推荐)
# 只需迁移代码仓库(git clone 即可)
git clone https://github.com/Ikalus1988/self-grow-wiki.git
# 向量库从 PDF 重建
pip install -r requirements.txt
python3 scripts/import/rag_builder.py --input /path/to/pdf/
完整迁移(保留已有向量库)
# 1. 代码仓库
git clone https://github.com/Ikalus1988/self-grow-wiki.git
# 2. 向量库(3.0G)
# 从原服务器打包
tar czf rag_chromadb.tar.gz ~/rag_chromadb/
# 传输到新服务器解压
tar xzf rag_chromadb.tar.gz -C ~/
# 3. 修改配置
# 编辑 rag_core.py 中 CHROMA_PATH 为新路径
# 4. 启动
./start_rag.sh
飞书机器人配置
飞书接入通过 Hermes Gateway 处理,配置在 ~/.hermes/.env:
FEISHU_APP_ID=你的AppID
FEISHU_APP_SECRET=你的AppSecret
FEISHU_CONNECTION_MODE=websocket
FEISHU_HOME_CHANNEL=群组ID
FEISHU_GROUP_ALLOWED_CHATS=群组ID1,群组ID2
FEISHU_ALLOWED_USERS=用户ID1,用户ID2
修改飞书入口:
- 复用现有 App — 只需复制
.env到新服务器,重启 Hermes Gateway - 创建新 App — 在 https://open.feishu.cn/app/ 创建,获取 App ID/Secret,更新
.env - 修改群组 — 更新
FEISHU_HOME_CHANNEL和FEISHU_GROUP_ALLOWED_CHATS
环境变量
| 变量 | 说明 | 默认值 |
|---|---|---|
CHROMA_PATH |
ChromaDB 向量库路径 | ~/rag_chromadb |
OLLAMA_MODELS |
Ollama 模型路径 | ~/ollama/models |
OLLAMA_HOST |
Ollama 监听地址 | 0.0.0.0:11434 |
FEISHU_WEBHOOK |
飞书 Webhook(可选) | 无 |
技术栈
- 嵌入模型: bge-base-zh-v1.5 (768维)
- 向量数据库: ChromaDB (cosine 距离)
- Web UI: Gradio
- HTTP API: FastAPI
- 本地 LLM: Ollama + Qwen2.5:3b
- 微信机器人: wxauto v7
许可证
MIT License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
rag_fanuc-1.0.0.tar.gz
(88.9 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
rag_fanuc-1.0.0-py3-none-any.whl
(92.4 kB
view details)
File details
Details for the file rag_fanuc-1.0.0.tar.gz.
File metadata
- Download URL: rag_fanuc-1.0.0.tar.gz
- Upload date:
- Size: 88.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
94d9bdd673d20f197909e7d3a6ec2a903d2e4ebd90efe1ef0e58af5116d7b763
|
|
| MD5 |
5ccfbeead5de25291b62f97f9e276ee9
|
|
| BLAKE2b-256 |
c41e297fdde3148f0f9005870dd09ca7b945d866331e46af299102e1704f7441
|
File details
Details for the file rag_fanuc-1.0.0-py3-none-any.whl.
File metadata
- Download URL: rag_fanuc-1.0.0-py3-none-any.whl
- Upload date:
- Size: 92.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5d5cc6ac592556669c0e4e977218ae49c03c5c8cda8cc9ef0015f93468f5944e
|
|
| MD5 |
2142384ad21f4c92af44021644bec455
|
|
| BLAKE2b-256 |
45e070d41f29c1087e420a78cfbcaa54a02883cfc91411f4e18c9b7bc594ab6b
|