如何做才可以让思源具有语义功能?这是有了大量笔记后再利用的关键。(内含建议思路)

请教大佬们:如何做才可以用语义搜索思源的笔记呀?

需求理由:

我虽然是一个外行,但我是一个几十年一直使用各种笔记学习的人,我相信我的需要也是那些真正学习者的需求。

这觉得笔记基本功能稳定后,这是最重要的了。否则积累了大量笔记后无法找到自己想到找到的资料,因为我们不可能总是准确地记住那些关键字,比如找“快乐”就可能找不到“高兴、愉快“等的资料,但其实我是想把这类资料都找到,我也不可能每次搜索时都穷尽近义词,这是我一直头痛的问题。

他人之石:

现在有专门搭设具有 RAG 功能的 AI 大模型的方法。但我不具备这种条件。

即便能搭设,思源笔记的专用格式也不一定能适用。

能实现的理由及思路:

思路一:因为思源笔记的结构有一套固定的标准,且很大程度上非常接近文本文件格式,应该容易处理成可以用来语义搜索的资料。

思路二:不依赖任何其他软件,不用增加复杂的功能,只有改变一下搜索策略就可以拥有一个由使用者自己维护的类似语义搜索功能。具体思路如下:

1.首先增加一个语义搜索库,里面可以增加任意语义定义。如,可以增加一行:”快乐 高兴 愉快......“等。

可由使用者来增加。

2.搜索时可提供两种方式,一种是现在用的搜索方式,称为精确搜索;另一种为自定义的近义搜索。

当使用自定义的近义搜索时,用户只需要提供一个关键字,如”快乐“,搜索引擎自动会在语义搜索库里找到这个关键字”快乐“所在的这一组,然后把这一组中的各个字词以”或“的关系组成正式的搜索关键字,如”快乐 or 高兴 or 愉快 or ......",这样就可以达到一种近似语义搜索的功能,虽然可能本质上不同,但却可以实实在在地解决我的难题。

而且这样做的好处是可以做到现在语义搜索所达不到的功能,就是用户自己认为的哪些不同的词可以算是同一语义范围,其实这个也很有用,有时软件强制的语义不一定完全包括用户的认知。

  • 思源笔记

    思源笔记是一款隐私优先的个人知识管理系统,支持完全离线使用,同时也支持端到端加密同步。

    融合块、大纲和双向链接,重构你的思维。

    19709 引用 • 75344 回帖 • 1 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • 现在有专门搭设具有 RAG 功能的 AI 大模型的方法。但我不具备这种条件。

    我也没有 😄

    即便能搭设,思源笔记的专用格式也不一定能适用。

    这个倒是简单,SQL 查表就行了

  • sxdtzjs

    谢谢 @JeffreyChen 的回复,“SQL 查表就行了”,是这样,简单掌握一下 SQL 查询语法的都可以做到,这种做法特别适用于那种不用标签不甘心,用标签用着用着就乱套的不归路的情况。

    如果思源笔记内置了这个功能就可以让所有用户直接使用,对那些一点也不想学代码的用户就特别友好了,也会成为思源的一个特色吧。

    或者说这只是一个小插件就能解决的问题。我没编写过思源插件,有兴趣的可以写一个,以利益有需要的人们。

    1 回复
  • @leolee 好像在干这个


    另外,回复在这里:

    image.png

    1 回复
  • 有可能这样查询出来的内容非常多,我觉得换一个思路,不是查找的思路,而是自动给笔记打 tag,类似谷歌相册可以对每个照片打各种各样的标签,然后通过标签的重组对笔记自动分类。当然这种情况下也可以查询标签,但核心是让大模型给笔记打 tag,智能 tag 分类

    1 回复
  • 笔记的目的主要还是帮助自己学习和记忆吧,

    如果是当成一个搜索数据库来用,我感觉可能还不如现在的一些 AI,比如 ChatGPT 之类的来得好用。

    2 回复
  • sxdtzjs

    谢谢!细心而真诚 ❤️

  • sxdtzjs

    谢谢回复!说说我的理解,不一定对,仅讨论。以我几十年的学习实践认为:搜索是学习中用得最多的过程,除非你学的东西非常少,或只在熟悉的领域学习或你有不忘陀罗尼。理由如下:

    1. 学习的第一次过程是输入(搜集资料)--> 整理加工--> 输出。在这个过程中就会提高自己的理解能力并形成自己的记忆,但这种记忆如果以后不进行复习应用的话就会渐渐遗忘,特别是对那些不会专门记忆只作为备忘待查用的资料,比如某月某日进行了洗衣机筒自洁、洗衣机说明书放在了哪里、某人的生日等等。
    2. 再次学习过程:当进行考试、应用或阅读等活动时,需要从自己的记忆中提取,这时我们可能会有完全的记忆,也可能有一部分记忆,也可能只有印象,甚至连印象都没有。
      所以这个学习过程就非常需要一个功能强大的查询功能,因为往往你只能试着输入关键字,如果没有语义搜索功能加持,那么你输入的这个关键字的命中率有多高就很难说了。
      所以搜索是很重要的,因为学习就是为了用,而用在你没有形成永久记忆之前搜索就是你最好的(往往是唯一的)途径,而且有许多东西是完全没有必要必须形成记忆的,这也是 GTD 的原理之一,更是思源笔记“提及”及反链等功能的必要,在我学习大量陌生知识,特别是含有大量陌生概念的知识时,思源的”提及“功能给我的帮助非常大,极大极高了我的学习效率。
  • sxdtzjs

    谢谢关注这一话题并提供解决方案。您说的也是一个思路,不过不好实现,而且即使实现了,这种搜索结果也可能更多,也可能自动标签不准确。关键是没有语义的加持标签也不灵,标签的实际作用只能作为较大的分类。

  • sxdtzjs

    谢谢!马上关注 👍

  • sxdtzjs

    至于 ai(我也经常使用),以其目前的关于这方面的能力来说:

    1.关键是 ai 搜索不到我自己的思源笔记,自己笔记里有些资料是互联网上没有的,况且学习过程中会有很多自己的理解性笔记。

    2.你可以相信而且应该使用 ai 搜索出来的链接(因为 ai 具有远超简单语义的匹配能力),但你不要随便相信 AI 通过搜索而得出来的结论,必须自己打开一些链接的内容来验证。
    根据我经常使用的经验,越对于冷门的知识,AI 越胡说得厉害。

    3.另外,多说一句,用 ai 辅助阅读长文章,如果要求不高,只是粗略了解就无所谓,但如果你真的想无误而且无漏地掌握其中的逻辑脉络和概念的话,就会让失望了,且非常失望。
    不过 AI 的辅助阅读还是有用的。一是可以利用其强大的搜索功能;二是它总结出来的东西尽管不一定正确,但可以对我们起到启发的作用。

    1 回复
  • sxdtzjs

    已关注您的话题。只是咱俩的需求不太一样。
    我很多年前也非常热衷收藏文章,特别喜欢稍后阅读之类的应用。
    不过现在我已经不怎么只收藏了,至于只留在别人网站上的文章就更少收藏了。

    1 回复
  • 这个插件的重点在与浏览网页时对和笔记中相关的内容进行再次提醒

    1 回复
  • 是的。

    你说的我都认可,AI 只适合一些粗粒度的搜索,比如一些定义明确的定义、定理之类的,

    但是它的复杂推论都是不太可信的。

    至于你想要的,我感觉似乎是在找一种方法用自己的笔记作为语料训练出一个 AI 来,

    貌似这个不太能办得到的,自己的笔记数量比较起来还是很少的。

    1 回复
  • sxdtzjs

    是的,您做的类似思源或 obsidian 等里的“提及”功能,但您的优势是不依赖本地笔记,而且直接在互联网上完成。也是非常好的想法 👍 如果有了测试版可以告诉我一下,我可以帮助以用户的角度测试。

  • sxdtzjs

    谢谢您的回复,我的想法只是想让笔记软件拥有语义搜索功能。

    最新发现:昨天下午我发现了有人在做主打这个功能的笔记软件,是一个开源项目,叫 reor。

    我随后会在这个帖子下发一下我的第一次测试。

    1 回复
  • 看了下这个 AI 笔记有点厉害啊,你可以用用看,有什么新得可以分享分享哈~

    1 回复
  • sxdtzjs 3

    关于主打语义搜索功能的 AI 智能笔记软件 Reor 的首次测试。

    最新发现:

    昨天下午发现了一个叫 reor 的笔记软件,这是一个开源项目,是可实现离线或在线的 AI 笔记应用。其主打的功能正是我几十年来一直想要的。

    这个开源项目的链接是:GitHub - reorproject/reor: Private & local AI personal knowledge management app.

    我测试的就是目前最新的版本:0.2.10

    以下引用了一个网站上的简介:

    它能自动链接相关笔记、回答笔记中的问题并提供语义搜索。所有内容都存储在本地,支持 WindowsLinuxMacOSReor 站在 OllamaTransformers.jsLanceDB 等巨头的肩膀上,使 LLM 和嵌入模型都能在本地运行。此外,还支持连接 OpenAI 或与 OpenAI 兼容的 API(如 Oobabooga)。

    以下是我在 windows10 里安装软件和本地 AI 模型后的设置和测试(只测试了语义搜索功能):

    关于 AI 模型的首次设置如下:

    LLM 用的是 mistral:latest
    Embedding Model 用的是 Xenova/bge-base-en-v1.5

    在此设置下的测试:

    1. 首先我分别写了名为“test1" "test2" "第一个双链” “第二个双链” 和“第一个链接”的 5 篇笔记,里面的测试内容如下:
    • test1 里面有“关键字:高兴"
    • test2 里有”关键字:快乐“
    • 第一个双链里有”关键字:我遣除了痛苦。“
    • 第二个双链里有”关键字:我现在的心情非常好“
    • 第一个链接里有”关键字:愉快“
    1. 在软件的互动对话框里输入我的搜索要求,结果如下 :jg1.jpg
      从结果来看:1.回答的结果与提问的技巧有关;2.这个模型的功能不是太稳定;3.并没有列出全部的相关语句,虽然我已经尽力用了近义词。
      不过让我很满意的地方是:1.它列出了那个含有”遣除痛苦“的笔记,显示出了它一定的语义理解能力;2.可以连续对话,后面的对话可以利用前面的结果,所以后面的对话输出非常流畅(第一次会慢,我的台式机是 10 年前的配置,cpu:Intel(R) Core(TM) i5-7400 CPU @ 3.00GHz 3.00 GHz 内存:16.0 GB)。

    然后我改了嵌入模型的设置,看上面没有全部列出是否与此模型有关。

    把 Embedding Model 换成 Xenova/UAE-Large-V1

    然后进行与上面过程一致的测试,结果如下:

    jg3.jpg

    测试体会

    • 这个软件的主打功能正是我想的,而且看它的介绍,它的有些功能还超出我的预期
    • 它的语义搜索功能目前还是不太完善,这大模型的本身有关,我相信以后随着 AI 模型的不断迭代肯定表现会越来越好。关键是它抓住了所谓”第二大脑“的真正痛点,真正体现出了”脑“的特点。
    • 它的笔记格式是 markdown,非常友好。
    • 目前看,它现在的核心功能已经能使用了,在我这么旧的电脑上都可以正常运行,说明一些轻量型的 LLM 在本地运行完全没有问题,这点超出了我原来的猜想。

    最后,我还是提出我发这个主题的目的:让思源笔记拥有语义搜索功能。

    1. 我是思源笔记的重度用户,几乎每天都会利用思源笔记学习数个小时,所以在思源笔记上已经累积了大量的学习笔记,不想再换笔记软件了。
    2. 思源笔记是可以拥有这个功能的,我的理由还是我在第一个帖子里说的,思源笔记的格式是有固定结构的,非常适合变成 AI 模型所要求的格式。
    3. 如果思源不做这个功能,而最终其他笔记软件做出来,肯定会导致一些有这方面需求用户的流失。而且关键是真的有这方面的需求,如果没有任何软件有此功能还能显示出思源的强大,如果以后 reor 这类软件真正成熟了,思源没有此功能话就成了缺陷。
  • sxdtzjs

    已发测试,欢迎探讨。

  • icugg6

    给每个文档都加上备注,例如一篇文档的内容是 AI 有关的,可以把 AI 有关的关键字都加上去,后期如果需要检索的话,搜索到符合一个的都可以检索的到。缺点就是太麻烦,优点就是几乎可以精确搜索到自己想要的内容

    1 回复
  • sxdtzjs

    谢谢回复。

    我目前就是类似的作法:在每个可能以后还会用到的笔记上加一行名为关键字的行,把自己能想到的相关词都写上,以后遇到当时没有想到的词,再加上。缺点就像您所说的”太麻烦“。

    这种做法与我以前用 logseq 的一个功能,好像是专门有个”别称“的属性,起到的作用类似。就是给一个笔记名称可以起其他不同的叫法,或说是等于打上了一些同义语的标签。用了思源后,没发现这个功能,但以我的理解,思源应该也有这个隐含的功能,不过我没有去研究。

    2 回复
  • 你说的是块属性里的「命名」「别名」吧?

    image.png

    1 回复
  • icugg6 1

    可以用思源里面的 AI人工智能 给文档快速生成一些 搜索关键字

    可以参考下列动图,几乎就是一键生成。并且 AI 给出的结果几乎都是可用、准确的

    PixPin20240620175220.gif

    几乎没有缺点了,目前的国产大模型 API 也非常便宜,几块钱能用很长时间。

    1 回复
    1 操作
    icugg6 在 2024-06-20 18:01:25 更新了该回帖
  • sxdtzjs

    谢谢,logseq 里的别名和您说的这个类似。logseq 里还有一个属性,就是在一个文档的首行可以放置一些词,可以帮助快速搜索,是我以前在重要文档里必做的一个动作。好多年不用了都忘记了。不得不说 logseq 也有些非常出色的功能,如它的待办功能,我到现在还没有发现能出其右者。只可惜 logseq 的更新迭代太慢了,在快速迭代方面,思源是最厉害的。所以后来放弃了 obsidian 和 logseq 转到了思源。

  • sxdtzjs

    太感谢了 👍 我抽时间按您的方法学学。遇到什么问题再请教。

请输入回帖内容 ...