# Jarvis 个人 AI 助理

> 你的私人 AI 大脑 — 懂你的知识、懂你的安排

## 功能特性

- **多 Agent 协作** — 主 Agent 协调 + 4 个专业子 Agent（规划/执行/知识管理/分析）
- **私人知识库** — LlamaIndex 智能分块 + ChromaDB 向量检索
- **动态知识图谱** — LLM 自动抽取实体和关系，构建你的知识网络
- **论坛 + 看板** — 发布指令让 AI 执行，管理每日任务
- **定时任务** — 凌晨自动分析任务、扫描论坛指令、重建图谱
- **流式对话** — WebSocket 实时流式输出
- **本地部署** — NAS + Docker，数据完全自主可控

## 快速开始

### 前置要求

- Python 3.12+ (需要 uv)
- Node.js 18+
- Claude API Key

### Windows 一键启动

```batch
# 1. 先配置 API Key（首次）
setup.bat

# 2. 一键启动（自动装依赖 + 启动服务）
start.bat
```

### 手动启动

```bash
# 1. 配置项目根目录环境变量
cp backend/.env.example .env
# 编辑项目根目录 .env

# 2. 安装依赖
cd backend
uv sync

# 3. 启动后端（按项目根目录 .env）
uv run uvicorn app.main:app --reload --host "$HOST" --port "$PORT"

# 4. 新终端，启动前端
cd frontend
npm install
npm run dev
```

### 打开浏览器

访问 http://localhost:5173

注册账号后即可使用。

---

## API 文档

后端启动后，访问 `http://<HOST>:<PORT>/docs` 查看交互式 API 文档（以项目根目录 `.env` 为准）。

### 主要接口

| 方法 | 路径 | 说明 |
|------|------|------|
| POST | /api/auth/register | 注册 |
| POST | /api/auth/login | 登录 |
| POST | /api/conversations/chat | 发送消息 |
| POST | /api/conversations/chat/stream | 流式对话 |
| POST | /api/documents/upload | 上传文档 |
| POST | /api/documents/search | 搜索知识库 |
| GET | /api/tasks | 获取任务 |
| POST | /api/forum/posts | 发布论坛帖子 |
| GET | /api/graph | 获取知识图谱 |
| GET | /api/scheduler/status | 定时任务状态 |

---

## Docker 部署（NAS）

```bash
# 在 NAS 上运行
docker-compose up -d

# 查看日志
docker-compose logs -f jarvis-backend
```

数据存储在 `./data/` 目录。

---

## 项目结构

```
MyAgents/
├── backend/               # FastAPI 后端
│   ├── app/
│   │   ├── agents/       # LangGraph 多 Agent 系统
│   │   │   ├── graph.py  # Agent 图定义
│   │   │   ├── state.py  # 状态定义
│   │   │   ├── prompts.py# 提示词
│   │   │   └── tools/    # 工具集
│   │   ├── services/     # 业务服务
│   │   ├── routers/      # API 路由
│   │   ├── models/       # 数据库模型
│   │   └── schemas/      # Pydantic 模型
│   ├── Dockerfile
│   └── pyproject.toml
│
├── frontend/              # Vue 3 前端
│   ├── src/
│   │   ├── views/        # 页面
│   │   ├── api/          # API 调用
│   │   ├── stores/       # Pinia 状态
│   │   └── router/       # 路由
│   └── Dockerfile
│
├── docker-compose.yml
└── README.md
```

---

## 开发说明

### 后端依赖（uv）

```bash
cd backend
uv sync                    # 安装依赖
uv add <package>           # 添加依赖
uv run pytest              # 运行测试
```

### 前端依赖

```bash
cd frontend
npm install                # 安装依赖
npm run dev                # 开发服务器
npm run build              # 构建生产版本
```

---

## 技术栈

| 组件 | 技术 |
|------|------|
| 后端 | FastAPI + SQLAlchemy async |
| Agent | LangGraph + LangChain |
| 知识库 | LlamaIndex + ChromaDB |
| 前端 | Vue 3 + TypeScript + Vite |
| 数据库 | SQLite |
| 定时任务 | APScheduler |
| 部署 | Docker |

---

## License

MIT
