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
Metadata
Release files for rag-fanuc 1.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| rag_fanuc-1.0.0.tar.gz | 88.9 kB | Without provenance | Details for rag_fanuc-1.0.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| rag_fanuc-1.0.0-py3-none-any.whl | Python 3 | none | any | Details for rag_fanuc-1.0.0-py3-none-any.whl |
Total release size: 181.4 kB
Release files / rag_fanuc-1.0.0.tar.gz
| Download URL | rag_fanuc-1.0.0.tar.gz |
|---|---|
| Size | 88.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
94d9bdd673d20f197909e7d3a6ec2a903d2e4ebd90efe1ef0e58af5116d7b763
|
|
BLAKE2b-256 checksum How to use checksums |
c41e297fdde3148f0f9005870dd09ca7b945d866331e46af299102e1704f7441
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.3
|
Release files / rag_fanuc-1.0.0-py3-none-any.whl
| Download URL | rag_fanuc-1.0.0-py3-none-any.whl |
|---|---|
| Size | 92.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
5d5cc6ac592556669c0e4e977218ae49c03c5c8cda8cc9ef0015f93468f5944e
|
|
BLAKE2b-256 checksum How to use checksums |
45e070d41f29c1087e420a78cfbcaa54a02883cfc91411f4e18c9b7bc594ab6b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.3
|
Security for rag-fanuc 1.0.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.