ChatLab 是一个免费、开源、本地化的聊天记录深度分析应用。它通过集成的 AI Agent 和灵活的 SQL 引擎,赋予用户自由拆解、查询乃至重构个人社交数据的能力。
该项目旨在将强大的分析能力直接置于您的本地电脑,所有数据均不涉及云端上传,以充分保护您的数据隐私。目前项目处于早期迭代阶段,若您在使用中遇到任何问题,欢迎随时反馈。

核心特性
- 🚀 极致性能:采用流式计算与多线程并行架构,即便是百万级别的聊天记录,也能保证流畅的交互与实时响应。
- 🔒 保护隐私:所有聊天记录与配置文件均存储在本地数据库中,分析过程完全在本地完成(AI功能除外)。
- 🤖 智能 AI Agent:集成超过 10 种 Function Calling 工具,支持动态调度,能够深入挖掘聊天记录中的潜在信息。
- 📊 多维数据可视化:提供活跃度趋势、时间分布规律、成员互动排行等多个维度的直观分析图表。
- 🧩 格式标准化:通过强大的数据抽象层,抹平不同社交平台间的格式差异,实现对任何来源聊天记录的统一分析。
系统架构
Electron 主进程
electron/main/index.ts 负责应用生命周期管理、窗口管理及自定义协议的注册。
electron/main/ipc/ 目录按功能模块拆分 IPC 通信(如窗口、聊天、合并、AI、缓存),确保进程间数据交换的安全与可控。
electron/main/ai/ 集成了多家大语言模型(LLM),内置了 Agent 执行管道、提示词拼装逻辑以及 Function Calling 工具的注册机制。
Worker 与数据管线
electron/main/worker/ 中的 workerManager 统一调度 Worker 线程,dbWorker 负责消息路由。
worker/query/* 承担了活跃度统计、AI 语义搜索、高级分析及 SQL 实验室等查询任务;worker/import/streamImport.ts 提供了高效的流式数据导入功能。
parser/ 目录采用“嗅探 + 解析”的三层架构设计,能够在恒定内存开销下处理 GB 级别的原始日志文件。
渲染进程
- 前端采用 Vue 3 框架,配合 Nuxt UI 与 Tailwind CSS 构建可视化界面。
src/pages 存放各业务页面,src/components/analysis、src/components/charts 等目录提供了可复用的分析组件与图表组件。
src/stores 通过状态管理库 Pinia 来管理会话、布局、AI 提示词等应用状态;src/composables/useAIChat.ts 封装了完整的 AI 对话流程。
- 预加载脚本
electron/preload/index.ts 向渲染进程安全地暴露了 window.chatApi、mergeApi、aiApi、llmApi 等接口,确保了渲染进程与主进程之间通信的安全隔离。
本地运行
启动步骤
项目运行依赖于 Node.js 环境,版本要求为 v20 及以上。
# 安装依赖
pnpm install
# 启动开发服务器
pnpm run dev
若 Electron 在启动时出现异常,可尝试使用 electron-fix 工具进行修复:
npm install electron-fix -g
electron-fix start
项目地址
项目的源代码与完整文档位于:https://github.com/hellodigua/ChatLab/blob/main/README.md
|