Thanks to visit codestin.com
Credit goes to Github.com

Skip to content

qinheyi/linkmuse

Repository files navigation

LinkMuse (灵感跃迁) - Obsidian 智能关联与灵感激发插件

🌟 功能概述

LinkMuse是一款强大的Obsidian插件,旨在帮助用户发现笔记之间的潜在联系,激发创意灵感,实现知识的有机整合。通过集成多种LLM模型,为用户提供智能化的笔记关联和灵感生成服务。

核心功能

1. 智能单向关联 ✅

  • 基于用户配置的LLM进行笔记内容分析
  • 支持自定义分析笔记数量,灵活控制token消耗
  • 相比传统嵌入式模型,提供更精准的语义关联

2. 组合关联分析 🚧

  • 智能发现多个笔记之间的潜在关联 (开发中)
  • 自动分析笔记组合可能性 (开发中)

3. 多媒体内容理解 🚧

  • 支持视频内容理解与总结 (开发中)
  • 图片内容智能分析 (开发中)
  • 网站内容自动理解与总结 (开发中)

4. 灵感跃迁 🚧

  • 支持手动/随机选择多个笔记进行组合分析 (开发中)
  • 可自定义生成灵感的数量 (开发中)
  • 提供灵感评分和可行性分析 (开发中)

🎨 UI设计与用户体验

主界面组件

  • 侧边栏面板设计

    • 遵循Obsidian的视觉语言,包含标题栏、主功能区和状态区
    • 支持折叠/展开机制,节省工作区空间
    • 实现自定义主题兼容性(使用Obsidian的CSS变量)
  • 设置面板

    • 分类清晰的设置选项,包括API配置、功能设置和高级选项
    • 提供详细的配置说明和默认值建议
    • 内置模型测试功能,验证API连接状态
  • 结果展示区

    • 美观的卡片式布局展示关联和灵感结果
    • 支持不同类型内容的专属展示模板
    • 提供交互式排序和筛选功能

交互体验优化

  • 笔记选择机制

    • 支持从当前工作区多选笔记
    • 实现基于标签和文件夹的批量选择功能
    • 提供最近使用和智能推荐的快速选择列表
  • 命令与快捷键

    • 在命令面板中注册所有核心功能
    • 提供可自定义的快捷键绑定
    • 支持右键菜单集成
  • 操作反馈

    • 精确的任务进度指示器,展示处理阶段和剩余时间
    • 优雅的错误处理和重试机制
    • 使用Obsidian原生通知系统显示操作结果
  • 结果交互

    • 一键将生成内容插入当前笔记
    • 支持直接创建新笔记保存结果
    • 提供结果历史记录与收藏功能

🔧 技术架构与实现

插件基础架构

  • 核心组件

    • 利用Plugin类实现生命周期管理
    • 实现PluginSettingTab类管理配置界面
    • 使用ModalNotice等Obsidian组件构建UI
  • 状态管理

    • 使用DataAdapter接口实现配置持久化
    • 建立内存缓存机制减少重复计算
    • 实现基于Events系统的组件通信
  • 文件系统交互

    • 使用TFileTFolder接口进行文件操作
    • 通过Vault接口实现安全的文件读写
    • 实现MetadataCache接口获取笔记元数据

LLM集成实现

  • API集成层

    • 构建统一的API调用接口,支持多种LLM服务
    • 实现请求队列和速率限制机制
    • 提供错误重试和故障转移机制
  • 提示词工程

    • 设计模块化的提示词模板系统
    • 实现动态上下文组装和优化
    • 提供用户自定义提示词能力
  • 结果处理

    • 实现标准化的响应解析器
    • 构建结果缓存和增量分析系统
    • 提供高效的Markdown渲染和处理机制

性能优化策略

  • 异步处理

    • 使用Promiseasync/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             # 项目文档
  • 依赖管理
    • 核心依赖:obsidian API
    • 构建工具:esbuild
    • 开发工具:typescript

开发工作流

  • 构建与调试

    • 使用npm run dev启动热重载开发环境
    • 开发时将项目文件夹链接到Obsidian插件目录
    • 利用开发者控制台进行调试(Ctrl+Shift+I)
  • 测试策略

    • 实现单元测试覆盖核心功能
    • 设计端到端测试验证用户流程
    • 利用Obsidian沙盒库进行功能测试
  • 版本控制

    • 遵循语义化版本规范(SemVer)
    • 使用npm version自动更新版本号
    • 维护详细的更新日志(CHANGELOG.md)

发布与分发

  • 构建发布包

    • 运行npm run build生成发布文件
    • 准备main.jsmanifest.jsonstyles.css
    • 验证最低Obsidian版本兼容性
  • 社区插件提交

    • 确保符合Obsidian插件指南
    • 准备详尽的README.md文档
    • 创建GitHub发布版本并更新versions.json
    • 向Obsidian社区插件仓库提交PR
  • 更新维护

    • 实现自动检查更新机制
    • 提供平滑的升级体验,保留用户设置
    • 维护向后兼容性和数据迁移方案

🚀 当前开发进度

  • 插件基础框架搭建
  • 设置面板开发
  • AI提供商集成(SiliconFlow)
  • 智能单向关联功能
  • 多笔记选择界面基础实现
  • 火山引擎API完整集成
  • 灵感跃迁功能
  • 笔记组合关联功能
  • 多媒体内容分析功能

📦 安装与配置指南

安装方法

  • 通过社区插件安装(尚未上架)

    1. 打开Obsidian设置 → 第三方插件
    2. 关闭"安全模式"
    3. 点击"浏览"并搜索"LinkMuse"
    4. 点击安装并启用插件
  • 手动安装(推荐当前使用)

    1. 下载本仓库的最新发布版本
    2. 解压下载的文件
    3. 将解压后的文件夹复制到你的Obsidian库的插件文件夹中:
      • 路径通常为:<你的Obsidian库>/.obsidian/plugins/
    4. 重启Obsidian
    5. 进入设置 > 第三方插件,启用"LinkMuse灵感跃迁"插件
  • 通过BRAT安装(适用于测试版): 如果你已安装BRAT插件:

    1. 打开Obsidian
    2. 打开BRAT设置
    3. 点击"添加Beta插件"
    4. 输入本仓库地址
    5. 点击"添加插件"
    6. 进入设置 > 第三方插件,启用"LinkMuse灵感跃迁"

初始设置

  • API配置

    1. 获取所需的LLM API密钥
    2. 在插件设置中填入API密钥和必要参数
    3. 测试API连接是否正常
  • 可选配置

    • 默认LLM提供商:选择默认使用的AI服务提供商
    • 使用全文分析:是否使用笔记全文进行分析(可能增加API消耗)

使用指南

  • 快速入门
    1. 安装并启用插件后,点击左侧边栏的"LinkMuse"图标打开插件面板
    2. 打开任意笔记,点击"生成智能单向关联"按钮
    3. 插件将分析当前笔记内容,并在结果区域显示与其他笔记的关联信息

🤝 贡献与社区

贡献指南

  • 参与开发

    1. Fork项目仓库并创建功能分支
    2. 遵循代码风格和贡献指南
    3. 提交清晰的Pull Request并说明变更
    4. 参与代码审查和讨论
  • 问题反馈

    1. 使用GitHub Issues提交bug和功能请求
    2. 提供详细的复现步骤和环境信息
    3. 参与测试和验证修复
  • 文档改进

    1. 改进用户文档和API文档
    2. 创建教程和使用案例
    3. 翻译文档支持更多语言

社区资源

  • 支持渠道
    • GitHub讨论和问题跟踪
    • Obsidian论坛专区
    • 微信群
    • Discord社区频道

📄 许可和法律

本项目基于MIT许可证开源,允许自由使用、修改和分发,但需保留原始版权和许可声明。

使用大型语言模型API时,用户应遵守相应服务提供商的使用条款和API使用政策。

注意:本项目不收集用户笔记内容,API请求直接从用户设备发送到相应的LLM服务提供商。用户应自行评估在API请求中包含笔记内容的隐私风险。

开发者: 秦禾屹/LinkMuse灵感跃迁 联系方式: [email protected] 最后更新: 2025年3月2日

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published