其实是一次小尝试,全程使用
Trae
进行开发,从完全不知道如何开发插件,到在GitHub上发布项目,总共用时一个小时多一点吧。Obsidian 插件开发文档:https://luhaifeng666.github.io/obsidian-plugin-docs-zh/
项目背景
在写博客的时候,总是因为太懒直接不写摘要,或者用标题替代摘要,所以想着能不能借用现在大语言模型的文本生成能力,进行自动生成填写摘要信息。因此这个项目诞生了。
本文介绍的 AutoDescription 插件,通过集成 Kimi AI 的先进 NLP 能力,实现了 Markdown 文档的智能摘要生成,并自动注入 Front Matter 元数据。
核心实现
1. 摘要生成引擎
1 | // 核心调用逻辑 |
其实就是发送一个 API 调用请求……
我是一个大模型的高强度使用玩家,从最初的 GPT3.5 横空出世,到 DeepSeek 推理模型风靡全国,再到如今百花齐放的场面,颇有一种吾家有子初长成的喜悦。
在我的日常使用中,我发现各家的大模型在不同的场景下的能力还是有着较大差别的,本文使用 Kimi 是因为,Kimi的响应速度较快,且不受境外IP的访问限制。
https://platform.moonshot.cn/docs/guide/start-using-kimi-api
2. 元数据注入系统
1 | insertSummaryToFrontMatter(editor: Editor, summary: string) { |
功能亮点:
- 正则表达式精准匹配现有字段
- 非破坏性编辑保障文档完整性
- 支持多行摘要的 YAML 语法转义
工程化实践
配置管理系统
1 | interface AutoDescriptionSettings { |
动态界面渲染
1 | display(): void { |
扩展方向
- 多模型支持架构
1
2
3interface LLMAdapter {
generate(prompt: string, content: string): Promise<string>;
} - 本地缓存策略
1
2
3
4const cache = new LRU({
max: 100,
ttl: 3600_000 // 1小时缓存
});
完整项目代码已开源在 GitHub 仓库,欢迎 Star 和贡献代码!