Obsidian + Ollama本地AI集成|把每日日记自动归类成主题笔记

一套 完整、开箱即用的 Obsidian + Ollama 本地 AI 集成方案

目标:

选中日记内容 → 一键调用本地大模型(如 Qwen)→ 自动提取主题标签 → 自动将笔记移动到对应主题文件夹

整个过程 完全离线、免费、保护隐私,适合中文用户。


📦 一、所需工具清单(全部免费)

工具 作用 安装方式
Ollama 本地运行大模型 https://ollama.com/download
Obsidian 笔记软件 https://obsidian.md
Text Generator 调用 Ollama API 生成文本 Obsidian 社区插件
QuickAdd 自动化执行流程 Obsidian 社区插件
File Manager 移动/重命名笔记文件 Obsidian 社区插件

💡 所有插件均可在 Obsidian 中直接安装。


🔧 二、详细配置步骤

第 1 步:安装并运行 Ollama + 中文模型

  1. 下载安装 Ollama(Mac/Windows/Linux)

  2. 打开终端,运行:

    bash 复制代码
    ollama run qwen:7b

    首次会自动下载模型(约 4--6GB),建议使用 Wi-Fi

    成功后你会看到 >>> 提示符,输入 exit 退出交互模式(后台服务仍在运行)

✅ 验证 API 是否可用:

bash 复制代码
curl http://localhost:11434/api/tags

应返回已安装的模型列表。


第 2 步:在 Obsidian 中安装插件

  1. 打开 Obsidian → 设置 → 社区插件 → 关闭"安全模式"
  2. 点击"浏览" → 搜索并安装以下三个插件:
    • Text Generator
    • QuickAdd
    • File Manager
  3. 全部启用

第 3 步:配置 Text Generator(连接 Ollama)

  1. 进入 设置 → Text Generator
  2. 填写以下参数:
字段
API URL http://localhost:11434/api/generate
Model qwen:7b
Temperature 0.3(降低随机性,更稳定)
System Prompt (可选) 你是一个冷静、简洁的个人知识管理助手。
  1. Prompt Template 中粘贴以下内容(用于主题提取):
text 复制代码
请从以下日记内容中提取1-2个最相关的主题类别(从以下选项中选择):
可选主题:工作、学习、健康、情绪、人际关系、创意、财务、旅行、阅读、技术

要求:
- 只返回主题名称,用英文逗号分隔
- 不要解释,不要标点,不要换行

日记内容:
"""
{{content}}
"""

✅ 示例输入:

今天和团队开了需求评审会,晚上跑步5公里,感觉精力充沛。

✅ 期望输出:

复制代码
工作,健康

第 4 步:创建 QuickAdd 自动化宏

我们将创建一个命令:"AI 分类当前笔记"

4.1 创建 Capture 模板(用于临时存储 AI 结果)
  1. 在你的 Vault 中新建文件夹:Templates/
  2. 新建笔记 AI-Result.md,内容留空(仅作占位)
4.2 配置 QuickAdd
  1. 进入 设置 → QuickAdd
  2. 点击 "Create a new Choice"
  3. 名称:AI 分类当前笔记
  4. 类型:Macro
  5. 添加以下动作(按顺序):
动作 1:调用 Text Generator
  • 选择 Run Command
  • 命令:Text Generator: Generate text from selection
  • ✅ 勾选 "Use current file as context"
动作 2:保存结果到临时文件(可选,用于调试)
  • 选择 Capture to file
  • Template file: Templates/AI-Result.md
  • Filename format: AI-Result-{``{date:YYYY-MM-DD-HHmm}}

(这一步可跳过,但建议保留以便排查问题)

动作 3:根据 AI 结果移动文件(核心!)

⚠️ 由于 QuickAdd 不能直接解析 AI 输出,我们需要一个"中间脚本"

这里提供两种方案:


🧩 方案 A:【推荐】用 File Manager + 手动确认(简单可靠)

  1. 运行 QuickAdd 后,AI 会在笔记顶部插入一行,如:

    markdown 复制代码
    <!-- AI-TOPICS: 工作,健康 -->
  2. 你手动查看后,用 File Manager 插件 快速移动:

    • 右键笔记 → File Manager → Move to → Topics/工作/

✅ 优点:安全、可控

⏱️ 耗时:每次多花 5 秒


🧩 方案 B:全自动移动(需 Python 脚本辅助)

如果你希望完全自动,可用以下 Python 脚本监听剪贴板或文件变化。

步骤:

  1. 安装 Python(3.8+)
  2. 创建脚本 auto_move_by_topic.py
python 复制代码
import os
import re
import shutil
import time
from pathlib import Path

VAULT_PATH = "/path/to/your/Vault"  # ← 改成你的 Vault 路径
TOPIC_FOLDER = "Topics"

def get_topics_from_note(file_path):
    with open(file_path, 'r', encoding='utf-8') as f:
        content = f.read()
    match = re.search(r'<!-- AI-TOPICS: ([^>]+) -->', content)
    if match:
        return [t.strip() for t in match.group(1).split(',')]
    return []

def move_note_to_topic(note_path, topics):
    for topic in topics[:1]:  # 只取第一个主题
        dest_dir = Path(VAULT_PATH) / TOPIC_FOLDER / topic
        dest_dir.mkdir(parents=True, exist_ok=True)
        shutil.move(str(note_path), dest_dir / note_path.name)
        print(f"Moved to {dest_dir}")
        break

# 监听新笔记(简化版:每10秒扫描一次 Daily 文件夹)
daily_dir = Path(VAULT_PATH) / "Daily"
while True:
    for note in daily_dir.glob("*.md"):
        if "<!-- AI-TOPICS:" in note.read_text(encoding='utf-8'):
            topics = get_topics_from_note(note)
            if topics:
                move_note_to_topic(note, topics)
    time.sleep(10)
  1. 运行脚本:python auto_move_by_topic.py

⚠️ 注意:此为简化示例,生产环境建议用更健壮的文件监听(如 watchdog 库)


📁 三、文件夹结构建议

复制代码
MyVault/
├── Daily/               ← 日记存放处(由 Daily Notes 插件生成)
├── Topics/              ← AI 自动归类的目标文件夹
│   ├── 工作/
│   ├── 学习/
│   ├── 健康/
│   └── 情绪/
├── Templates/
│   └── Daily.md         ← 日记模板
└── ...

▶️ 四、使用流程(每日操作)

  1. 写完日记(如 Daily/2025-12-23.md

  2. 选中全文(或关键段落)

  3. 右键 → QuickAdd → AI 分类当前笔记

  4. 等待 2--5 秒,AI 返回结果并插入注释:

    markdown 复制代码
    <!-- AI-TOPICS: 工作,情绪 -->
  5. (方案 A)手动用 File Manager 移动到 Topics/工作/

  6. (方案 B)脚本自动移动


🎯 五、优化建议

优化点 方法
提升中文准确率 使用 qwen:14bdeepseek-coder(如果内存够)
避免误分类 在 Prompt 中增加示例(Few-shot)
批量处理历史日记 用 Python 脚本遍历 Daily/ 文件夹,逐个调用 Ollama API
添加情绪分析 修改 Prompt,让 AI 同时返回情绪标签(如 #情绪/积极

📥 附:一键导入资源包

你可以复制以下内容,快速创建所需文件:

Templates/Daily.md

markdown 复制代码
# {{date:YYYY-MM-DD}}

## 📝 日记

## 🔍 AI 分析
<!-- AI-TOPICS:  -->

QuickAdd 配置(导出 JSON)

兼容 Obsidian 最新版(1.6+)和 QuickAdd 插件(v2.0+)
quickadd.json 配置文件

复制代码
1{
2  "choices": [
3    {
4      "name": "AI 分类当前笔记",
5      "type": "macro",
6      "macro": {
7        "steps": [
8          {
9            "id": "run-command",
10            "commandId": "text-generator:generate-from-selection"
11          },
12          {
13            "id": "append-to-file",
14            "file": "{{CURRENT_FILE}}",
15            "append": "\n<!-- AI-TOPICS: {{textGeneratorResponse}} -->\n"
16          }
17        ]
18      },
19      "id": "ai-classify-note"
20    }
21  ],
22  "inputPrompt": "",
23  "templateFolderPath": "Templates",
24  "captureTemplateFile": "",
25  "shouldCreateNoteInActiveFolder": false,
26  "shouldOpenFile": false,
27  "shouldOpenFileInNewTab": false,
28  "shouldOpenFileInPreviewMode": false,
29  "format": "YYYY-MM-DD HH:mm",
30  "dateFormat": "YYYY-MM-DD",
31  "timeFormat": "HH:mm",
32  "version": "2.0.0"
33}

🔍 配置说明
字段 作用
name: "AI 分类当前笔记" 在 QuickAdd 菜单中显示的名称
commandId: "text-generator:generate-from-selection" 调用 Text Generator 的"从选中内容生成"命令
append: <!-- AI-TOPICS: {``{textGeneratorResponse}} --> 将 AI 返回结果插入当前笔记末尾
{``{CURRENT_FILE}} QuickAdd 内置变量,指当前打开的笔记

✅ 这个配置不需要临时文件,直接把 AI 结果追加到当前笔记。


🛠️ 如何应用这个配置?

方法一:通过 Obsidian 界面(推荐,安全)

  1. 打开 Obsidian → 设置 → QuickAdd
  2. 点击右上角 ⋮ → Export settings
  3. 备份原文件
  4. 点击 Import settings,粘贴上述 JSON 内容
  5. 重启 Obsidian

方法二:手动替换文件(高级用户)

  1. 关闭 Obsidian
  2. 进入你的 Vault 目录 → .obsidian/plugins/quickadd/
  3. 编辑 data.json,替换为上述内容
  4. 重新打开 Obsidian

⚠️ 注意:路径是 data.json,不是 quickadd.json。QuickAdd 插件使用 data.json 存储配置。


▶️ 使用效果
  1. 打开一篇日记,选中一段文字(或全选)

  2. Ctrl/Cmd + P → 输入 QuickAdd: AI 分类当前笔记 → 回车

  3. 等待 2--5 秒(Ollama 处理中)

  4. 笔记末尾自动添加:

    html

    预览

    复制代码
    1<!-- AI-TOPICS: 工作,情绪 -->

🧩 后续自动化建议

有了这行注释后,你可以:

方案 A:手动移动(简单)

  • 右键笔记 → File Manager → Move to → Topics/工作/

方案 B:用 Dataview 自动聚合(无需移动)

创建一个笔记 Topics/工作.md,内容:

markdown

编辑

复制代码
1# 工作相关日记
2
3```dataview
4LIST FROM #日记
5WHERE contains(this.file.outlinks, [[工作]])
6OR contains(this.file.content, "AI-TOPICS: 工作")
7SORT file.name DESC
8```

这样即使笔记还在 Daily/,也能在"工作"页面集中查看。


🔄 如果你想"自动移动文件"

QuickAdd 本身不能解析变量内容再执行移动,但你可以:

  1. 保留上述配置(插入注释)
  2. 额外运行一个 Python 脚本 (如前文所述),定期扫描 Daily/ 文件夹
  3. 脚本读取 <!-- AI-TOPICS: ... --> 行,自动移动文件

✅ 总结

你现在拥有了:

  • 一个 完全本地、离线、免费 的 AI 日记分析系统
  • 基于 Ollama + Qwen 的强大中文理解能力
  • 通过 Obsidian 插件 实现半自动/全自动归类

相关推荐
冰西瓜6002 小时前
通俗易懂讲解马尔可夫模型
人工智能·机器学习
飞Link2 小时前
【论文笔记】A Survey on Data Synthesis and Augmentation for Large Language Models
论文阅读·人工智能·语言模型·自然语言处理
想用offer打牌2 小时前
Reasoning + Acting: ReAct范式与ReAct Agent
人工智能·后端·llm
老蒋新思维2 小时前
创客匠人分享:从“个人品牌”到“智能系统”,创始人IP如何穿越变现周期?
网络·人工智能·网络协议·tcp/ip·重构·创始人ip·创客匠人
汉克老师2 小时前
小学生0基础学大语言模型应用(第0课 课前准备)
人工智能·语言模型·自然语言处理·小学生0基础学习大语言模型
智驱力人工智能2 小时前
从合规到习惯 海上作业未穿救生衣AI识别系统的工程实践与体系价值 未穿救生衣检测 AI救生衣状态识别 边缘计算救生衣监测设备
人工智能·深度学习·opencv·算法·目标检测·边缘计算
猎板PCB黄浩2 小时前
高多层线路板工厂专业选型指南:全流程评估体系与猎板适配场景解析
大数据·人工智能·算法·pcb
悟道心2 小时前
2.自然语言处理NLP - 文本预处理
人工智能·自然语言处理
霖大侠2 小时前
Squeeze-and-Excitation Networks
人工智能·算法·机器学习·transformer