本文记录基于本地MySQL数据库personal knowledge开发个人知识库MVP的过程。项目结构包含数据库连接、Cursor对话采集、文本清洗和去重模块,支持交互菜单和命令行自动采集。需配置config.ini中的密码后运行,已验证可解析10条提问。

核心问题

如何基于本地MySQL数据库和规划文档实现个人知识库项目?


项目背景

我们需要基于本地 MySQL 数据库 personal_knowledge 搭建一个个人知识库系统。项目遵循已有的规划文档(knowledge_base_plan.md),核心功能是从 Cursor 的对话记录中自动采集提问,并存储到知识库中。

本文记录 MVP 阶段的完整实现,包括项目结构、配置方法、运行步骤和已测试结果。

项目结构

个人知识库/
├── main.py                      # 交互式入口
├── config.ini                   # 数据库 + transcripts 路径
├── requirements.txt
├── knowledge_base_plan.md
├── db/
│   ├── schema.sql               # 建表脚本(USE personal_knowledge)
│   └── connection.py            # 连接、读配置、初始化表
├── collectors/
│   ├── cursor_collector.py      # Cursor 提问采集
│   └── news_collector.py        # 资讯采集(占位)
└── utils/
    ├── text_cleaner.py          # user_query 解析、文本清洗
    └── dedupe.py                # SHA256 去重

核心功能说明

1. Cursor 对话采集

  • 扫描 agent-transcripts 目录下的主对话文件(跳过 subagents 子目录)
  • 文件路径格式为 {uuid}/{uuid}.jsonl
  • 提取 role=user 的消息,并解析 <user_query> 标签内的文本
  • 支持文件级增量(依赖 kb_source_file.last_line_no)和基于 SHA256 的内容去重

2. 数据库写入

  • 采集到的提问写入 kb_question 表
  • 同步记录导入日志到 kb_import_log,便于追溯和增量采集中断恢复

3. 运行模式

  • 交互菜单:python main.py,可选“收集 Cursor 知识”、“收集最新资讯(占位)”、“初始化数据库表”
  • 命令行自动模式:python main.py --auto cursor 或 python main.py --auto init

配置与运行

环境准备

项目依赖 Python 3.8+ 和 MySQL 数据库,需提前创建好 personal_knowledge 数据库。依赖包见 requirements.txt。

修改 config.ini

打开 config.ini,将 MySQL 密码改为你的实际密码:

[mysql]
password = your_password   ← 改成你的密码
database = personal_knowledge

如果 Cursor 工作区不在默认路径,可在 transcripts_dirs 下追加路径。

运行步骤

cd d:\python_project\个人知识库
pip install -r requirements.txt

# 1. 初始化数据库表(首次运行)
python main.py --auto init

# 2. 采集 Cursor 提问
python main.py --auto cursor

也可以进入交互菜单选择对应功能。

验证结果

在本地开发环境中,已成功解析 Cursor 的 agent-transcripts 目录,2 个主对话文件共提取出 10 条提问,且正确跳过了 subagents 目录。

若运行时遇到错误,请检查 config.ini 中的密码是否正确,以及 MySQL 服务是否启动。提供错误信息可进一步排查。

以上即为基于本地 personal_knowledge 数据库的个人知识库 MVP 搭建过程。