Obsidian + Zotero + OpenCode:打造专属于自己的个人知识库
我是一个平时很喜欢记录的人,尤其在阅读的时候,总是喜欢记录一些看似有道理,实则无用的经典语录。
大二的时候,我向同学购买了二手的iPad mini,随后便喜欢上了阅读。随之而来的是,iPad成为了我很少离手的「手机」。我原本的打算是用来看医学教科书,结果因为是mini版,在看那种PDF版教科书的时候更本不好用,后来只能转向了课外电子书阅读器。当然,有了阅读器,还得配备一个记笔记的app,我当时在同学的推荐下选择了note app?结果在大四时,存了几千条笔记的note,在我毫不留情卖出ipad那一刻也瞬间消失了。
后来又在Mac上使用过Notion,但是吧没有真正用起来,因为我发现现在的知识在AI的加持下变得唾手可得,记不记录已经变得不再重要了。
在文献管理方面,我大二在导师的推荐下使用的是endnote。当时并不知道有Zotero这种东西,又是初入文献管理区的小白,只能是导师说什么是什么。但是我没有想到的是,它(endnote)是一个商业付费软件,在几经思考下,我最终无耻地选择了在淘宝上购买一个盗版的app。那时候对盗版行为没有什么感觉,只是觉得能解决自己的问题就好。现在嘛,除了开源的优质东西,我一般不往Mac和iPhone里装。
说到了开源,接下来我提到的都是免费开源的app。如果你之前阅读过我的文章,你一定看到我经常在说OpenCode。除了它和大多数闭源高质量code assistant CLI都有的功能外,我使用它的核心目在于开源,可自行定制化修改。
Obsidian虽然是个闭源项目,但它具有丰富的开源插件生态。Zotero可以说是科研工作者和具有文献管理需求者的福音,它是开源的,且具有丰富的开源插件生态,能够和各种浏览器进行联动,这意味着,你在浏览网页内容时很容易把需要的内容存档到zotero里。虽然目前是AI agent盛行的时代,浏览网页这种脏活累活不用自己出手,但要是看到不错的文章收藏起来倒是不错的习惯,如果你作为需要科研读文献的朋友,那保存文献肯定是少不了的,因为你在写文章的时候,肯定需要引用到你读的内容。
那我作为一个非科研人员,又不搞研究、写文章的人,为什么需要这些东西呢?
在我将OpenCode打造成我的医学辅助助手后,我发现它获取文献,总结输出的文章有些质量很高,可是当我关闭TUI界面后,我获取它们变得很麻烦,更别提检索了,于是我就催生了一个需求,能不能把opencode生成的东西导入到Obsidian,这个目前比较好用的笔记库中。要解决问题,明确问题是第一步,我就去找我的初级工程师聊(opencode),在plan模式下交流了半天,觉得它给出的方案不错,就放手让它去帮我执行了。凡事都不会很顺利,在对opencode批评又不情愿的鼓励中,我终于打通了Obsidian和Opencode的交互。虽然性能还有待提高,但勉强能用。
作为一个医学专业的人,不能说是人才吧,但也不能敷衍自己,所以阅读文献是我日常无聊生活的一部分,加上我使用Zotero管理文献以及有些日子了。我知道作为一个非英语专业的人,读英文专业期刊对我来说一头雾水很正常,所以顺其自然地,我给它配置了一个插件(zotero-pdf-translate)。在不出意外地情况下还真的出了点意外,因为我给它配置了moonshot-api,然后在放入提示词时不小心把${sourceText}这个参数给删除了,导致它一直在那个地方胡言乱语,经过一番排查才解决这个不该存在的问题。
我之前的想法是让opencode单独与zotero交互,但我发现zotero在与opencode交互时总是显得很笨重。所以我就在想,既然opencode和obsidian交互这么方便,那我是不是可以将我zotero中阅读文献时记录的笔记导入到obsidian,好巧不巧,这并不是我一个人这么想过,因为目前的开源社区已经存在了zotero笔记导入obsidian的插件,而且我看下载量还不少。最终,我在zotero安装了zotero-better-bibtex,它可以让我储存的每篇文献有唯一的ID号,然后又在obsidian端安装了Zotero Integration插件和配置结构化文献引用模版,安装完成后给它配置了导入操作,整个过程完成得很「顺利」。
在给zotero安装插件的时候,经常会遇到插件版本与zotero不兼容的问题,所以最好两者都选择最新版,不然你会发现你的操作常常在做无用工。
就这样看似简单的操作,你就能打通obsidian+zotero+opencode。为什么我没有详细的写一篇操作教程,因为我发现教程这种东西其实不现实,因为我的操作的环境和你操作的环境有着本质的不同,我遇到的问题你未必会遇到,我遇不到的问题可能你刚好遇到。我这篇文章主要讲了一些使用AI tools的思路,还有大致的操作流程。你如果想要知道详细的操作细节,可以把它丢给AI做为参考,让它给你补充详细的细节操作。那你可能又问,你都这么说了,我为什么不直接问AI,而要看你的文章。我原来也有这样的疑问,直到我被AI无情的忽悠,我才知道别人花大量时间验证过的方法有多大的价值。
这篇文章中的方法至少是我验证过,可以走得通的路径。你拿给AI,AI可以在这个预印本的前提下去构思,而不是「随机」给你一个方法让你去验证。当然这些细节的东西在AI强大的迭代能力下到也不值一提。
If this post was useful, share it with someone who might need it.