本文记录基于本地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 搭建过程。