Chintanpatel24/mipler

GitHub: Chintanpatel24/mipler

一个本地优先的群集调查与个人助理工具,解决安全研究与运维中的文件分析、线索整理与自动化报告问题。

Stars: 1 | Forks: 0

# Mipler — 群集调查 + 个人助理 ## v3 更新内容 | 变更 | 详情 | |------|------| | **多提供程序 LLM 路由** | 可在助理设置中切换 Ollama、OpenAI、Anthropic 或 OpenRouter。 | | **持久化助理记忆** | 对话、用户资料事实、可复用技能、日程和报告存储在本地 SQLite 中。 | | **自我提升技能** | 复杂任务可自动生成可复用的技能,供后续提示使用。 | | **基于案例的问询** | 助理可分析案例研究、理解场景并提出高价值澄清问题。 | | **自动化调度** | 可创建每日任务(例如每日报告),支持本地执行与报告历史。 | | **网关就绪端点** | Telegram/Discord 消息端点可用于云端机器人集成。 | | **文件分析面板** | 上传任意文件类型(JSON、CSV、TXT、PDF、图片等),提出自然语言问题,获取 AI 回答 **以及可下载的思维导图 JSON**。 | | **思维导图导出** | 每次文件分析后,AI 生成结构化思维导图。点击 **↓ JSON** 下载以供外部使用或导入其他工具。 | | **双独立工作区** | “工作区 A”与“工作区 B”完全独立;向一个工作区导入 JSON **不会影响** 另一个。 | | **仅清除当前工作区** | “清除工作区”现在仅清除当前激活的工作区,另一个保持不变。 | | **`mipler` 启动器** | 跨平台启动器:安装后运行 `mipler` 即可启动前端及可用的 Python 调查后端。 | | **安全性** | 服务器硬编码绑定 `127.0.0.1`,无法从网络中的其他设备访问。 | ## 要求 - **Node.js** v18 或更高版本 — [nodejs.org](https://nodejs.org) - **Ollama** 用于仅本地使用,或使用 OpenAI / Anthropic / OpenRouter 的 API 密钥。 云提供商为可选选项。仅使用本地 Ollama 时无需外部 API。 ## 快速开始 ``` # 克隆或解压 Mipler cd mipler-main # 仅安装一次 npm install # 可选:将启动器设为全局 npm install -g . # 启动 Mipler mipler ``` 若不希望使用全局命令,可直接在项目文件夹中运行 `npm start`。 在 Windows 上,`npm install -g .` 会自动创建 `mipler.cmd` 启动器。对于本地仓库检出,也可运行 `start.cmd`。 然后在浏览器中打开 **http://localhost:3000** ## 启动器功能 `mipler` 启动器自动处理以下事项: 1. **检查 Node.js 版本** — 低于 v18 时退出并显示清晰消息。 2. **安装依赖项** — 仅在缺少 `node_modules` 时运行 `npm install`。 3. **构建应用** — 需要重建且构建工具可用时运行 `npm run build`。 4. **启动 Python 后端** — 安装 Python + FastAPI 后自动启动 `backend.api.server`。 5. **启动前端服务器** — 绑定至 `127.0.0.1:3000`(仅本地主机)。 要使用其他端口: ``` PORT=8080 mipler ``` ## 功能特性 ### 调查画布(双独立工作区) Mipler 启动时包含两个工作区:**工作区 A** 与 **工作区 B**。它们完全独立: - 每个工作区拥有独立的节点、边和视口。 - 向工作区 A 导入 JSON 文件**不会**合并到工作区 B。 - “清除工作区”仅清除当前激活的工作区。 - 可通过 **+ 新建调查** 在工作区选择器中添加更多工作区。 **切换工作区:** 点击左上角工具栏中的调查名称以打开工作区选择器。 ### 可添加的卡片类型 | 按钮 | 卡片类型 | 描述 | |------|----------|------| | `N` | 笔记 | 自由文本笔记卡片 | | `Img` | 图像 | 粘贴或嵌入图像 | | `PDF` | PDF | 嵌入 PDF 文档 | | `WH` | WHOIS | WHOIS 域名查询 | | `DNS` | DNS | DNS 记录查询 | | `RI` | 反向图像 | 反向图像搜索 | | `OS` | OSINT 框架 | OSINT 方法论查看器 | | `URL` | 自定义 URL | 在 iframe 中嵌入任意网页工具 | ### AI 文件分析面板 点击工具栏中的 **AI** 打开文件分析面板。 1. **上传文件** — 拖放或点击浏览。接受所有文件类型: - JSON、CSV、TXT、MD、LOG、XML、YAML — 作为文本读取 - PDF、图片 — 读取元数据并总结内容 - 其他任意文件 — 尽力读取为文本 2. **提出问题** — 输入希望从文件中了解的内容。 3. **分析** — Mipler 将文件与问题发送至本地 Ollama 模型。 4. **获取结果:** - **回答** — AI 对问题的书面回答。 - **思维导图** — 基于分析的可交互、可折叠的思维导图。 - **↓ JSON** — 下载包含完整回答与思维导图的 JSON 文件。 下载的 JSON 格式如下: ``` { "answer": "AI's written answer...", "mindmap": { "root": "Your question", "nodes": [ { "id": "1", "label": "Main finding", "children": [ { "id": "1-1", "label": "Sub-point", "children": [] } ] } ] } } ``` ### API 工作区(Ollama 聊天) 点击工具栏中的 **API** 打开 Ollama 聊天工作区。这是一个直接的对话式界面,用于本地 Ollama 模型,适用于自由形式的 OSINT 查询、头脑风暴或研究。 - **聊天标签页** — 发送消息并接收 Ollama 回复。 - **设置标签页** — 配置 Ollama URL 并选择可用模型(自动检测)。 ### 助理设置 点击 **⋮ 菜单 → 助理设置** 进行配置: - **提供程序** — `ollama`、`openai`、`anthropic` 或 `openrouter` - **基础 URL** — 可为每个提供程序覆盖设置 - **模型** — 提供程序支持的任何模型 ID - **API 密钥** — 在后端本地存储中加密保存 ### 导出与导入 - **导出** — 将当前工作区状态保存为 `.json` 文件(包含所有调查、节点、边与 AI 历史)。 - **导入** — 加载工作区 JSON。仅加载到**当前激活的工作区**,不会覆盖其他工作区。 - **AI 思维导图导出** — 从文件分析面板单独下载 JSON。 ## 安全性 - **仅限本地主机** — 服务器绑定至 `127.0.0.1`,无法从其他设备访问。 - **本地优先存储** — 助理记忆、技能、日程和报告本地存储在 `data/assistant.db`。 - **加密提供程序密钥** — API 密钥在本地加密(Fernet),且不包含在工作区导出中。 - **出厂重置** — 使用 **⋮ 菜单 → 恢复出厂设置(全新开始)** 清除浏览器数据与助理后端内存。 - **本地浏览器持久化** — 工作区数据存储在本地存储中并自动保存。`Ctrl+S` 或 `Cmd+S` 强制立即保存。 - **无遥测** — Mipler 不收集、记录或传输任何使用数据。 ## Ollama 设置指南 ### 安装 Ollama ``` # macOS / Linux curl -fsSL https://ollama.com/install.sh | sh # Windows # 从 https://ollama.com/download 下载安装程序 ``` ### 启动并启用 CORS(浏览器访问必需) ``` OLLAMA_ORIGINS=* ollama serve ``` ### 拉取模型 ``` ollama pull llama3 # Good general model (~4GB) ollama pull mistral # Fast, good quality (~4GB) ollama pull gemma2 # Google's model (~5GB) ollama pull phi3 # Lightweight (~2GB) ``` ### 验证是否正常工作 ``` curl http://localhost:11434/api/tags ``` ## 开发 ``` # 安装依赖项 npm install # 启动开发服务器(热重载) npm run dev # 生产环境构建 npm run build # 使用完整启动器提供服务 npm start # 或安装全局命令并运行: mipler ``` ## 项目结构 ``` mipler-main/ ├── start.sh # One-command launcher ├── server.js # Express server (localhost only) ├── src/ │ ├── App.tsx # Root component │ ├── components/ │ │ ├── FileAnalysisPanel.tsx # NEW: file upload + AI analysis + mindmap │ │ ├── ApiWorkspace.tsx # Ollama chat workspace │ │ ├── Toolbar.tsx # Top toolbar │ │ ├── WallCanvas.tsx # ReactFlow canvas │ │ ├── MiplerCardNode.tsx # Card node renderer │ │ ├── cards/ # Individual card components │ │ ├── edges/ # Edge components │ │ ├── modals/ │ │ │ ├── ApiSettingsModal.tsx # Multi-provider assistant settings │ │ │ ├── ExportModal.tsx │ │ │ ├── ImportModal.tsx │ │ │ └── ... │ │ └── ui/ # Button, Input, Modal │ ├── store/ │ │ └── useWorkspaceStore.ts # Zustand store (Ollama-only, 2 workspaces) │ ├── types/ │ │ └── index.ts # TypeScript types │ └── utils/ │ ├── aiApi.ts # Ollama API calls + file analysis │ ├── fileSystem.ts │ └── osintApi.ts └── README.md ``` ## 故障排除 **“未检测到 Ollama”** - 在终端中运行 `OLLAMA_ORIGINS=* ollama serve`。 - 确保助理设置中的 URL 与 Ollama 运行地址匹配。 **“Ollama 错误 404”** - 指定的模型可能尚未拉取。运行 `ollama pull llama3`。 **“AI 分析未返回思维导图”** - 尝试使用更小型、更快的模型,如 `phi3` 或 `mistral`。 - 确保问题足够具体,以便模型生成结构化响应。 **“刷新后工作区数据丢失”** - 这是预期行为 — 所有数据保存在内存中。请在关闭标签页前使用**导出**。 **“端口已被占用”** - 运行 `=8080 bash start.sh` ## 许可证 MIT — 参见 `LICENSE`
标签:AI风险缓解, Anthropic, CIS基准, CSV解析, Discord Bot, JSON解析, LLM评估, LLM路由, MITM代理, Ollama, OpenAI, OpenRouter, PDF解析, SEO, SQLite, Telegram Bot, 个人助理, 任务调度, 关键词优化, 内存规避, 双工作区, 多语言支持, 安全测试框架, 安全绑定, 工作区管理, 思维导图, 思维导图导出, 技能生成, 文件分析, 智能助手, 本地执行, 本地数据库, 案例研究, 网关端点, 自动化攻击, 自动化调度, 自我改进, 跨平台启动器