LinkMuse是一款强大的Obsidian插件,旨在帮助用户发现笔记之间的潜在联系,激发创意灵感,实现知识的有机整合。通过集成多种LLM模型,为用户提供智能化的笔记关联和灵感生成服务。
- 基于用户配置的LLM进行笔记内容分析
- 支持自定义分析笔记数量,灵活控制token消耗
- 相比传统嵌入式模型,提供更精准的语义关联
- 智能发现多个笔记之间的潜在关联 (开发中)
- 自动分析笔记组合可能性 (开发中)
- 支持视频内容理解与总结 (开发中)
- 图片内容智能分析 (开发中)
- 网站内容自动理解与总结 (开发中)
- 支持手动/随机选择多个笔记进行组合分析 (开发中)
- 可自定义生成灵感的数量 (开发中)
- 提供灵感评分和可行性分析 (开发中)
-
侧边栏面板设计:
- 遵循Obsidian的视觉语言,包含标题栏、主功能区和状态区
- 支持折叠/展开机制,节省工作区空间
- 实现自定义主题兼容性(使用Obsidian的CSS变量)
-
设置面板:
- 分类清晰的设置选项,包括API配置、功能设置和高级选项
- 提供详细的配置说明和默认值建议
- 内置模型测试功能,验证API连接状态
-
结果展示区:
- 美观的卡片式布局展示关联和灵感结果
- 支持不同类型内容的专属展示模板
- 提供交互式排序和筛选功能
-
笔记选择机制:
- 支持从当前工作区多选笔记
- 实现基于标签和文件夹的批量选择功能
- 提供最近使用和智能推荐的快速选择列表
-
命令与快捷键:
- 在命令面板中注册所有核心功能
- 提供可自定义的快捷键绑定
- 支持右键菜单集成
-
操作反馈:
- 精确的任务进度指示器,展示处理阶段和剩余时间
- 优雅的错误处理和重试机制
- 使用Obsidian原生通知系统显示操作结果
-
结果交互:
- 一键将生成内容插入当前笔记
- 支持直接创建新笔记保存结果
- 提供结果历史记录与收藏功能
-
核心组件:
- 利用
Plugin类实现生命周期管理 - 实现
PluginSettingTab类管理配置界面 - 使用
Modal、Notice等Obsidian组件构建UI
- 利用
-
状态管理:
- 使用
DataAdapter接口实现配置持久化 - 建立内存缓存机制减少重复计算
- 实现基于
Events系统的组件通信
- 使用
-
文件系统交互:
- 使用
TFile和TFolder接口进行文件操作 - 通过
Vault接口实现安全的文件读写 - 实现
MetadataCache接口获取笔记元数据
- 使用
-
API集成层:
- 构建统一的API调用接口,支持多种LLM服务
- 实现请求队列和速率限制机制
- 提供错误重试和故障转移机制
-
提示词工程:
- 设计模块化的提示词模板系统
- 实现动态上下文组装和优化
- 提供用户自定义提示词能力
-
结果处理:
- 实现标准化的响应解析器
- 构建结果缓存和增量分析系统
- 提供高效的Markdown渲染和处理机制
-
异步处理:
- 使用
Promise和async/await实现非阻塞操作 - 实现任务分片和批量处理
- 构建后台工作队列管理长任务
- 使用
-
资源管理:
- 智能控制API请求频率和Token消耗
- 实现笔记内容的增量分析和缓存
- 优化大型笔记库的处理性能
-
内存优化:
- 实现数据流式处理避免内存溢出
- 使用懒加载模式减少初始化开销
- 提供自动垃圾回收机制
-
开发环境设置:
- 安装Node.js (v16+)和npm/yarn
- 配置TypeScript和Svelte开发环境
- 设置VSCode与推荐插件(ESLint, Prettier)
-
项目结构:
linkmuse/
├── src/ # 源代码目录
│ ├── main.ts # 插件入口点
│ ├── settings.ts # 设置面板实现
│ ├── services/ # LLM API和服务层
│ └── ui/ # 界面组件
├── esbuild.config.mjs # esbuild配置文件
├── main.js # 编译后的主文件
├── manifest.json # 插件清单
├── package.json # npm配置
├── tsconfig.json # TypeScript配置
└── README.md # 项目文档
- 依赖管理:
- 核心依赖:
obsidianAPI - 构建工具:
esbuild - 开发工具:
typescript
- 核心依赖:
-
构建与调试:
- 使用
npm run dev启动热重载开发环境 - 开发时将项目文件夹链接到Obsidian插件目录
- 利用开发者控制台进行调试(Ctrl+Shift+I)
- 使用
-
测试策略:
- 实现单元测试覆盖核心功能
- 设计端到端测试验证用户流程
- 利用Obsidian沙盒库进行功能测试
-
版本控制:
- 遵循语义化版本规范(SemVer)
- 使用
npm version自动更新版本号 - 维护详细的更新日志(CHANGELOG.md)
-
构建发布包:
- 运行
npm run build生成发布文件 - 准备
main.js、manifest.json和styles.css - 验证最低Obsidian版本兼容性
- 运行
-
社区插件提交:
- 确保符合Obsidian插件指南
- 准备详尽的README.md文档
- 创建GitHub发布版本并更新
versions.json - 向Obsidian社区插件仓库提交PR
-
更新维护:
- 实现自动检查更新机制
- 提供平滑的升级体验,保留用户设置
- 维护向后兼容性和数据迁移方案
- 插件基础框架搭建
- 设置面板开发
- AI提供商集成(SiliconFlow)
- 智能单向关联功能
- 多笔记选择界面基础实现
- 火山引擎API完整集成
- 灵感跃迁功能
- 笔记组合关联功能
- 多媒体内容分析功能
-
通过社区插件安装(尚未上架):
- 打开Obsidian设置 → 第三方插件
- 关闭"安全模式"
- 点击"浏览"并搜索"LinkMuse"
- 点击安装并启用插件
-
手动安装(推荐当前使用):
- 下载本仓库的最新发布版本
- 解压下载的文件
- 将解压后的文件夹复制到你的Obsidian库的插件文件夹中:
- 路径通常为:
<你的Obsidian库>/.obsidian/plugins/
- 路径通常为:
- 重启Obsidian
- 进入设置 > 第三方插件,启用"LinkMuse灵感跃迁"插件
-
通过BRAT安装(适用于测试版): 如果你已安装BRAT插件:
- 打开Obsidian
- 打开BRAT设置
- 点击"添加Beta插件"
- 输入本仓库地址
- 点击"添加插件"
- 进入设置 > 第三方插件,启用"LinkMuse灵感跃迁"
-
API配置:
- 获取所需的LLM API密钥
- SiliconFlow密钥:在SiliconFlow官网注册并获取API密钥
- 火山引擎密钥:在火山引擎官网注册并获取API密钥
- 在插件设置中填入API密钥和必要参数
- 测试API连接是否正常
- 获取所需的LLM API密钥
-
可选配置:
- 默认LLM提供商:选择默认使用的AI服务提供商
- 使用全文分析:是否使用笔记全文进行分析(可能增加API消耗)
- 快速入门:
- 安装并启用插件后,点击左侧边栏的"LinkMuse"图标打开插件面板
- 打开任意笔记,点击"生成智能单向关联"按钮
- 插件将分析当前笔记内容,并在结果区域显示与其他笔记的关联信息
-
参与开发:
- Fork项目仓库并创建功能分支
- 遵循代码风格和贡献指南
- 提交清晰的Pull Request并说明变更
- 参与代码审查和讨论
-
问题反馈:
- 使用GitHub Issues提交bug和功能请求
- 提供详细的复现步骤和环境信息
- 参与测试和验证修复
-
文档改进:
- 改进用户文档和API文档
- 创建教程和使用案例
- 翻译文档支持更多语言
- 支持渠道:
- GitHub讨论和问题跟踪
- Obsidian论坛专区
- 微信群
- Discord社区频道
本项目基于MIT许可证开源,允许自由使用、修改和分发,但需保留原始版权和许可声明。
使用大型语言模型API时,用户应遵守相应服务提供商的使用条款和API使用政策。
注意:本项目不收集用户笔记内容,API请求直接从用户设备发送到相应的LLM服务提供商。用户应自行评估在API请求中包含笔记内容的隐私风险。
开发者: 秦禾屹/LinkMuse灵感跃迁 联系方式: [email protected] 最后更新: 2025年3月2日