真正懂机械、敢说真话、能真算,“机械系苦逼在校生,用代码修补现实的缝隙,顺便造了个 MechForge AI 来骗自己‘我能拯救世界’(其实只是拯救我的 GPA)🔧🤖
# 从 PyPI 安装 (推荐)
pip install mechforge-ai
# 完整安装(所有功能)
pip install mechforge-ai[all]
# 从源码安装
git clone https://github.com/yd5768365-hue/mechforge.git
cd mechforge
pip install -e ".[all]"
方式 A: Ollama (推荐)
# 安装 Ollama
curl -fsSL https://ollama.com/install.sh | sh
# 下载模型
ollama pull qwen2.5:1.5b
方式 B: GGUF 模型
# 下载 GGUF 文件
wget https://huggingface.co/Qwen/Qwen2.5-1.5B-Instruct-GGUF/resolve/main/qwen2.5-1.5b-instruct-q4_k_m.gguf \
-O ./models/qwen2.5-1.5b.gguf
# 启动 GGUF 服务器
mechforge-model serve -m qwen2.5-1.5b.gguf
# 查看可用模型
mechforge-model list
# 选择默认模型
mechforge-model select
# 启动 AI 对话 (终端)
mechforge
# 启动 GUI 桌面应用
mechforge-gui
# 启动知识库
mechforge-k
# 启动 CAE 工作台
mechforge-work
# 启动 CAE TUI 界面
mechforge-work --tui
# 启动 Web 界面
mechforge-web
| 命令 | 说明 | 示例 |
|---|---|---|
mechforge |
启动 AI 对话 | 直接运行进入交互模式 |
mechforge-gui |
启动 GUI 桌面应用 | 图形化界面 |
mechforge-k |
启动知识库 | mechforge-k search "关键词" |
mechforge-work |
启动 CAE 工作台 | mechforge-work demo |
mechforge-work --tui |
启动 CAE TUI 界面 | 交互式终端界面 |
mechforge-web |
启动 Web 界面 | 访问 http://localhost:8080 |
mechforge-model |
模型管理 | mechforge-model list |
提供多种镜像变体,支持 linux/amd64 和 linux/arm64 平台。
# 方式一:使用启动脚本
./docker-start.sh start # Linux/macOS
docker-start.bat start # Windows
# 方式二:Docker Compose (推荐)
git clone https://github.com/yd5768365-hue/mechforge.git
cd mechforge
cp .env.example .env
docker-compose --profile full up -d
# 方式三:直接拉取镜像运行
docker pull ghcr.io/yd5768365-hue/mechforge:latest
docker run -it --rm ghcr.io/yd5768365-hue/mechforge:latest
| 镜像 | 大小 | 描述 |
|---|---|---|
ghcr.io/yd5768365-hue/mechforge:latest |
~800MB | 完整版(推荐) |
ghcr.io/yd5768365-hue/mechforge-ai:latest |
~200MB | AI 对话模式 |
ghcr.io/yd5768365-hue/mechforge-rag:latest |
~500MB | 知识库 RAG 模式 |
ghcr.io/yd5768365-hue/mechforge-work:latest |
~400MB | CAE 工作台模式 |
ghcr.io/yd5768365-hue/mechforge-web:latest |
~300MB | Web 服务模式 |
docker-compose --profile ai up -d # AI 对话
docker-compose --profile rag up -d # 知识库
docker-compose --profile work up -d # CAE 工作台
docker-compose --profile web up -d # Web 服务
docker-compose --profile full up -d # 完整版 (推荐)
| 变量 | 默认值 | 说明 |
|---|---|---|
OLLAMA_URL |
http://ollama:11434 |
Ollama 服务地址 |
OLLAMA_MODEL |
qwen2.5:1.5b |
默认使用的模型 |
LOG_LEVEL |
INFO |
日志级别 |
WEB_PORT |
8080 |
Web 服务端口 |
📖 详细文档请参阅 Docker 部署指南
$ mechforge
[MechForge] > 计算一个长100mm的悬臂梁挠度,截面10x10mm,受力1000N
AI: 我来为您计算这个悬臂梁的挠度...
使用工具: calculate_cantilever_deflection
参数: {"length": 100, "force": 1000, "width": 10, "height": 10}
结果: 最大挠度为 0.0254 mm
计算公式: δ = FL³ / (3EI)
其中:
- F = 1000 N
- L = 100 mm
- E = 210000 MPa (钢材)
- I = 833.33 mm⁴
MechForge AI 支持两种知识库后端:
| 后端 | 特点 | 适用场景 |
|---|---|---|
local |
轻量级,无需外部服务 | Markdown/TXT 文档,快速部署 |
ragflow |
高级文档解析能力 | PDF/图片/表格,OCR 需求 |
编辑 config.yaml:
knowledge:
# 选择后端: local | ragflow
backend: "local"
# 本地后端配置
path: "./knowledge"
# RAGFlow 后端配置(当 backend: ragflow 时生效)
ragflow:
url: "http://localhost:9380"
api_key: "your-api-key"
kb_id: "your-kb-id"
RAGFlow 是一个开源的 RAG 引擎,提供高级文档解析能力:
# 克隆 RAGFlow 仓库
git clone https://github.com/infiniflow/ragflow.git
cd ragflow/docker
# 修改 .env(可选,使用稳定版本)
echo "RAGFLOW_IMAGE=infiniflow/ragflow:v0.15.0" > .env
# 启动服务(CPU 版本)
docker compose -f docker-compose.yml up -d
# 或使用 GPU 版本
# docker compose -f docker-compose-gpu.yml up -d
启动后访问 http://localhost:9380,默认账号 ragflow / infiniflow。
mechanical)编辑 config.yaml:
knowledge:
backend: "ragflow"
ragflow:
url: "http://localhost:9380"
api_key: "ragflow-xxxxxxxxxxxx"
kb_id: "kb_xxxxxxxxxxxx"
from mechforge_knowledge import get_backend_from_config
# 获取配置的后端
backend = get_backend_from_config()
# 检查健康状态
is_healthy = await backend.health_check()
# 检索知识库
results = await backend.search("轴承选型方法", top_k=5)
for result in results:
print(f"来源: {result.source}")
print(f"内容: {result.content}")
print(f"相关度: {result.score}")
Q: RAGFlow 启动失败
# 检查端口占用
netstat -tlnp | grep 9380
# 查看日志
docker logs ragflow-server
# 重启服务
docker compose restart
Q: 文档解析慢
Q: 检索结果不准确
top_k 参数$ mechforge-work
[MechBot] > /demo
✓ 悬臂梁示例已加载
[MechBot] > /mesh --size=2.0
✓ 网格生成完成: 12345 节点, 6789 单元
[MechBot] > /solve
✓ 求解完成
最大位移: 0.025396 mm
最大应力: 125.60 MPa
[MechBot] > /show vonmises
[显示应力云图...]
# 设置 API 端点
[MechBot] > /api https://your-calculix-api.com
# 使用 API 求解
[MechBot] > /solve --api
访问 http://localhost:8080 使用 Web 界面:
┌─────────────────────────────────────────────────────────────┐
│ MechForge AI v0.4.1 │
├──────────────┬──────────────┬──────────────┬────────────────┤
│ AI 对话 │ 知识库 │ CAE 工作台 │ Web 界面 │
├──────────────┼──────────────┼──────────────┼────────────────┤
│ LLM Client │ RAG Engine │ Gmsh 4.15+ │ FastAPI │
│ MCP Tools │ BM25/Rerank │ CalculiX │ WebSocket │
│ Streaming │ ChromaDB │ PyVista │ Security │
├──────────────┴──────────────┴──────────────┴────────────────┤
│ GUI 桌面应用 (PySide6 + 科幻主题) │
├─────────────────────────────────────────────────────────────┤
│ Core (Config / MCP / Local Model Manager) │
├─────────────────────────────────────────────────────────────┤
│ 🦙 Ollama │ 📦 GGUF HTTP │ 🔧 MCP Servers │
└─────────────────────────────────────────────────────────────┘
# 基础功能 (AI Chat)
pip install mechforge-ai
# GUI 桌面应用 (+PySide6)
pip install mechforge-ai[gui]
# CAE 功能 (+Gmsh +CalculiX +PyVista)
pip install mechforge-ai[work]
# RAG 功能 (+ChromaDB +Sentence-Transformers)
pip install mechforge-ai[rag]
# Web 界面 (+FastAPI +WebSocket)
pip install mechforge-ai[web]
# 完整功能 (所有依赖)
pip install mechforge-ai[all]
Q: 启动时提示 “命令未找到”
# 确保安装成功并添加到 PATH
pip install --upgrade mechforge-ai
# 或重新安装
pip install --force-reinstall mechforge-ai
Q: CAE 功能无法使用
# 检查 CAE 环境
python check_cae_env.py
# 安装 CAE 依赖
pip install mechforge-ai[work]
Q: 模型加载失败
# 检查 Ollama 是否运行
ollama list
# 或检查 GGUF 文件路径
mechforge-model list
Q: Web 界面无法访问
# 检查端口是否被占用
mechforge-web --port 8081
# 或使用不同的主机
mechforge-web --host 0.0.0.0
# 安装开发依赖
pip install -e ".[dev]"
# 运行测试
pytest
# 代码检查
ruff check .
black --check .
mypy mechforge_*/
# 构建文档
python scripts/build_docs.py
# 构建包
python scripts/build_package.py
mechforge_ai/
├── mechforge_core/ # 核心模块
│ ├── config.py # Pydantic 配置
│ ├── cache.py # 多级缓存系统
│ ├── database.py # SQLite 数据库
│ ├── logger.py # 结构化日志
│ ├── security.py # 安全工具
│ ├── mcp/ # MCP 协议实现
│ ├── gguf_server.py # GGUF HTTP 服务器
│ └── local_model_manager.py # 本地模型管理
├── mechforge_ai/ # AI 对话
│ ├── llm_client.py # LLM 客户端
│ ├── terminal.py # 终端界面
│ ├── rag_engine.py # RAG 引擎
│ └── model_cli.py # 模型 CLI
├── mechforge_knowledge/ # 知识库
│ ├── cli.py # 知识库 CLI
│ ├── lookup.py # 查询引擎
│ └── rag.py # RAG 实现
├── mechforge_work/ # CAE 工作台
│ ├── work_cli.py # CAE CLI
│ ├── mesh_engine.py # Gmsh 网格引擎
│ ├── solver_engine.py # CalculiX 求解器
│ ├── viz_engine.py # PyVista 可视化
│ └── cae_core.py # CAE 核心
├── mechforge_web/ # Web 界面
│ ├── api.py # API 路由
│ ├── main.py # FastAPI 应用
│ ├── middleware.py # 安全中间件
│ └── security_config.py # 安全配置
├── mechforge_theme/ # 主题组件
│ ├── colors.py # 颜色定义
│ └── components.py # UI 组件
├── mechforge_gui_ai/ # GUI 桌面应用 (PySide6)
│ ├── app.py # 应用入口
│ ├── main_window.py # 主窗口
│ ├── theme.py # 终端风格主题
│ ├── dialogs.py # 配置对话框
│ └── build_gui.py # 打包脚本
├── docs/ # 文档
├── tests/ # 测试
├── examples/ # 示例
└── scripts/ # 脚本
欢迎贡献代码!请遵循以下步骤:
git checkout -b feature/amazing)git commit -m 'Add amazing feature')git push origin feature/amazing)本项目采用 MIT License 开源。
感谢以下开源项目:
KnowledgeBackend 抽象接口LocalBackend: 本地 ChromaDB + BM25 实现RAGFlowBackend: RAGFlow API 集成,支持 OCR、表格提取mechforge - AI 对话模式mechforge-k - 知识库查询模式mechforge-work - CAE 工作台模式rich.box 导入错误🎯 知识驱动,智能进化
v0.6.0 将是一个重要里程碑,核心目标是构建一个持续学习、不断进化的机械工程知识库系统。
核心特性:
知识库建设计划:
Made with ❤️ for Mechanical Engineers
v0.6.0 敬请期待 🚀