# question **Repository Path**: ns2250225/question ## Basic Information - **Project Name**: question - **Description**: 通过问题驱动的认知知识库构建工具 - **Primary Language**: TypeScript - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-25 - **Last Updated**: 2026-05-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # QuestionMind (问知) **QuestionMind (问知)** 是一款基于 **Tauri v2 + React** 构建的桌面端 AI 驱动认知形成与资料管理工具。 它通过“苏格拉底式”的对话引导(五阶段工作流),帮助用户从零碎的资料中提取核心观点,最终沉淀为结构化的认知卡片,实现“提出问题 -> 收集资料 -> AI 探讨 -> 认知沉淀”的完整学习闭环。 --- ## ✨ 核心特性 - 🎯 **问题驱动探索**:创建、管理你的探索问题,标签化分类,跟踪研究状态。 - 📚 **全能资料收集**: - 支持手动上传本地文本文件。 - 支持一键输入网页链接,内置 Jina Reader API 自动抓取网页正文,突破反爬限制。 - 支持原生操作系统级文件/网页打开体验(默认浏览器与系统默认应用关联)。 - 🤖 **AI 认知助手(苏格拉底式引导)**: - 内置基于大模型的 5 阶段工作流:`理解资料` -> `费曼拆解` -> `反向挑战` -> `建立观点` -> `认知沉淀`。 - 支持自定义大语言模型(OpenAI 兼容接口配置),可灵活接入各类主流 LLM。 - 💡 **认知卡片沉淀**:自动将深入探讨后的观点转化为结构化卡片,涵盖:**结论、理由、反例、边界**,便于后期复盘与检索。 - 🔍 **全局智能搜索**:毫秒级的全局搜索,快速穿梭于海量的问题、资料与认知卡片之中。 - 🔒 **本地优先,极致安全**:采用 SQLite 数据库存储所有数据至本地,无云端数据泄露风险;配置数据通过 LocalStorage 隔离管理。 - 📱 **全平台响应式**:完美适配大屏多列展示、窗口分屏以及窄屏移动端级别的布局。 --- ## 🛠️ 技术栈 - **前端**:React 19, TypeScript, Vite, Tailwind CSS v4, Lucide React (图标) - **后端**:Rust, Tauri v2 (轻量级桌面端框架) - **存储**:SQLite (通过 `tauri-plugin-sql` 插件) - **原生交互**:`tauri-plugin-shell` (文件执行与 URL 跳转), `tauri-plugin-dialog` (原生文件选择) --- ## 🚀 快速开始 ### 环境依赖 - [Node.js](https://nodejs.org/) (推荐 v18+) - [Rust](https://www.rust-lang.org/) (用于 Tauri 编译) - 操作系统对应的 C++ 构建工具 (如 Windows 下的 Visual Studio Build Tools) ### 1. 克隆项目与安装依赖 ```bash # 1. 进入项目目录 cd question-mind # 2. 安装前端依赖 npm install ``` ### 2. 启动开发环境 我们推荐并行启动前端与后端以获得最佳的开发体验(特别是在 Windows 下): ```bash # 在一个终端窗口中启动 Vite 前端服务 npm run dev # 在另一个终端窗口中启动 Tauri 客户端 (进入 src-tauri 目录) cd src-tauri cargo run ``` *(或者你也可以尝试使用 Tauri CLI 官方命令:`npx tauri dev`)* ### 3. 构建生产版本 (打包为安装包 / 客户端) 打包过程会进行深度的链接优化(LTO),需要一些时间: ```bash npm run build npx tauri build ``` > 编译完成后,生成的 `.exe` 执行文件或 `.msi` 安装包会输出在 `src-tauri/target/release/bundle/` 目录下。 --- ## ⚙️ 配置说明 打开应用后,前往**设置(Settings)**页面配置您的 AI 模型参数: - **Base URL**: 大语言模型的 API 接口地址(如 `https://api.openai.com/v1`) - **API Key**: 对应的访问密钥 - **Model**: 选择或输入您想使用的模型名称(如 `gpt-4o`, `deepseek-chat` 等) > 注意:所有的设置项都会安全地保存在本地浏览器的 LocalStorage 中。 --- ## 📝 目录结构 ```text question-mind/ ├── src/ # 前端 React 源码 │ ├── components/ # 共享 UI 组件 │ ├── lib/ # 核心逻辑 (ai.ts 对话控制, db.ts 数据库封装) │ ├── pages/ # 路由页面 (Home, QuestionDetail, Settings...) │ ├── App.tsx # 主应用入口与路由配置 │ └── index.css # Tailwind 样式入口 ├── src-tauri/ # 后端 Rust 源码与 Tauri 配置 │ ├── capabilities/ # 权限与安全配置 (严格控制 shell、fs、http 权限) │ ├── src/ # Rust 核心代码 │ ├── Cargo.toml # Rust 依赖声明 │ └── tauri.conf.json # Tauri 核心配置 ├── index.html # Vite 宿主 HTML └── package.json # 前端依赖配置 ``` --- ## 📜 许可证 [MIT License](LICENSE)