我如何利用 AI、Rust 和 Obsidian 减少学习中的阻力。
Source: Dev.to
请提供您希望翻译的完整文本内容,我将按照要求保留源链接并将正文翻译成简体中文。
问题:文档摩擦
每位学生都知道记笔记是记忆的基础,但整理笔记的过程往往消耗的精力比学习本身还多。我发现自己陷入了一个循环:研究进行得很顺畅,却在 Obsidian 中的文档编写成为了手动瓶颈。
当我需要学习十个主题时,**“从聊天复制 → 打开 Obsidian → 创建文件 → 粘贴”**的工作流仍然太慢,结果我在笔记写到一半时就放弃了。
想法:自动化记笔记
我决定创建一个应用程序,仅凭主题名称就能生成完整的 Markdown 笔记。其结果是 noteap,一个消除手动步骤的三层系统。
架构概览
| 层 | 技术 | 责任 |
|---|---|---|
| 界面 | React Native | 简单的 UI 用于输入主题(例如 “Rust Ownership”)。 |
| 大脑 | Node.js + Gemini AI | 接收主题,使用提示工程生成包含代码示例的结构化 Markdown 文件,并将其存储在 MongoDB 中。 |
| 同步器 | Rust | 桌面客户端,拉取待处理笔记,将其转换为 .md 文件,并注入 Obsidian 的 “New Notes” 文件夹。 |
界面 (React Native)
一个最小化的应用,用户在其中输入主题。没有干扰,仅有一个输入框和一个提交按钮。
大脑 (Node.js + Gemini AI)
// Example: server endpoint handling a topic request
app.post('/generate', async (req, res) => {
const { topic } = req.body;
const prompt = `Create a detailed Markdown note about ${topic}, including code examples and sections.`;
const markdown = await gemini.generate(prompt);
const id = await db.notes.insert({ topic, markdown, status: 'pending' });
res.json({ id });
});
- 使用 Gemini AI 生成结构良好的 Markdown 文档。
- 将结果以
pending状态保存到 MongoDB 中。
同步器 (Rust)
use std::fs;
use reqwest::blocking::Client;
use serde::Deserialize;
#[derive(Deserialize)]
struct Note {
id: String,
markdown: String,
}
fn main() {
let client = Client::new();
let resp = client.get("https://my-noteap-server.com/pending")
.send()
.unwrap()
.json::>()
.unwrap();
for note in resp {
let path = format!("/path/to/Obsidian/New Notes/{}.md", note.id);
fs::write(path, note.markdown).expect("Failed to write note");
// Optionally mark as processed on the server
}
}
- 以单一二进制文件运行,并随系统启动。
- 拉取待处理笔记,直接写入 Obsidian 文件夹,确保在打开电脑时已准备好。
Deployment
Node.js 服务器在 AWS EC2 实例上的 Docker 容器中运行,为移动应用和 Rust 客户端提供一个稳定的 URL 进行通信。
研究背景
根据 Annie Piolat 等人在 《笔记记录中的认知努力》(Applied Cognitive Psychology, 2005)中的研究,笔记记录是最具挑战性的心理任务之一,需要大量的认知努力。格式化和组织笔记的步骤常常产生我所称的 文档摩擦,消耗本可以用于学习的能量。
“笔记记录是一项高度费力的活动;格式化笔记的行为可能消耗的心理资源比学习本身更多。” – Piolat, A., Olive, T., & Kellogg, R. T. (2005)
自动化的好处
- 节能: 通过去除格式化步骤,精神资源得以保存,用于主动复习和应用。
- 节省时间: 不再需要手动复制粘贴;笔记会自动出现在 Obsidian 中。
- 一致性: 每个生成的笔记遵循相同的结构,使导航和学习更容易。
结论与行动号召
自动化笔记记录工作流让我重新获得了之前因“文档摩擦”而失去的时间和精力。与其在官僚事务上耗费精力,我可以把注意力集中在审阅和实际应用上。
你是如何管理时间和笔记的? 你尝试过自动化工作流的任何环节吗?
Reference
PIOLAT, A.; OLIVE, T.; KELLOGG, R. T. Cognitive effort during note taking. Applied Cognitive Psychology, 2005.