From cb7a1ba6d8b06b03b58f80c93c1d1cdfb68c295a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AF=92=E5=AF=92?= <2596194220@qq.com> Date: Sun, 11 Jan 2026 15:42:13 +0800 Subject: [PATCH] =?UTF-8?q?docs(desktop):=20=F0=9F=93=9D=20=E5=AE=8C?= =?UTF-8?q?=E5=96=84=E9=A1=B9=E7=9B=AE=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 237 ++++++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 184 insertions(+), 53 deletions(-) diff --git a/README.md b/README.md index 0479ce4..0115fc8 100644 --- a/README.md +++ b/README.md @@ -2,38 +2,122 @@ 一个基于Electron和Vue开发的桌面应用程序,利用人工智能技术帮助用户快速生成高质量的读书心得和反思。 -## 功能特色 +## 🚀 功能特色 - **AI驱动的读书心得生成**:基于用户输入的书籍信息,利用大语言模型自动生成深度读书心得 - **多职业视角**:根据用户的职业背景(学生、教师、职场人士、科研工作者等)定制化生成内容 - **智能摘要与关键词提取**:自动生成内容摘要和关键词,便于回顾和索引 - **任务管理**:支持批量处理多个读书反思任务 - **现代化UI界面**:使用Vue和Arco Design构建的精致极简主义界面 +- **离线数据存储**:使用SQLite数据库本地存储所有任务和用户配置 -## 技术架构 +## 🛠️ 技术架构 -- **主框架**:Electron + Vue 3 -- **AI集成**:LangChain + LangGraph,支持结构化AI内容生成 -- **数据库**:TypeORM + SQLite,本地数据存储 -- **后端通信**:tRPC,类型安全的API调用 -- **构建工具**:Vite + TypeScript -- **UI组件库**:Arco Design Vue -- **样式框架**:UnoCSS +- **主框架**:[Electron](https://www.electronjs.org/) + [Vue 3](https://vuejs.org/) +- **AI集成**:[LangChain](https://js.langchain.com/) + [LangGraph](https://langchain-ai.github.io/langgraphjs/),支持结构化AI内容生成 +- **数据库**:[TypeORM](https://typeorm.io/) + [SQLite](https://www.sqlite.org/),本地数据存储 +- **后端通信**:[tRPC](https://trpc.io/),类型安全的API调用 +- **构建工具**:[Vite](https://vitejs.dev/) + [TypeScript](https://www.typescriptlang.org/) +- **UI组件库**:[Arco Design Vue](https://arco.design/vue/) +- **样式框架**:[UnoCSS](https://unocss.dev/) +- **状态管理**:[Pinia](https://pinia.vuejs.org/) -## 核心功能模块 +## 📋 核心功能模块 -1. **AI服务模块**:集成大语言模型,实现读书心得的智能生成 -2. **状态管理**:使用LangGraph管理AI生成流程的状态 -3. **数据库管理**:使用TypeORM管理任务数据和用户配置 -4. **任务管理器**:支持批量处理和任务状态追踪 -5. **用户界面**:现代化Vue界面,支持任务创建、查看和管理 +### 1. AI服务模块 +- 集成大语言模型,实现读书心得的智能生成 +- 支持自定义API端点和模型配置 +- 结构化输出确保格式一致性 -## 安装与运行 +### 2. AI工作流程 (LangGraph) +- **内容生成节点**:根据书籍信息和用户职业背景生成读书心得正文 +- **摘要生成节点**:对生成的内容进行摘要和关键词提取 +- **状态管理**:使用LangGraph管理AI生成流程的状态 + +### 3. 数据库管理 +- 使用TypeORM管理任务数据和用户配置 +- 支持阅读用户画像、任务批次和任务项的存储 +- SQLite数据库确保数据离线安全存储 + +### 4. 任务管理器 +- 支持批量处理和任务状态追踪 +- 实时任务进度显示 +- 任务状态管理(待处理、生成中、已完成等) + +### 5. 用户界面 +- 现代化Vue界面,支持任务创建、查看和管理 +- 个人用户画像管理 +- AI模型配置界面 + +## 📁 项目结构 + +``` +src/ +├── main/ # Electron主进程 +│ ├── db/ # 数据库配置 +│ │ ├── data-source.ts # 数据库连接配置 +│ │ └── entities/ # 数据实体定义 +│ │ ├── ReadingPersona.ts # 用户画像实体 +│ │ ├── ReadingReflectionTaskBatch.ts # 任务批次实体 +│ │ └── ReadingReflectionTaskItem.ts # 任务项实体 +│ ├── manager/ # 任务管理器 +│ │ └── readingReflectionsTaskManager.ts # 任务管理逻辑 +│ └── services/ # 核心服务 +│ ├── persona.service.ts # 用户画像服务 +│ ├── search.service.ts # 搜索服务 +│ └── ai/ # AI服务目录 +│ ├── llmService.ts # LLM服务配置 +│ ├── graph/ +│ │ └── readingReflectionGraph.ts # AI工作流程图 +│ ├── nodes/ +│ │ ├── readingReflectionContent.ts # 内容生成节点 +│ │ └── readingReflectionSummary.ts # 摘要生成节点 +│ ├── prompts/ +│ │ └── readingReflactionPrompts.ts # AI提示词模板 +│ └── state/ +│ └── readingReflectionState.ts # AI状态定义 +├── renderer/ # Vue渲染进程 +│ ├── components/ # UI组件 +│ ├── pages/ # 页面组件 +│ │ ├── about/ # 关于页面 +│ │ ├── faq/ # 常见问题 +│ │ ├── home/ # 首页 +│ │ ├── menus/ # 菜单页面 +│ │ ├── reflection/ # 反思页面 +│ │ ├── setting/ # 设置页面 +│ │ └── task/ # 任务页面 +│ ├── views/ # 视图组件 +│ └── src/ +│ ├── App.vue # 主应用组件 +│ ├── main.ts # Vue入口文件 +│ ├── style.css # 样式文件 +│ ├── assets/ # 静态资源 +│ ├── common/ # 公共工具 +│ ├── hooks/ # Vue钩子函数 +│ ├── lib/ # 库文件 +│ ├── router/ # 路由配置 +│ └── utils/ # 工具函数 +├── preload/ # 预加载脚本 +├── rpc/ # tRPC配置 +│ ├── context.ts # tRPC上下文 +│ ├── index.ts # tRPC入口 +│ └── router/ # tRPC路由 +│ ├── config.router.ts # 配置路由 +│ ├── notice.router.ts # 通知路由 +│ ├── persona.router.ts # 用户画像路由 +│ ├── search.router.ts # 搜索路由 +│ └── task.router.ts # 任务路由 +└── shared/ # 共享类型定义 + ├── types/ # TypeScript类型定义 + └── utils/ # 共享工具函数 +``` + +## 🚀 安装与运行 ### 环境要求 - Node.js >= 18 -- pnpm (推荐) +- pnpm (推荐) 或 npm ### 开发环境设置 @@ -43,7 +127,7 @@ cd read_book ``` -2. 安装依赖: +2. 安装依赖(推荐使用pnpm): ```bash pnpm install ``` @@ -72,52 +156,99 @@ pnpm build:linux ``` -## AI工作流程 +### 应用配置 -本应用使用LangGraph构建AI工作流程: +1. 启动应用后,进入设置页面配置AI模型参数 +2. 输入您的API密钥和模型信息 +3. 选择适合的模型用于心得生成和摘要提取 -1. **内容生成节点**:根据书籍信息和用户职业背景生成读书心得正文 -2. **摘要生成节点**:对生成的内容进行摘要和关键词提取 -3. **结构化输出**:使用Zod模式确保输出格式的一致性 +## 🧠 AI工作流程详解 -## 项目结构 +### 1. 内容生成节点 +- 接收书籍信息(书名、作者、描述等) +- 根据用户职业背景定制生成内容 +- 使用结构化输出确保标题和正文格式正确 -``` -src/ -├── main/ # Electron主进程 -│ ├── db/ # 数据库配置 -│ ├── manager/ # 任务管理器 -│ └── services/ # 核心服务 -│ └── ai/ # AI服务 -├── renderer/ # Vue渲染进程 -│ ├── components/ # UI组件 -│ ├── pages/ # 页面组件 -│ └── views/ # 视图组件 -├── preload/ # 预加载脚本 -├── rpc/ # tRPC配置 -└── shared/ # 共享类型定义 +### 2. 摘要生成节点 +- 接收上一节点生成的标题和正文 +- 提取100字以内的摘要 +- 生成3-5个关键词便于检索 + +### 3. 状态管理 +- 使用LangGraph管理整个AI工作流程 +- 状态流转:START → 生成内容 → 生成摘要 → END +- 每个步骤都更新任务状态和进度 + +### 4. 提示词工程 +- **角色定义**:根据职业背景设定专家角色 +- **约束条件**:避免身份陈述,直接场景切入 +- **输出格式**:严格JSON格式确保数据一致性 + +## 🔧 配置说明 + +### AI模型配置 +应用支持自定义AI服务提供商: + +```typescript +// src/main/services/ai/llmService.ts +const config = store.get(`chatModels.${type}`) as any +return new ChatOpenAI({ + apiKey: config.apiKey, + configuration: { + baseURL: config.baseURL || 'https://api.openai.com/v1' + }, + modelName: config.modelName, + temperature: config.temperature +}) ``` -## 配置 +### 数据库配置 +- 使用TypeORM + SQLite +- 数据存储在本地,确保隐私安全 +- 支持阅读用户画像、任务批次和任务项的CRUD操作 -应用使用TypeScript进行类型安全的开发,并通过以下方式配置: +### 用户界面配置 +- 使用Vue 3 + TypeScript +- 组件化开发,易于维护 +- 响应式设计,适配不同屏幕尺寸 -- **构建配置**:`electron.vite.config.ts` -- **样式配置**:`uno.config.ts` -- **TypeScript配置**:`tsconfig.json` -- **数据库配置**:`src/main/db/data-source.ts` +## 🤝 贡献 -## 贡献 +欢迎提交Issue和Pull Request来改进项目: -欢迎提交Issue和Pull Request来改进项目。 +1. Fork 项目 +2. 创建功能分支 (`git checkout -b feature/AmazingFeature`) +3. 提交更改 (`git commit -m 'Add some AmazingFeature'`) +4. 推送到分支 (`git push origin feature/AmazingFeature`) +5. 开启 Pull Request -## 许可证 +### 开发约定 +- 使用TypeScript进行类型安全开发 +- 遵循ESLint和Prettier代码规范 +- 提交信息遵循Conventional Commits规范 +- 使用Husky进行Git Hooks自动化检查 -本项目采用 [在此添加您的许可证] 许可证。 +## 📄 许可证 -## 致谢 +本项目采用 [MIT](LICENSE) 许可证。 -- Electron - 跨平台桌面应用框架 -- Vue.js - 前端框架 -- LangChain & LangGraph - AI开发框架 -- Arco Design - UI组件库 +## 🙏 致谢 + +- [Electron](https://www.electronjs.org/) - 跨平台桌面应用框架 +- [Vue.js](https://vuejs.org/) - 前端框架 +- [LangChain & LangGraph](https://langchain-ai.github.io/langgraphjs/) - AI开发框架 +- [TypeORM](https://typeorm.io/) - ORM框架 +- [Arco Design](https://arco.design/vue/) - UI组件库 +- [UnoCSS](https://unocss.dev/) - 即时原子化CSS引擎 +- [tRPC](https://trpc.io/) - 类型安全的API调用 + +## 📞 支持 + +如需帮助或有建议,请: +- 提交GitHub Issues +- 查看FAQ页面获取常见问题解答 +- 检查设置页面的配置选项 + +## 📈 版本历史 + +项目使用语义化版本控制,详细的版本更新信息请查看Git提交历史。 \ No newline at end of file