obsidian-textgenerator-plugin
Obsidian 笔记 AI 写作插件,通过模板引擎和多模型支持,在知识库中直接调用 GPT-4、C
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
Obsidian 笔记 AI 写作插件,通过模板引擎和多模型支持,在知识库中直接调用 GPT-4、C
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
清晨,一位写作者打开自己的 Obsidian 笔记库,想要为一篇关于大模型发展趋势的笔记生成一个吸引人的标题。传统方式需要切换到 ChatGPT,复制上下文,再粘贴结果。而现在,只需在 Obsidian 中按下快捷键,Text Generator 就能基于当前笔记的内容,自动生成多个标题备选——整个过程无需离开笔记界面,思路不被中断。
这就是 Text Generator 插件带来的改变:它将生成式 AI 的能力无缝嵌入 Obsidian 的知识创作工作流,让知识管理从"记录"升级为"智能创作"。
Text Generator 由独立开发者 Noureddine Haouari(GitHub @nhaouari)开发和维护,最早于 2022 年发布,至今已迭代至 0.8.x 版本。项目以 MIT 协议开源,在 GitHub 上积累了 1,967 Stars 和 166 Forks,是 Obsidian 生态中下载量最高的 AI 相关插件之一。
作者同时运营着 text-gen.com 官方网站和活跃的 Discord 社区(2,000+ 成员),形成了"开源插件 + 社区生态 + 商业服务"的完整闭环。项目 topics 覆盖 ai、llm、obsidian-plugin、pkm、writing-tool 等关键词,精准定位于"个人知识管理 + 大语言模型"的交叉领域。
Text Generator 绝非简单的"调用 API 生成文字",而是一个功能完备的 AI 写作平台。核心能力包括:
1. 多 LLM 模型支持
插件接入了几乎所有主流大模型服务,通过 LangChain 生态实现统一抽象:
用户可以为不同场景配置不同模型——日常笔记用本地 Ollama(零成本),正式长文用 GPT-4 Turbo,研究任务切换到 Claude 3.5 Sonnet。
2. 模板引擎
这是 Text Generator 最强大的功能。插件内置了 Handlebars 模板引擎,支持在笔记中嵌入变量和逻辑:
# {{title}}
> 生成时间: {{date}}
## 摘要
{{ai: summarize this text in 3 bullet points}}
## 关键观点
{{ai: extract the key insights from the following content}}
{{content}}
模板语法支持:
[[Link|Alias]]:自动获取笔记块引用内容{{#if condition}}...{{/if}}{{#each items}}...{{/each}}{{ai: prompt}}:在模板内直接调用 LLM社区还共享了大量预制模板,覆盖博客文章、产品文案、会议纪要、邮件回复等场景(见 recipes.md)。
3. 上下文管理(Context Management)
生成质量高度依赖输入上下文。Text Generator 提供了精细的上下文控制:
^block-id 语法4. 提取器生态
插件不只能读笔记文本,还支持从多种格式提取内容:
@mozilla/readability 解析 PDF 内容youtube-transcript 和 tesseract.js OCR,支持从音视频提取文本rss-parser 解析网页结构化内容5. 交互界面
插件提供了完整的图形界面:
Text Generator 采用经典的模块化插件架构,核心文件组织如下:
src/
├── main.ts # 插件入口,注册 Obsidian 生命周期
├── LLMProviders/ # LLM 适配层
│ ├── base.tsx # 抽象基类
│ ├── index.ts # 统一导出入口
│ ├── interface.ts # LLM 接口定义
│ ├── langchain/ # LangChain 适配实现
│ ├── custom/ # 自定义 LLM 接入
│ └── utils.tsx # Token 计数、超参数处理
├── services/ # 核心业务服务
│ ├── text-generator.ts # 文本生成核心逻辑(~26KB)
│ ├── pluginAPI-service.ts # 插件间 API 通信
│ ├── proxy-service.ts # 代理和请求转发
│ └── tgBlock.ts # tg-block 语法解析
├── extractors/ # 内容提取器
│ ├── audio-extractor.ts # 音频转录
│ ├── pdf-extractor.ts # PDF 解析
│ ├── rss-extractor.ts # RSS 源抓取
│ ├── youtube-extractor.ts # YouTube 字幕
│ └── web-extractor/ # 网页内容抓取
├── ui/ # React 组件界面
│ ├── settings/ # 设置面板
│ ├── playground/ # 在线调试界面
│ ├── template-input-modal/ # 模板输入弹窗
│ └── text-extractor-tool.tsx # 文本提取工具
├── models/ # 模板模型
│ └── model.ts # Handlebars 模板解析
├── scope/ # 插件功能域
│ ├── commands.ts # Obsidian 命令注册
│ ├── package-manager/ # 社区模板包管理
│ ├── content-manager.ts # 笔记内容管理
│ ├── context-manager.ts # 上下文构建
│ └── tokens.ts # Token 计数
└── helpers/
└── handlebars-helpers.ts # 自定义 Handlebars 辅助函数
构建体系:使用 esbuild 将 TypeScript 源码打包为单文件 main.js,注入 Node.js 兼容层(obsidian-alias/)以支持 Electron 环境中的 Node.js 内置模块。WASM 模块(tiktoken)通过自定义 esbuild 插件内联或延迟加载。样式使用 Tailwind CSS + PostCSS 编译。测试框架为 Vitest。
API 加密:插件支持将 API Key 通过 Electron 的 safeStorage 加密存储,保障本地密钥安全。
方式一(推荐):社区插件市场
方式二(开发版):手动 git clone → pnpm install → pnpm run build → 重启 Obsidian
方式三(本地 LLM):通过 Ollama 接入本地模型,零 API 费用
http://localhost:11434),即可使用 llama3 等本地模型Text Generator 代表着"AI 工具融入知识工作流"的一个典型方向——不是在另一个应用中问 AI,而是让 AI 能力成为已有工作流的自然延伸。在 PKM(个人知识管理)赛道持续火热的背景下,这类工具将 AI 从"问答机器人"重新定位为"写作伙伴",让知识创作者在熟悉的笔记环境中享受 AI 的生成能力。
项目的持续活跃(最近更新 2026-07-25)、活跃的 Discord 社区和丰富的模板生态,也证明了这种"工具+社区"模式在 AI 辅助写作领域的生命力。