项目概述
Obsidian AI 智能助手插件是一个功能强大的 Obsidian 第三方插件,集成了多种 AI 模型和智能功能,支持:
● 内容生成 :基于模板和上下文的智能内容生成
● 图片生成 :支持多种 AI 图片生成模型
● 知识库管理 :智能向量化知识库,支持语义搜索
● 定时任务 :自动化内容生成和处理
● 快速生成 :自定义快捷键快速生成内容
技术特性
● 多 AI 模型支持 :OpenRouter、Deepseek、Gemini、Imagen 等
● 向量化搜索 :基于 embedding 的语义搜索
● 实时文件监控 :自动更新知识库向量
● 模块化架构 :清晰的代码结构,易于扩展
目录结构
obsidian-yuhanbo-ai-auto2.0/ ├── main.js # 插件核心代码(3909行) ├── manifest.json # 插件配置清单 ├── styles.css # UI样式定义(363行) ├── data.json # 用户数据存储 ├── 知识库自动更新说明.md # 知识库功能说明 ├── OB插件:AI插件与Templater集成实现笔记自动化处理指南.md ├── 图片生成测试说明.md # 图片生成功能说明 ├── 插件图片生成功能升级总结.md # 图片功能升级记录 └── Imagen模型修复总结.md # 模型修复记录️ 核心功能模块 1. 主插件类 (OpenRouterPlugin)文件位置: main.js:45-240
核心职责:
● 插件生命周期管理
● 设置加载和保存
● 命令注册和事件监听
● HTTP 服务器启动
关键方法:
●
onload(): 插件初始化●
onunload(): 插件卸载清理●
loadSettings(): 加载用户设置●
saveSettings(): 保存用户设置
2. AI 内容生成模块
文件位置: main.js:445-585
支持的 AI 提供商:
● Gemini : Google 的生成式 AI 模型
● Deepseek : 深度求索 AI 模型
● OpenRouter : 多模型 API 聚合平台
核心方法:
●
generateAIContent(prompt, model): 统一内容生成接口●
generateWithGemini(prompt, modelName): Gemini 模型调用●
generateWithDeepseek(prompt, model): Deepseek 模型调用
3. 图片生成模块
文件位置: main.js:500-797
支持的图片模型:
● Imagen 4.0 : Google 的图片生成模型
● Gemini Image : Gemini 的图片生成功能
● Veo : 视频生成模型
核心方法:
●
generateImage(prompt, model, options): 统一图片生成接口●
generateWithImagen(prompt, config, model): Imagen 模型调用●
generateWithGeminiImage(prompt, config, model): Gemini 图片生成●
saveGeneratedImages(images, baseName): 图片保存处理
4. 知识库管理模块
文件位置: main.js:851-1498
核心功能:
● 向量化处理 : 将文档转换为向量表示
● 语义搜索 : 基于向量相似度的内容检索
● 自动更新 : 监控文件变化,自动更新向量
● 增量处理 : 只处理变更的文件,节省 API 调用
关键方法:
●
createKnowledgeBase(config): 创建知识库●
updateKnowledgeBase(id, forceUpdate): 更新知识库●
searchKnowledgeBase(query, id, topK): 语义搜索●
processFileForKnowledgeBase(file, kb): 文件向量化处理
5. 定时任务模块
文件位置: main.js:254-443
功能特性:
● 多种调度类型 : 一次性、每日定时
● 模板支持 : 基于模板生成内容
● 文件路径解析 : 支持 Dataview 查询和文件链接
● 自动文件命名 : 支持时间戳和自定义命名
核心方法:
●
startAllScheduledTasks(): 启动所有定时任务●
startScheduledTask(task): 启动单个任务●
stopAllScheduledTasks(): 停止所有任务
6. UI 界面模块
文件位置: main.js:1822-3909
主要界面组件:
● PromptModal : 内容生成对话框
● ImageGenerationModal : 图片生成对话框
● KnowledgeBaseModal : 知识库配置对话框
● ScheduledTaskModal : 定时任务配置对话框
● OpenRouterSettingTab : 插件设置页面
![]()
运行环境 必需环境
● Obsidian : 版本 0.15.0 或更高
● 操作系统 : Windows/macOS/Linux
● 网络连接 : 用于 API 调用
可选环境
● Ollama : 本地 AI 模型服务(默认端口 11434)
● Templater 插件 : 增强模板功能
安装步骤 方法 1: 手动安装
1. 下载插件文件
# 下载必需的3个文件 - main.js - manifest.json - styles.css2. 创建插件目录
# 在Obsidian库中创建插件目录 .obsidian/plugins/obsidian-yuhanbo-ai-auto2.0/3. 复制文件
# 将下载的文件复制到插件目录 cp main.js manifest.json styles.css .obsidian/plugins/obsidian-yuhanbo-ai-auto2.0/4. 启用插件
● 重启 Obsidian
● 进入 设置 → 第三方插件
● 找到 "yuhanbo-ai-auto" 并启用
方法 2: 开发者安装
1. 克隆仓库
git clone [repository-url] cd obsidian-yuhanbo-ai-auto2.02. 链接到 Obsidian
# 创建符号链接到Obsidian插件目录 ln -s $(pwd) /path/to/your/vault/.obsidian/plugins/obsidian-yuhanbo-ai-auto2.0
⚙️ 配置说明 1. API 密钥配置
在插件设置中配置以下 API 密钥:
// 必需的API密钥 { "openrouterApiKey": "your-openrouter-api-key", "geminiApiKey": "your-gemini-api-key", "deepseekApiKey": "your-deepseek-api-key" }2. 知识库配置// 知识库配置示例 { "knowledgeBases": [{ "id": "kb-001", "name": "我的知识库", "path": "知识库", "embeddingProvider": "gemini", "embeddingModel": "text-embedding-004", "vectorPath": "知识库/.vectors", "autoUpdate": true, "updateFrequency": 10 }] }3. 图片生成配置// 图片生成设置 { "imageGenerationPath": "images", "defaultImageModel": "imagen-4.0-generate-001", "imageSize": "1K", "aspectRatio": "1:1", "numberOfImages": 1 }使用方法 1. 内容生成 快速生成1. 选中文本
2. 使用快捷键
Ctrl+Shift+G3. 选择 AI 模型
4. 输入提示词
5. 点击生成
模板生成
1. 创建模板文件
2. 在设置中配置模板路径
3. 使用命令面板调用 "AI 生成内容"
4. 选择模板和模型
2. 图片生成
1. 使用命令 "生成图片"
2. 输入图片描述
3. 选择图片模型和参数
4. 点击生成
5. 图片自动保存到指定目录
3. 知识库管理 创建知识库
1. 进入插件设置
2. 点击 "添加知识库"
3. 配置知识库参数
4. 点击创建
使用语义搜索
1. 在内容生成时选择知识库
2. 系统自动检索相关内容
3. 基于检索结果生成内容
4. 定时任务 创建定时任务
1. 进入插件设置
2. 点击 "添加定时任务"
3. 配置源文件、目标路径、模型
4. 设置执行时间
5. 保存任务
任务类型
● 一次性任务 : 指定时间执行一次
● 每日任务 : 每天定时执行
API 接口说明 1. 外部 API 调用 Gemini API
// 内容生成 POST https://generativelanguage.googleapis.com/v1beta/models/{model}:generateContent?key={apiKey} // 向量生成 POST https://generativelanguage.googleapis.com/v1beta/models/{model}:embedContent?key={apiKey} // 图片生成 POST https://generativelanguage.googleapis.com/v1beta/models/{model}:predict?key={apiKey}OpenRouter API// 内容生成 POST https://openrouter.ai/api/v1/chat/completions // 向量生成 POST https://openrouter.ai/api/v1/embeddingsDeepseek API// 内容生成 POST https://api.deepseek.com/v1/chat/completionsOllama API (本地)// 向量生成 POST http://localhost:11434/api/embeddings2. 内部 HTTP 服务插件启动本地 HTTP 服务器(端口 27123)用于模板管理:
// 获取模板列表 POST http://localhost:27123 { "action": "getTemplates", "path": "templates", "searchText": "" } // 获取模板内容 POST http://localhost:27123 { "action": "getTemplateContent", "path": "templates/example.md" }样式系统 CSS 变量使用插件使用 Obsidian 的 CSS 变量系统,确保与主题兼容:
/* 主要颜色变量 */ --background-primary: 主背景色 --background-modifier-border: 边框色 --text-normal: 普通文本色 --text-muted: 次要文本色 --interactive-accent: 强调色 --interactive-hover: 悬停色主要样式类●
.prompt-modal: 对话框样式●
.setting-item-description: 设置项描述●
.kb-list-item: 知识库列表项●
.task-item: 任务列表项
❓ 常见问题解答 Q: 如何获取 API 密钥?
A: API 密钥获取方法
● Gemini : 访问 Google AI Studio
● OpenRouter : 访问 OpenRouter
● Deepseek : 访问 Deepseek
Q: 知识库向量化失败怎么办?
A: 检查以下项目
1. 确认 API 密钥正确
2. 检查网络连接
3. 确认文件路径存在
4. 查看控制台错误信息
Q: 图片生成失败怎么办?
A: 常见解决方案
1. 检查 Gemini API 密钥
2. 确认图片保存路径存在
3. 检查提示词是否符合内容政策
4. 尝试更换图片模型
Q: 定时任务不执行怎么办?
A: 排查步骤
1. 检查任务配置是否正确
2. 确认源文件路径存在
3. 检查目标路径权限
4. 查看任务状态指示器
Q: 如何自定义模型?
A: 添加自定义模型
1. 进入插件设置
2. 点击 "添加自定义模型"
3. 输入模型标识和显示名称
4. 选择对应的提供商
5. 保存配置
Q: 如何备份插件数据?
A: 备份方法
1. 复制
data.json文件2. 备份知识库向量文件夹
3. 导出插件设置
4. 保存自定义模板
Q: 插件更新后设置丢失怎么办?
A: 恢复设置
1. 检查
data.json文件是否存在2. 重新导入备份的设置
3. 重新配置 API 密钥
4. 重建知识库索引
Q: 如何优化 API 调用成本?
A: 成本优化建议
1. 使用增量更新而非强制更新
2. 合理设置知识库更新频率
3. 选择成本较低的模型
4. 避免重复处理相同内容
开发说明 代码结构
● 模块化设计 : 功能模块相对独立
● 事件驱动 : 基于 Obsidian 事件系统
● 异步处理 : 大量使用 async/await
● 错误处理 : 完善的错误捕获和提示
扩展指南
1. 添加新的 AI 提供商 : 在生成方法中添加新的 case
2. 自定义 UI 组件 : 继承 Obsidian 的 Modal 类
3. 新增配置项 : 在 DEFAULT_SETTINGS 中添加
4. 添加新命令 : 在 onload 中注册新命令
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.