返回顶部
热门问答 更多热门问答
技术文章 更多技术文章

Obsidian AI 自动生成知识图谱辅助学习

[复制链接]
链载Ai 显示全部楼层 发表于 昨天 11:46 |阅读模式 打印 上一主题 下一主题

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. 1.使用 Obsidian 转录数据

  2. 2.使用 AI 自动解析成 Wiki 格式

  3. 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是专业的生成式人工智能教程平台。提供Stable Diffusion、Midjourney AI绘画教程,Suno AI音乐生成指南,以及Runway、Pika等AI视频制作与动画生成实战案例。从提示词编写到参数调整,手把手助您从入门到精通。
  • 官方手机版

  • 微信公众号

  • 商务合作

  • Powered by Discuz! X3.5 | Copyright © 2025-2025. | 链载Ai
  • 桂ICP备2024021734号 | 营业执照 | |广西笔趣文化传媒有限公司|| QQ