# 线索记 **Repository Path**: luckythc/clue-notes ## Basic Information - **Project Name**: 线索记 - **Description**: 基于个人微信的客户线索管理、智能检索和沟通工具。只需要简单记录客户沟通流水,即可利用AI模型的能力进行复杂的语义匹配搜索,无需手动进行复杂的标签分类设置。基于微信小程序的聊天工具模式,支持导入个人微信好友,向好友发送文字信息、图片、视频和文件,支持从聊天中转发文件。 目前支持deepseek平台、阿里云百炼平台和腾讯云混元平台,需要自行配置运行环境参数 - **Primary Language**: NodeJS - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-01-27 - **Last Updated**: 2026-02-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 线索记 - 智能联系人线索管理系统 这是一个完整的微信小程序项目,专注于**联系人线索管理**和**智能筛选**,集成了联系人管理、跟进记录、AI语义搜索和聊天工具模式等功能。项目采用前后端分离架构,包含前端小程序、后端服务和云函数定义,后端使用Node.js + SQLite数据库,前端使用微信小程序框架。 ## 📋 最新更新 ### 2026-01-27 更新 1. **后端结构调整**: - 将注销功能从auth.js中移出,独立为user.js路由和控制器 - 优化了用户数据清理逻辑,确保数据删除的完整性 2. **前端界面优化**: - 修改了设置页面中注销账号的菜单项,从mp-cell改为普通view - 保持了一致的视觉效果和交互体验 3. **数据管理增强**: - 为各模型添加了clearByOpenid方法,支持按openid清除用户相关数据 - 实现了用户注销时的完整数据清理流程 4. **文件处理优化**: - 修正了文件删除逻辑,正确处理包含/uploads/的完整站点URL - 确保服务器端文件路径的准确提取 ## 📋 功能特性 ### 🎯 核心功能 1. **联系人管理** - 联系人信息的添加、编辑、查看 - 联系人标签管理 - 联系人列表展示与筛选 - **联系人来源**:支持微信导入、通讯录导入和手动录入三种方式 2. **线索管理** - 手动录入与联系人的沟通记录流水 - 跟进记录的添加、编辑、查看 - 跟进类型管理 - 跟进提醒功能 3. **智能搜索** - 基于联系人姓名、电话、线索记录的语义搜索 - 智能匹配和排序 - 搜索结果分页 4. **消息发送** - 支持向选定联系人发送文字消息 - 支持发送图片、视频和文件 - 聊天工具模式集成 5. **物料管理** - 物料的添加、编辑、查看 - 物料分类管理 ### 🛠️ 技术特性 - ✅ 前后端分离架构 - ✅ 基于Node.js的后端服务 - ✅ SQLite数据库存储 - ✅ AI语义搜索集成(支持从线索记录中通过语义搜索匹配) - ✅ 微信小程序前端 - ✅ 聊天工具模式支持 - ✅ 云开发集成 - ✅ 多AI模型支持(阿里云、腾讯云、DeepSeek) ## 📁 项目结构 ``` . ├── miniprogram/ # 小程序主目录 │ ├── pages/ # 普通模式页面 │ │ ├── index/ # 首页 │ │ ├── addCustomer/ # 添加联系人页面 │ │ ├── addFollowRecord/ # 添加跟进记录页面 │ │ ├── addMaterial/ # 添加物料页面 │ │ ├── customerDetail/ # 联系人详情页面 │ │ ├── customers/ # 联系人列表页面 │ │ ├── search/ # 搜索页面 │ │ ├── materials/ # 物料列表页面 │ │ └── webview/ # 网页视图页面 │ ├── packageChatTool/ # 聊天工具分包(独立分包) │ │ └── pages/ │ │ ├── chat/ # 聊天工具主页面 │ │ ├── memberList/ # 成员列表页面 │ │ ├── shareFile/ # 文件分享页面 │ │ └── contentEditor/ # 内容编辑器页面 │ ├── models/ # 前端数据模型 │ ├── request/ # 网络请求封装 │ ├── utils/ # 工具函数 │ ├── app.js # 小程序逻辑 │ ├── app.json # 小程序配置 │ ├── app.wxss # 小程序全局样式 │ └── sitemap.json # 站点地图 ├── server/ # 后端服务 │ ├── controllers/ # 后端控制器 │ ├── models/ # 后端数据模型 │ ├── database/ # 数据库配置 │ ├── services/ # 服务层 │ │ └── openai/ # AI服务集成 │ ├── routes/ # 路由配置 │ ├── index.js # 后端入口 │ └── package.json # 后端依赖 ├── cloudfunctions/ # 云函数目录 │ ├── chat/ # 聊天相关云函数 │ ├── customer/ # 联系人相关云函数 │ ├── followRecord/ # 跟进记录云函数 │ ├── material/ # 物料相关云函数 │ └── search/ # 搜索相关云函数 └── project.config.json # 项目配置 ``` ## 🚀 快速开始 ### 1. 前置要求 - 微信开发者工具(最新版本) - 微信小程序账号(已认证) - Node.js 14.0+ - npm 6.0+ ### 2. 仓库地址 ```bash git clone https://gitee.com/luckythc/micro-assistant.git ``` ### 3. 安装步骤 #### 3.1 进入项目目录 ```bash cd micro-assistant ``` #### 3.2 安装后端依赖 ```bash cd server npm install ``` #### 3.3 配置小程序 AppID 修改 `project.config.json`: ```json { "appid": "your-appid" // 替换为你的小程序 AppID } ``` #### 3.4 配置后端服务 修改 `server/config.js`(如果不存在,创建该文件): ```javascript module.exports = { port: 3000, secret: 'your-secret-key', // AI服务配置 openai: { apiKey: 'your-ai-api-key', model: 'deepseek-chat' } }; ``` ### 4. 运行项目 #### 4.1 启动后端服务 ```bash cd server node index.js ``` 服务默认运行在 `http://localhost:3000` #### 4.2 运行小程序 1. 用微信开发者工具打开项目 2. 点击"编译"按钮 3. 在模拟器或真机上预览 ### 5. 初始化数据库 首次运行时,系统会自动创建SQLite数据库文件和所需的表结构。 ## 📖 核心功能说明 ### AI语义搜索 系统集成了AI语义搜索功能,可根据联系人姓名、电话、跟进记录等信息进行智能匹配: 1. **搜索原理**: - 提取联系人相关信息(姓名、电话、跟进记录) - 组合为字符串数组 - 使用AI模型进行语义匹配 - 按匹配度排序返回结果 2. **搜索优化**: - 分页加载联系人数据 - 控制AI模型上下文长度 - 智能结果排序 ### 联系人管理 1. **联系人信息**: - 基本信息(姓名、电话、备注) - 标签管理 - 跟进状态 2. **跟进记录**: - 跟进类型 - 跟进内容 - 下次联系时间 - 待办事项 ### 聊天工具模式 1. **进入聊天工具**: - 支持群聊和单聊 - 可查看群成员列表 2. **消息发送**: - 文本消息 - 图片 - 文件 - 视频 - 小程序卡片 ## ⚠️ 重要注意事项 ### 1. 配置要求 - **后端服务**:必须在本地或服务器上运行后端服务 - **AI服务**:需要配置有效的AI API密钥 - **聊天工具模式**: - 必须使用独立分包 - 必须使用 Skyline 渲染 - 必须使用 glass-easel 组件框架 ### 2. API 限制 聊天工具模式下**不支持**以下功能: - 普通转发(`open-type="share"`) - 跳转其他小程序(`navigateToMiniProgram`) - 打开公众号文章(`openOfficialAccountArticle`) - 广告组件(`ad`、`ad-custom`) ### 3. 性能优化 - 注意分包大小限制(≤ 500KB) - 及时清理无用资源 - 优化数据库查询 - 控制AI模型调用频率 ## 📚 技术栈 - **前端**:微信小程序原生框架 - **后端**:Node.js + Express - **数据库**:SQLite - **AI服务**:DeepSeek/Alibaba Cloud/Tencent Cloud - **云开发**:微信云开发 ## 🎨 界面预览 ### 首页 - 功能模块入口 - 快捷操作按钮 - 使用提示卡片 ### 联系人管理 - 联系人列表展示 - 联系人详情页面 - 跟进记录管理 ### 搜索页面 - AI语义搜索 - 搜索结果展示 - 智能排序 ### 聊天工具 - 群聊功能 - 文件分享 - 消息发送 ## 🔧 开发建议 1. **测试环境**:建议在真实设备上测试所有功能 2. **错误处理**:完善所有API调用的错误处理逻辑 3. **数据安全**:保护用户敏感信息 4. **性能优化**:注意小程序性能和加载速度 5. **用户体验**:添加适当的加载提示和错误反馈 ## 📝 开源协议 本项目采用 MIT 开源许可证,允许自由使用、修改和分发。 ### MIT License 文本 ``` MIT License Copyright (c) 2026 线索记团队 Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` ## 🤝 贡献指南 ### 如何贡献 1. **Fork 仓库** 2. **创建特性分支**:`git checkout -b feature/amazing-feature` 3. **提交更改**:`git commit -m 'Add some amazing feature'` 4. **推送到分支**:`git push origin feature/amazing-feature` 5. **创建 Pull Request** ### 贡献规范 - 遵循项目的代码风格 - 添加适当的注释 - 确保代码通过测试 - 提供清晰的提交信息 ## 🌟 开源精神 我们相信开源的力量,欢迎社区成员参与项目的开发和改进。通过协作,我们可以共同构建更好的联系人线索管理系统,为用户创造更多价值。 ## 📮 联系方式 如有问题,请提交 Issue 或联系项目维护者。 --- **注意**:本项目仅供学习参考,实际使用时请根据业务需求进行调整和完善。 ## 📋 TODO 列表 1. **相关资料的导入不支持从webview打开手机本地文件进行导入** - 原因:个人版的小程序不支持webview打开网页 - 解决方案:待研究其他导入方式