如果这个项目对你有帮助,欢迎通过爱发电支持我们的开发工作!
|
现代化的聊天界面,支持文字、图片、语音、视频等多种消息类型,完美还原聊天体验 |
支持多家 AI 服务商(智谱、DeepSeek、通义千问、Gemini 等),一键生成聊天摘要,智能提取关键信息 |
|
图表展示聊天数据,包括消息统计、活跃时段、词云分析等,深度洞察聊天习惯 |
浅色/深色模式自由切换,多种主题色可选,打造个性化的使用体验 |
|
强大的搜索功能,支持关键词、日期范围筛选,快速定位目标消息 |
支持导出聊天记录为 TXT、HTML 等格式,方便备份和分享 |
| 类别 | 技术 |
|---|---|
| 前端框架 | React 19 + TypeScript + Zustand |
| 桌面应用 | Electron 39 |
| 构建工具 | Vite + electron-builder |
| 样式方案 | SCSS + CSS Variables |
| 图表库 | ECharts |
| AI 集成 | OpenAI SDK (支持多家 AI 服务商) |
| 其他 | jieba-wasm (分词) • lucide-react (图标) • marked (Markdown) |
- Node.js: 18.x 或更高版本
- 操作系统: Windows 10/11
- 内存: 建议 4GB 以上
npm install启动开发服务器(支持热重载):
npm run dev构建生产版本:
# 构建完整安装包
npm run build
# 仅构建核心版本(不包含依赖)
npm run build:core构建产物位于 release/ 目录。
密语 CipherTalk/
├── 📂 src/ # React 前端源码
│ ├── 📂 components/ # 可复用组件
│ │ ├── ai/ # AI 相关组件
│ │ ├── Sidebar.tsx # 侧边栏
│ │ └── TitleBar.tsx # 标题栏
│ ├── 📂 pages/ # 页面组件
│ │ ├── ChatPage.tsx # 聊天页面
│ │ ├── AnalyticsPage.tsx # 数据分析页面
│ │ └── SettingsPage.tsx # 设置页面
│ ├── 📂 stores/ # Zustand 状态管理
│ ├── 📂 services/ # 前端服务层
│ ├── 📂 types/ # TypeScript 类型定义
│ ├── 📂 utils/ # 工具函数
│ └── 📂 styles/ # 全局样式
├── 📂 electron/ # Electron 主进程
│ ├── main.ts # 主进程入口
│ ├── preload.ts # 预加载脚本
│ └── 📂 services/ # 后端服务
│ ├── ai/ # AI 服务
│ ├── chatService.ts # 聊天服务
│ └── database.ts # 数据库服务
├── 📂 public/ # 静态资源
└── 📂 Docs/ # 项目文档
支持多家 AI 服务商,自动生成聊天摘要:
- 智谱 AI (GLM-4)
- DeepSeek
- 通义千问 (Qwen)
- Google Gemini
- 豆包 (Doubao)
- Kimi
- 硅基流动 (SiliconCloud)
特性:
- ✅ 自动代理检测(支持系统代理)
- ✅ 思考模式(显示 AI 推理过程)
- ✅ 自定义摘要详细程度
- ✅ 历史记录管理
- ✅ 成本统计(虚拟)
- 消息统计: 总消息数、发送/接收比例
- 时间分析: 活跃时段、聊天频率趋势
- 词云分析: 高频词汇可视化
- 群聊分析: 成员活跃度、互动关系
- 组件: 使用函数组件 + Hooks
- 命名: PascalCase (组件) / camelCase (变量、函数)
- 样式: BEM 命名规范 + SCSS
- 类型: 严格的 TypeScript 类型检查
项目使用 CSS 变量实现主题切换:
// 定义主题变量
:root {
--primary-color: #1890ff;
--bg-color: #ffffff;
--text-color: #333333;
}
[data-theme="dark"] {
--bg-color: #1a1a1a;
--text-color: #ffffff;
}使用 Zustand 进行状态管理:
// stores/chatStore.ts
export const useChatStore = create<ChatStore>((set) => ({
messages: [],
setMessages: (messages) => set({ messages }),
}))我们欢迎所有形式的贡献!无论是报告 Bug、提出新功能建议,还是提交代码改进。
- Fork 本仓库
- 创建特性分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 提交 Pull Request
| 领域 | 说明 |
|---|---|
| 🐛 Bug 修复 | 修复 UI 相关的 bug 和功能问题 |
| ✨ 功能改进 | 改进用户界面和交互体验 |
| 📝 文档完善 | 完善文档、注释和使用说明 |
| 🎨 样式优化 | 优化样式、主题和视觉效果 |
| 🌍 国际化 | 添加多语言支持 |
| 🧪 测试 | 编写和完善测试用例 |
- 遵循现有的代码风格和规范
- 提交前确保代码通过 TypeScript 类型检查
- 为新功能添加必要的注释和文档
- 保持提交信息清晰明了
本项目采用 CC BY-NC-SA 4.0 许可证
(知识共享 署名-非商业性使用-相同方式共享 4.0 国际许可协议)
| 权利 | 说明 |
|---|---|
| 📥 共享 | 复制、发行本软件 |
| 🔧 演绎 | 修改、转换或以本软件为基础进行创作 |
| 👤 个人使用 | 用于学习和个人项目 |
| 要求 | 说明 |
|---|---|
| 📝 署名 | 必须给出适当的署名,提供指向本许可协议的链接 |
| 🚫 非商业性使用 | 不得用于商业目的 |
| 🔄 相同方式共享 | 如果修改本软件,必须使用相同的许可协议 |
- 销售本软件或其修改版本
- 用于任何商业服务或产品
- 通过本软件获取商业利益
查看 LICENSE 文件了解完整协议内容。
重要提示
- 本项目仅供学习和研究使用
- 请遵守相关法律法规和用户协议
- 使用本项目产生的任何后果由用户自行承担
- 请勿将本项目用于任何非法用途
| 渠道 | 链接 |
|---|---|
| 🌐 官方网站 | 密语 CipherTalk |
| 🐛 问题反馈 | GitHub Issues |
| 💬 讨论交流 | GitHub Discussions |
| 📱 Telegram 群组 | 加入群聊 |
| ⭐ 项目主页 | GitHub Repository |
感谢所有为开源社区做出贡献的开发者们!
特别感谢:
- WeFlow - 提供了部分功能参考
- 所有贡献者 - 感谢每一位为本项目做出贡献的开发者
