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
|