Skip to content

gaopengbin/chat-ai-analyzer

Repository files navigation

Chat AI Analyzer 💬🔍

基于 RAG 的聊天记录智能分析工具,导入微信/QQ 等聊天记录后,通过 AI 进行语义搜索、数据统计和智能问答。

✨ 功能特性

  • 📥 聊天记录导入 — 支持导入 JSON 格式的聊天记录(微信/QQ 导出)
  • 🧠 RAG 智能问答 — 基于向量检索增强生成,精准回答关于聊天内容的问题
  • 🔍 语义搜索 — 通过 Embedding 向量化,支持按语义相似度搜索历史消息
  • 📊 数据统计 — 按发送者、日期等维度统计消息分布,Chart.js 可视化
  • 📂 项目管理 — 多项目支持,独立保存向量索引和对话状态(SQLite 持久化)
  • 🌙 深色模式 — 支持亮色/深色主题切换

🏗️ 技术架构

┌─────────────────────────────────┐
│         Vue 3 Frontend          │
│   (Vite + TypeScript + Chart.js)│
├─────────────────────────────────┤
│          Tauri v2 Bridge        │
├─────────────────────────────────┤
│         Rust Backend            │
│  ┌───────────┬────────────────┐ │
│  │VectorStore│ ProjectManager │ │
│  │(Cosine    │ (SQLite CRUD)  │ │
│  │ Similarity│                │ │
│  └───────────┴────────────────┘ │
│           ↕ HTTP                │
│     Ollama (LLM + Embedding)    │
└─────────────────────────────────┘

前端: Vue 3 + TypeScript + Vite + Chart.js + Lucide Icons 后端: Rust + Tauri v2 + reqwest + rusqlite AI: Ollama 本地模型(对话生成 + 文本 Embedding)

🚀 快速开始

前置要求

安装

# 安装前端依赖
npm install

# 开发模式
npm run tauri dev

# 构建桌面应用
npm run tauri build

配置 Ollama

确保 Ollama 已启动并拉取所需模型:

# 对话模型
ollama pull qwen2.5:7b

# Embedding 模型
ollama pull nomic-embed-text

📁 项目结构

chat-ai-analyzer/
├── src/                    # Vue 前端
│   ├── App.vue            # 主应用(导入/搜索/问答/统计)
│   ├── ProjectSelector.vue # 项目选择器
│   └── composables/       # 组合式函数
├── src-tauri/src/         # Rust 后端
│   ├── lib.rs             # 核心逻辑(VectorStore + RAG pipeline)
│   └── project_manager.rs # 项目持久化(SQLite)
└── package.json

🔧 核心实现

  • 向量检索: Rust 实现的 VectorStore,支持余弦相似度搜索
  • RAG Pipeline: 查询 → Embedding → 向量检索 Top-K → 构建 Prompt → LLM 生成回答
  • 项目持久化: SQLite 存储向量索引、对话历史和项目配置,支持跨会话恢复

License

MIT

About

基于 RAG 的聊天记录智能分析工具,Tauri + Vue + Rust

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors