03月26日
一、今日完成情况
- PPT工作完成,包括技术架构的插入、代码修改写入数据库截图,作为效果展示
- 完成excalidraw 字体切换和插入的问题,折腾了半天,还是手动配置字体把,虽然不灵活,只能将就了,都怪我不懂js语法。
- 完成服务器企业微信发送消息的AI机器人 架构设计
二、今日感悟
- 核心业务数据:
- PPT完成,来到实验室配置excalidraw插件字体。
- 今日工作总结:
- 完成PPT三页制作(技术架构图插入、代码效果截图展示),从33%推进至100%
- 解决Excalidraw字体问题,批量导入失败后采用手动配置方案(受JS语法限制)
- 完成个人学习管家项目架构设计,包括资源分工、技术方案、实施路径四个部分
- 确定轻量化技术栈:腾讯云2核4G + DeepSeek API + Obsidian(Git) + MongoDB
- 设计双知识库架构:Obsidian存储静态知识(99_AI_Knowledge_Base/)+ MongoDB存储动态对话和任务状态
- 明日工作计划:
- 服务器环境搭建:SSH连接腾讯云,创建目录结构(obsidian_vault/scripts/logs)
- 配置Git同步:配置SSH Key,Clone Obsidian仓库,编写自动同步脚本(sync_vault.sh)
- 编写Python知识检索器(retriever.py):实现第一个可独立测试的知识库读取功能
- MongoDB部署:安装MongoDB,编写测试脚本验证插入/读取对话记录功能
- 创建Obsidian知识库目录(99_AI_Knowledge_Base/),添加测试笔记并推送到GitHub
- **今日学习成长:
- 今天还是梳理了AI机器人管家的实现方案,甚至长期来看,他会越来越懂我,未来在长远一点,他就是第一个为我两声定做的操作系统,训练这样一个AI是让我操作系统更上一个层次的好方法。
三、备注
完成PPT剩余两页
- 分解第二页、第三页的核心内容
- 设计内容逻辑与第一页的衔接方案
- 确保整体PPT叙事连贯、技术表达准确
解决Excalidraw字体问题
- 方案A:分析今日失败原因,修正Base64编码脚本
- 方案B:采用单字体逐一导入(人工操作)
- 预计耗时:1-2小时
待定:
- 异步并发的学习,提上日程。
- 确定写入数据和读数据,所对应的数据库是哪几个,我接下来要从哪几个数据库当中抽数据
四、个人学习管家项目架构
| 设备 / 资源 | 最终分工 | 不使用原因 |
|---|---|---|
| 腾讯云 2 核 4G | 核心运行:脚本 / 定时任务 / Git 同步 / JSON 存储 | 主力设备,仅运行轻量服务 |
| DeepSeek API | 唯一 AI 大脑(解析 / 规划 / 反馈 / 写作) | 国内最稳,适配统一接口 |
| Obsidian+GitHub | 双向同步笔记(本地↔云端) | 数据持久化,自动同步 |
| Mac / 游戏本 | 脚本调试 / 查看笔记 | 不参与核心运行 |
| 实验室 A100 | 进阶备用(后期笔记爆炸再启用) | 现阶段完全不需要,极简优先 |
1、背景
我早就想要实现一个AI个人管家了,因为自己平时学习不够上心,而且在一个学习的项目连续性不够,断断续续的效率就很低,因此我需要有个人经常提醒我接下来做什么,这个做的事情是为接下来的项目和面试准备的,不是我实验室必须要做的事情。
因为实验室必须要做的,上课必须要交的作业,都是不需要AI提醒的,QQ群和老师会找上门来。
可是面向就业的,当前锦上添花的事情,在未来是决定我就业去向的重中之重,因此,我需要搭建未来面向就业的AI管家,可以满足我连续的,系统的学习一个项目,并且和AI反馈,AI实时修改整合我的工作量。
而且,AI需要有实时提醒我的效果,如果提醒不了我,那就没有用,而且AI的提醒需要频繁,个性化。如果我说,我当前实验室的项目是主要矛盾,AI就会知道,我当前有更重要的事情,从而提醒的频率会低一些。
2、架构设计
在需求方面的设计完成之后,我就需要设计这个产品了。
当然巧妇难为无米之炊,我需要根须当前我的资源,可以配置的AI,来选择使用什么方案。
那么主要有,AI的选择,数据库的选择,用户交互的逻辑,AI的提示词等方面。因为我访问的是API,因此,我无法使用大模型微调的方式,修改模型。因为我是轻量的云服务器,因此无法使用向量数据库来存储大量的数据,当然我自己的数据量并不大,AI可以看完的。
✅ AI 永久记住你的背景:JSON 画像每次调用 API 注入,无遗忘;
✅ 处理 Markdown 笔记:纯文本处理,无需向量库;
✅ API 模型迭代画像:不微调模型,只更新本地 JSON 文件;
✅ 双向同步:企微发消息→AI 记笔记,弥补手动记录缺失;
✅ 动态规划:读取日程 / 外部路径,实时修改学习要求;
✅ 轻量化运行:2 核 4G 服务器轻松运行,无卡顿。
3、迭代设计
需求plus:我会时不时和AI交互,因此AI是需要我知道最近在干嘛,我和AI交互的内容是应该被保存下来的,这样AI就会知道,最近我因为什么事情,导致XX 学习进度被推迟了,需要针对性的修改任务。
总结:AI需要知道我和他的对话记录,至少最近两周的对话记录是需要读取的。
需求plus:AI需要使用一个外置的学习进度,比如说代码随想录当中、学校论坛当中,有许多当前的同学java上手的路径,这个是需要AI精确读取的,因为只是依靠AI现有的储备,还是无法这么有针对性的,根据当前的就业形势和学习方法,帮我给出建议,因此是不是需要一个外置数据库。
总结:我其实需要两方面的知识库,一个是我对话记录,一个是我觉得重要的,直接放在笔记里,让AI自己去读,所以两个数据库都是需要的Obsidian的文件夹、MongoDB结合起来完成的。
4、最终敲定方案
| 工具 | 负责内容 | 性质 | 你的操作 |
|---|---|---|---|
| Obsidian (Git) | 外置知识库 + 个人学习笔记 | 静态,你是唯一编辑者 | 本地写笔记,整理资料,Push 到 GitHub |
| MongoDB | 对话历史 + 任务状态机 | 动态,程序自动读写 | 不需要你操作,Python 脚本在后台维护 |
| 核心理念: |
- Obsidian 是你的 “大脑外挂”:你觉得什么重要,就往里丢什么。
- MongoDB 是程序的 “日记本”:记录 AI 跟你说了什么,任务完成了没有。
第一步:Obsidian 仓库的目录结构设计(约定大于配置)
在你的 Obsidian 本地仓库里,专门建一个文件夹用来给 AI 看。
- Python 脚本只读取
99_AI_Knowledge_Base/目录下的.md文件。 - 你想让 AI 知道什么,就把文件(或链接)整理到这个文件夹里。
第二步:服务器上的部署与 Git 自动同步
SSH 连上腾讯云,我们把之前的目录结构细化。
cd ~/personal_ai mkdir -p {obsidian_vault,scripts,logs}
Clone 你的 Obsidian 仓库:
cd ~/personal_ai/obsidian_vault git clone git@github.com:你的用户名/你的Obsidian仓库.git . # 确保服务器能通过 SSH Key 拉取代码
编写自动拉取脚本 (scripts/sync_vault.sh):
#!/bin/bash
cd ~/personal_ai/obsidian_vault
git fetch --all
git reset --hard origin/main # 强制覆盖,保证服务器是最新的
echo "Vault synced at $(date)" >> ~/personal_ai/logs/sync_log.txt
设置 Crontab 定时同步:
- 每小时同步一次,或者你每次在本地 Push 完后手动去服务器跑一下脚本(初期开发建议手动)。
第三步:Python 知识检索器 (scripts/retriever.py)
编写python代码,设计检索规则,让python可以选择性的从Obsidian当中,获取到你想要的信息,比如说时间线安排,项目建议等等。
暴力读取 + 关键词模糊匹配 的方案可以考虑,不过这个从长计议,不需要立马想清楚,因为使用向量数据库的方式是非常简单的,使用语义相关性就可以了。
第四步:MongoDB 的极简设计(只存动态数据)
MongoDB 只需要两个 Collection,结构越简单越好。
conversations(存对话,用于上下文回忆):- 字段:
user_id,role,content,timestamp。
- 字段:
task_lifecycle(存任务状态,用于排班):- 字段:
user_id,task_desc,status,created_at,updated_at,ai_comment
- 字段:
5、简单上手路径
- 本地 Obsidian 操作
- 建好
99_AI_Knowledge_Base文件夹,放几篇测试笔记进去,Push 到 GitHub。
- 建好
- 服务器测试 Git Pull:
- 确保服务器能顺利 Clone 并看到你的笔记文件。
- 写
retriever.py:- 这是第一个可以独立测试的脚本,跑通读取本地文件并打印内容。
- 接 MongoDB:
- 写个简单的测试脚本,插入一条对话再读出来。
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 kipleyarch@gmail.com