Skip to content

wilson534/deepme

Repository files navigation

DeepMe - 智能微信聊天分析与助手

DeepMe 是一个精美简约的本地微信聊天记录查看与智能分析工具。它基于 sjzar/chatlog 提供的API功能,深度集成了Google Gemini AI,旨在帮助用户更便捷地回顾、理解和管理自己的微信沟通。

核心功能

  • 📱 本地安全查看:微信聊天记录完全在本地处理和查看,确保数据安全。
  • 🔒 隐私保障:无需上传任何个人数据到云端。
  • 🎨 精美设计:采用苹果风格的现代、简洁用户界面,经过持续优化,提供流畅的视觉体验。包括精致的卡片、消息气泡、统一的弹窗样式以及全新的应用图标。
  • 🔍 便捷导航:在左侧列表轻松查找和选择聊天会话(最近会话、好友、群聊)。
  • 💬 消息阅读:在右侧清晰展示选中会话的聊天消息,区分发送方和接收方。
  • 📅 按日查看:支持选择特定日期范围查看聊天记录。
  • ✍️ 心灵纽带NeuraLink (AI匿名信) (基于Gemini):为指定好友和时间段的聊天记录生成一封匿名的"真心话"信件,洞察关系本质。
  • 📊 AI群聊总结 (基于Gemini):为指定群聊和时间段的聊天记录生成一份HTML格式的群聊日报,快速掌握群内动态。
  • 💡 AI知己 (Deep Chat) (基于Gemini):
    • 在欢迎界面,AI会根据用户近期的聊天模式(若已加载会话)或通用话题,主动生成富有洞察力的对话开场白卡片。
    • 用户点击感兴趣的开场白卡片后,可以进入"Deep Chat 个性化设置"弹窗,自定义AI的角色、风格以及是否引入聊天记录作为记忆参考。
    • 可以根据场景需求和消息来源(可选特定时间段、特定联系人或群聊的聊天记录)个性化配置AI知己所扮演的角色。
    • 设置完成后,即可进入专属的AI对话界面,AI会扮演用户的"第二自我",提供情感支持和思想碰撞。
  • 智能待办事项 (To-Do List) (基于Gemini):
    • 手动创建/编辑/删除:便捷管理个人待办。
    • 重要性分类:支持高、中、低优先级标记。
    • AI高情商回复建议:为待办事项相关的沟通场景(如任务安排、进度同步)生成得体的回复。
    • 从聊天中提取待办:AI自动分析选定联系人的聊天记录,识别并提取潜在的待办事项。

环境准备

在开始之前,请确保你的电脑上安装了以下软件:

  1. Go 语言环境: 用于编译和运行 sjzar/chatlog
    • macOS: brew install go
    • Windows/Linux: 请参考 Go 官网下载安装。
  2. Python 3: 用于运行 Flask 代理服务器。
    • macOS 通常自带 Python 3。
    • Windows/Linux: 请参考 Python 官网下载安装。
  3. Git: 用于克隆本项目和 sjzar/chatlog

项目设置与数据准备

  1. 克隆本项目 (如果之前克隆的是 Randy-sin/deepme,请确保更新到最新版本或使用当前工作区):

    # 假设你已在正确的项目目录中
    # git clone <your-repository-url>
    # cd deepme 
  2. 克隆 sjzar/chatlog 作为子模块或独立目录: (如果 chatlog_core 目录已存在且包含内容,则可能已是子模块或已手动克隆) 如果 chatlog_core 为空或不存在,你需要获取 sjzar/chatlog 源码:

    # 推荐作为子模块(如果你的项目是git仓库)
    # git submodule add https://github.com/sjzar/chatlog.git chatlog_core
    # git submodule update --init --recursive
    # 或者直接克隆到 chatlog_core 目录
    git clone https://github.com/sjzar/chatlog.git chatlog_core
  3. 编译 sjzar/chatlog: 进入 chatlog_core 目录并编译:

    cd chatlog_core
    go build
    cd .. 

    编译成功后,在 chatlog_core 目录下会生成一个名为 chatlog (或 chatlog.exe on Windows) 的可执行文件。

  4. 准备 chatlog 工作目录: 创建一个目录用于存放 sjzar/chatlog 解密后的数据和配置文件,例如在项目根目录下创建 chatlog_data

    mkdir chatlog_data

使用 sjzar/chatlog 解密数据并启动服务

sjzar/chatlog (参考其 GitHub README) 提供了强大的终端用户界面 (TUI) 来管理微信数据。推荐使用TUI完成所有初始设置、数据解密和启动服务。

核心操作顺序如下:

  1. 确保工作目录存在: 在项目根目录下,如果 ./chatlog_data 目录不存在,请先创建它。这个目录将用于存放 sjzar/chatlog 的配置文件和解密后的数据。

  2. 启动 chatlog TUI: 在项目根目录下,运行:

    ./chatlog_core/chatlog
  3. 在TUI中按顺序操作 (参照 sjzar/chatlog 指南):

    • a. 选择用户与配置工作目录:
      • TUI 启动后,会列出检测到的微信用户。请选择你的用户。
      • 首次运行或需要更改工作目录时: TUI 会引导你进行初始配置,或者你可以在其设置/配置菜单中找到选项来 指定工作目录 (Work Directory)。请确保将工作目录设置为我们创建的 ./chatlog_data
    • b. 获取密钥 (Key Management):
      • 在 TUI 主菜单或相关子菜单中找到 "Key管理" 的选项。
      • 选择 "通过手机辅助获取"。
      • 按照TUI界面和手机微信上的提示完成操作。
      • macOS 用户注意: sjzar/chatlog README 提示,在获取密钥前可能需要临时关闭 SIP。
    • c. 解密数据 (Data Decryption):
      • 成功获取密钥后,选择 "解密数据"。解密后的数据会存放在 ./chatlog_data 工作目录中。
    • d. 启动HTTP服务 (HTTP Server):
      • 数据解密完成后,在TUI主界面找到并选择 "HTTP服务"。
      • 启动后,服务默认运行在 http://127.0.0.1:5030。请确保此服务状态显示为 [已启动]
  4. (可选)后续通过命令行直接启动服务: 一旦通过TUI成功完成了上述所有配置和数据解密,之后可以尝试使用命令行启动服务:

    ./chatlog_core/chatlog server --work-dir ./chatlog_data

启动前端代理与AI服务

本项目的前端通过一个 Flask 代理服务器与 sjzar/chatlog API 及 Gemini API 通信。

  1. 创建并激活 Python 虚拟环境 (推荐): 在项目根目录 (deepme) 下执行:

    python3 -m venv venv_deepMe 
    source venv_deepMe/bin/activate  # macOS/Linux
    # venv_deepMe\\Scripts\\activate  # Windows
  2. 安装依赖: 激活虚拟环境后,安装所需的 Python 包:

    pip3 install Flask requests python-dotenv
  3. 配置 Gemini API Key (重要): 本项目现在从环境变量 GEMINI_API_KEY 读取您的 Google Gemini API 密钥。 为了方便本地开发,建议您在项目根目录 (deepme/) 下创建一个名为 .env 的文件 (此文件已被 .gitignore 忽略,不会提交到代码库)。 在 .env 文件中按以下格式设置您的密钥:

    GEMINI_API_KEY='YOUR_ACTUAL_GEMINI_API_KEY'

    然后,修改 proxy_server.py 以加载此 .env 文件中的环境变量。请在 proxy_server.py 的顶部(导入语句之后)添加以下代码:

    from dotenv import load_dotenv
    load_dotenv() # 这会加载 .env 文件中的变量到环境变量

    确保您的 proxy_server.py 随后使用 os.environ.get('GEMINI_API_KEY') 来获取密钥。

  4. 准备群聊总结的 Prompt 模板 (可选但推荐): AI生成群聊日报功能依赖于 prompt.md 文件中的HTML模板。请确保该文件存在且内容符合你的预期。

  5. 启动 Flask 代理服务器: 在项目根目录下(确保虚拟环境已激活):

    python3 proxy_server.py

    服务器默认运行在 http://localhost:8888 (端口可能根据实际配置变化,请留意启动日志)。

访问与使用

  1. 打开浏览器: 确保 sjzar/chatlog 的HTTP服务 (http://127.0.0.1:5030) 和 Flask 代理服务器 (http://localhost:8888) 都已成功运行。
  2. 访问应用: 在浏览器中输入 http://localhost:8888http://localhost:8888/index.html
  3. 使用功能:
    • 浏览会话列表: 左侧会显示最近的聊天会话、好友列表和群聊列表。
    • 查看聊天记录: 点击任意会话,右侧将显示该会话的聊天记录。默认显示最近7天的记录。
    • 心灵纽带NeuraLink (原AI生成匿名信):
      • 选择一个非群聊的会话。
      • 点击聊天窗口上方的 "心灵纽带NeuraLink" 按钮。
      • 选择日期范围,点击生成。
    • 生成群聊总结:
      • 选择一个群聊会话。
      • 点击聊天窗口上方的 "生成群聊日报" 按钮。
      • AI将生成一份HTML格式的日报,并在新标签页中打开 (请允许弹出窗口)。
    • AI知己 (Deep Chat):
      • 在主欢迎界面,AI知己模块会自动加载AI生成的对话开场白卡片。这些卡片可能基于你最近加载的对话内容(如果适用),或提供一些通用的、引人深思的话题。
      • 点击感兴趣的开场白卡片,会弹出"Deep Chat 个性化设置"窗口。在这里你可以描述当前的对话场景、期望AI扮演的角色和沟通风格,以及选择是否引入特定时间范围的聊天记录作为AI的记忆参考。
      • 完成设置后,点击"开始聊天",即可与你的AI知己开始对话。
    • 待办事项管理:
      • 点击右侧悬浮按钮组中的"待办事项管理"按钮(通常是列表图标)。
      • 在模态框中:
        • 查看全部/重要事项:切换标签页浏览。
        • 新建事项:填写表单,选择重要性,可获取AI高情商回复建议。
        • 从聊天提取:选择一个联系人,AI将分析最近聊天记录并尝试提取待办事项。
        • 编辑/删除/标记完成:直接在列表中操作。

技术栈

  • 前端:HTML5, CSS3, JavaScript (原生)
  • 后端代理与AI集成:Python Flask
  • 聊天记录核心服务sjzar/chatlog (Go语言实现)
  • AI模型:Google Gemini API

项目结构

  • index.html:页面主结构。
  • style.css:样式表,采用苹果设计语言。
  • script.js:前端主要交互逻辑(聊天、AI信件、群聊总结、Deep Chat等)。
  • todo.js:前端待办事项管理模块的交互逻辑。
  • proxy_server.py:Flask代理服务器,处理前端请求、调用sjzar/chatlog API及Gemini API。
  • 30751747679986_.pic_hd.jpg (或您自定义的图标文件名):应用主图标。
  • prompt.md: 用于AI生成群聊总结的HTML模板和指令。
  • chatlog_core/: (可选) sjzar/chatlog 的源码及编译产物。
  • chatlog_data/: (用户创建) sjzar/chatlog 的工作目录,存放解密后的数据和配置。
  • venv_deepMe/: (用户创建) Python虚拟环境目录。

后续计划与迭代方向

  • 性能优化:针对长聊天记录的加载和渲染进行优化。
  • 消息类型扩展:在sjzar/chatlog API支持的前提下,逐步支持图片、语音、视频等更多消息类型的展示。
  • AI交互增强
    • 提供更细致的AI参数调整选项。
    • 探索更多基于聊天内容的智能分析与提醒。
  • 数据持久化:将待办事项等用户生成数据从内存存储改为本地文件或小型数据库存储。
  • 本地搜索:实现聊天记录的本地全文搜索功能。
  • 完善错误处理:提供更友好和具体的错误提示与引导。
  • UI/UX 持续打磨
    • 根据用户反馈进一步提升用户体验。
    • 统一和优化所有模态框(如写信、群聊总结、个性化设置、待办事项等)的视觉风格和交互体验。

本 README 文档由 AI 辅助生成和更新。

About

deepme项目公开版

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors