150 lines
4.7 KiB
Markdown
150 lines
4.7 KiB
Markdown
|
|
# MineNASAI
|
|||
|
|
|
|||
|
|
基于 NAS 的智能个人 AI 助理,支持企业微信/飞书通讯,集成 Claude 编程能力。
|
|||
|
|
|
|||
|
|
## 特性
|
|||
|
|
|
|||
|
|
- **多渠道通讯**: 企业微信、飞书接入
|
|||
|
|
- **智能路由**: 自动识别任务复杂度,选择最优处理方式
|
|||
|
|
- **双界面模式**:
|
|||
|
|
- 通讯工具:日常交互、简单任务
|
|||
|
|
- Web TUI:深度编程、复杂项目
|
|||
|
|
- **安全隔离**: Python 沙箱执行、权限分级
|
|||
|
|
- **可扩展**: 支持 MCP Server 插件
|
|||
|
|
|
|||
|
|
## 快速开始
|
|||
|
|
|
|||
|
|
### 环境要求
|
|||
|
|
|
|||
|
|
- Python 3.11+
|
|||
|
|
- Redis (可选,用于任务队列)
|
|||
|
|
- SSH 服务 (Web TUI 需要)
|
|||
|
|
|
|||
|
|
### 安装
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# 克隆项目
|
|||
|
|
git clone https://github.com/minenasai/minenasai.git
|
|||
|
|
cd minenasai
|
|||
|
|
|
|||
|
|
# 创建虚拟环境
|
|||
|
|
python -m venv .venv
|
|||
|
|
source .venv/bin/activate # Linux/macOS
|
|||
|
|
# .venv\Scripts\activate # Windows
|
|||
|
|
|
|||
|
|
# 安装依赖
|
|||
|
|
pip install -e ".[dev]"
|
|||
|
|
|
|||
|
|
# 安装 pre-commit 钩子
|
|||
|
|
pre-commit install
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 配置
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# 复制环境变量模板
|
|||
|
|
cp .env.example .env
|
|||
|
|
|
|||
|
|
# 编辑 .env 文件,填入 API Key 等配置
|
|||
|
|
# ANTHROPIC_API_KEY=sk-ant-xxxxx
|
|||
|
|
|
|||
|
|
# 初始化配置文件
|
|||
|
|
minenasai config --init
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 运行
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# 启动 Gateway 服务
|
|||
|
|
minenasai server --port 8000
|
|||
|
|
|
|||
|
|
# 启动 Web TUI 服务(另一个终端)
|
|||
|
|
minenasai webtui --port 8080
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 项目结构
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
minenasai/
|
|||
|
|
├── src/minenasai/
|
|||
|
|
│ ├── core/ # 核心模块(配置、日志)
|
|||
|
|
│ ├── gateway/ # Gateway 服务
|
|||
|
|
│ │ ├── protocol/ # 消息协议
|
|||
|
|
│ │ └── channels/ # 通讯渠道(企业微信、飞书)
|
|||
|
|
│ ├── agent/ # Agent 运行时
|
|||
|
|
│ │ └── tools/ # 内置工具
|
|||
|
|
│ └── webtui/ # Web TUI 界面
|
|||
|
|
│ └── static/ # 前端静态文件
|
|||
|
|
├── tests/ # 测试用例
|
|||
|
|
├── config/ # 配置文件模板
|
|||
|
|
└── docs/ # 文档
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 架构概述
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
┌─────────────────────────────────────────────────────────────┐
|
|||
|
|
│ 通讯接入层 (Channels) │
|
|||
|
|
│ 企业微信Bot 飞书Bot Web UI │
|
|||
|
|
└────────────────────────────┬────────────────────────────────┘
|
|||
|
|
│
|
|||
|
|
┌────────────────────────────┴────────────────────────────────┐
|
|||
|
|
│ Gateway 服务 (FastAPI) │
|
|||
|
|
│ WebSocket协议 / 消息队列 / 权限验证 │
|
|||
|
|
└────────────────────────────┬────────────────────────────────┘
|
|||
|
|
│
|
|||
|
|
┌────────────────────────────┴────────────────────────────────┐
|
|||
|
|
│ 智能路由层 (SmartRouter) │
|
|||
|
|
│ 任务复杂度评估 / 单/多Agent决策 │
|
|||
|
|
└────────────────────────────┬────────────────────────────────┘
|
|||
|
|
│
|
|||
|
|
┌───────────────────┼───────────────────┐
|
|||
|
|
↓ ↓ ↓
|
|||
|
|
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
|
|||
|
|
│ 快速执行通道 │ │ Anthropic │ │ Web TUI │
|
|||
|
|
│ Python沙箱 │ │ API │ │ SSH+Claude │
|
|||
|
|
└─────────────┘ └─────────────┘ └─────────────┘
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 开发
|
|||
|
|
|
|||
|
|
### 代码规范
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# 格式化代码
|
|||
|
|
ruff format src tests
|
|||
|
|
|
|||
|
|
# 检查代码
|
|||
|
|
ruff check src tests
|
|||
|
|
|
|||
|
|
# 类型检查
|
|||
|
|
mypy src
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 测试
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# 运行测试
|
|||
|
|
pytest
|
|||
|
|
|
|||
|
|
# 带覆盖率
|
|||
|
|
pytest --cov=minenasai
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 配置说明
|
|||
|
|
|
|||
|
|
配置文件位置: `~/.config/minenasai/config.json5`
|
|||
|
|
|
|||
|
|
主要配置项:
|
|||
|
|
|
|||
|
|
| 配置项 | 说明 | 默认值 |
|
|||
|
|
|--------|------|--------|
|
|||
|
|
| `gateway.port` | Gateway 端口 | 8000 |
|
|||
|
|
| `webtui.port` | Web TUI 端口 | 8080 |
|
|||
|
|
| `agents.default_model` | 默认模型 | claude-sonnet-4-20250514 |
|
|||
|
|
| `router.mode` | 路由模式 | agent |
|
|||
|
|
|
|||
|
|
## 许可证
|
|||
|
|
|
|||
|
|
MIT License
|