链载Ai
标题: Obsidian AI 自动生成知识图谱辅助学习 [打印本页]
作者: 链载Ai 时间: 昨天 11:46
标题: Obsidian AI 自动生成知识图谱辅助学习
ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 15px;margin-right: 8px;margin-bottom: 1em;margin-left: 8px;letter-spacing: 0.1em;color: rgb(33, 37, 41);padding: 8px 12px;background: rgba(237, 242, 255, 0.8);border-radius: 8px;">最近学习中医,发现学习新知识真的太难了。在读到某个药材、经络、方剂的时候,总想到这些内容之前在哪里读过, 然后往前翻,而且时长找不到。ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 15px;margin: 1em 8px;letter-spacing: 0.1em;color: rgb(33, 37, 41);padding: 8px 12px;background: rgba(237, 242, 255, 0.8);border-radius: 8px;">于是乎,想到了 Obsidian,想到了知识图谱,想到了 AI 自动生成知识图谱。ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 15px;margin: 1em 8px;letter-spacing: 0.1em;color: rgb(33, 37, 41);padding: 8px 12px;background: rgba(237, 242, 255, 0.8);border-radius: 8px;">整体的方案就是:
ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;padding-left: 1em;color: rgb(63, 63, 63);" class="list-paddingleft-1">1.使用 Obsidian 转录数据
2.使用 AI 自动解析成 Wiki 格式
3.使用 Obsidian 的双线连接和图谱来发辅助学习
ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 15px;margin: 1em 8px;letter-spacing: 0.1em;color: rgb(33, 37, 41);padding: 8px 12px;background: rgba(237, 242, 255, 0.8);border-radius: 8px;">先看一下效果:ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 15px;margin: 1em 8px;letter-spacing: 0.1em;color: rgb(33, 37, 41);padding: 8px 12px;background: rgba(237, 242, 255, 0.8);border-radius: 8px;">配合 Obsidian 自带的图谱功能,还可以看到漂亮的知识图谱,ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;margin: 1.5em 8px;color: rgb(63, 63, 63);">
ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;border-radius: 8px;display: block;margin: 0.1em auto 0.5em;border-width: 0px;border-style: solid;border-color: initial;height: auto !important;" title="null" src="https://api.ibos.cn/v4/weapparticle/accesswximg?aid=92880&url=aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X3BuZy9hZzdaM2RDcTdMbFpiS2Y4SWp4SHZKZFBEd2ljNUZaMklkZjZsY0NXcEx3a3dHWDlpY014NEU5TlY2bTdtc1JieDlYNzdFTzdGaG8yeGs4MFR1ck9jWnBBLzY0MD93eF9mbXQ9cG5nJmFtcA==;from=appmsg"/>ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 15px;margin: 1em 8px;letter-spacing: 0.1em;color: rgb(33, 37, 41);padding: 8px 12px;background: rgba(237, 242, 255, 0.8);border-radius: 8px;">大家可以根据自己的需要设置下节点颜色,ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;margin: 1.5em 8px;color: rgb(63, 63, 63);">
实现
原理也很简单,让 AI 把自己笔记的内容转换成需要的Wiki模式即可。
提示词
首先分享一下提示词:
你是一个 Obsidian 笔记处理助手,识别下面内容中出现的中药材、药方,添加 wiki 链接,并使用如下要求返回:
1.原文中的药材名和经脉名称用[[]]包裹,返回原文
2.请不要删除原文中出现的任何文字
下面是示例:
#原文
附子去脏腑之沉寒,浮而不降。治三阴之厥逆,走而无踪。反本固阳,童便煮用。干姜暖中,除寒邪腹痛,兼治呕吐。
#回答
[[附子]]去脏腑之沉寒,浮而不降。治三阴之厥逆,走而无踪。反本固阳,童便煮用。[[干姜]]暖中,除寒邪腹痛,兼治呕吐。
提示词很简单,直接说出来你的需求即可,然后使用少样本提示给AI举例。
模型选择
对于文本的处理,我测试下来几乎所有的模型都能很好处理,比如:
•GPT-3.5, GPT4o
•Gemini
•智谱 GLM4
•通义千问
•讯飞星火
对于 Kimi 等其他我没有 Key 的模型,我测试了下网页版,效果也挺好。
Obsidian 插件
在 Obsidian 里面实现我需求最近的方案就是写一个插件。
大家不要觉得写插件是很复杂的事情,从官网下载模板按照文档一步一步来,其实很简单。
下面给出中文和英文的教程:
•Obsidian PLugin[1]
•Obsidian 插件入门指南[2]
大家跟着来就行,我讲一下模板之外我们要做的事情。
注册指令
首先默认注册一个指令,这样就可以使用命令面板调用你的程序了。
import{Plugin}from"obsidian";
exportdefaultclassExamplePluginextendsPlugin{
asynconload(){
this.addCommand({
id:"shuyi-wikilize-zhongyi",
name:"数翼Wikilize中药",
callback
)=>{
//这里写你的代码
},
});
}
}
Obsidian 文本处理
获取当今笔记的内容可以使用editor.getValue()方法。
获取当前笔记的选中内容,可以使用editor.getSelection()方法。
AI的结果我这里就直接替换选中文字,如果没有选中文字,就追加到当前笔记,使用editor.replaceSelection即可。
//调用你的AI
constresult=awaitchat.sendMessageStream(prompt);
forawait(constitemofresult.stream){
editor.replaceSelection(item.candidates[0].content.parts[0].text)
}
认证
如果只是本地自己用不需要发布,我们可以把认证的 API Key 放到 代码里面,直接调用即可。
如果想发布,可以加一个插件配置项:
newSetting(containerEl)
.setName('YourAPIKey')
.setDesc('Yourapikey')
.addText(text=>text
.setPlaceholder('Enteryourapikey')
.setValue(this.plugin.settings.apiKey)
.onChange(async(value)=>{
this.plugin.settings.apiKey=value;
awaitthis.plugin.saveSettings();
}));
至此,我们就可以在 Obsidian 使用命令面板来调用插件,自动处理文本了。
| 欢迎光临 链载Ai (https://www.lianzai.com/) |
Powered by Discuz! X3.5 |