刚才看到一个软件功能介绍,感觉里面的 AI 功能「语义搜索」有点意思。
https://www.bilibili.com/video/BV1Rh411F71c/
我觉得「语义搜索」应该是知识管理的刚需,平常不同的表述一大堆完全记不住,记不住又找不到真的很烦。
我是把思源笔记作为知识库用的,如果能在思源笔记的搜索中引入「语义搜索」的 AI 功能(搜索算法),应该会很有帮助。
这个功能应该能够在本地实现而不用联网
试一下投票功能
刚才看到一个软件功能介绍,感觉里面的 AI 功能「语义搜索」有点意思。
https://www.bilibili.com/video/BV1Rh411F71c/
我觉得「语义搜索」应该是知识管理的刚需,平常不同的表述一大堆完全记不住,记不住又找不到真的很烦。
我是把思源笔记作为知识库用的,如果能在思源笔记的搜索中引入「语义搜索」的 AI 功能(搜索算法),应该会很有帮助。
这个功能应该能够在本地实现而不用联网
试一下投票功能
虽然我也顶了,不过我要先提醒一下哈,就我目前开发的经验来看,这个功能会面临几个问题:
如果嵌入使用本地模型的话,首先即使压缩模型的大小,中文可用的 sota 模型 text-vec-chinese 也至少是百来兆的,使用 cpu 嵌入性能占用不低,使用 gpu 的话暂时我还没有找到比较好整合进思源的库(我目前用的是 transformers.js)
然后如果使用远程的接口的话,要生成嵌入向量就需要把笔记内容发送给服务商的接口(思源小助手的嵌入选项只有本地模型和 open AI 也有这个原因),这里有可能有隐私问题。
再就是向量的最近邻计算,我用 js 来做的话单纯的计算倒不是很慢,几十万个块也能快速出结果,但是这样做的代价是把全部向量加载进了内存,如果不这样做的化还得找一个合适的向量数据库。
最后是向量的存储问题,如果检索粒度到单个内容块的话,尤其是对于习惯使用短文本列表的用户,特征向量文件的大小可能比笔记本身还要大很多,这也是一个问题。
这个功能很好,但是我觉得会非常难做好。不谈技术方面的问题,光逻辑层面就有一个大难题。其实视频开头也点出了这个问题了,即每个页面聚焦一个主题,搜索时以页面为基准。
但是思源是支持 Daily Note 笔记法的,所以在一个日记文档页面中可能会有 N 个不同的主题。而在系统文章中,则是一个页面一个主题了。
于是问题来了,语义搜索,究竟以什么粒度为基准?
如果以文档页面为基准,那会不会搜出来日记的杂讯?比如我搜一个 iPhone 的价格变化,那么有没有可能会搜出来,在一篇日记当中即写了 iPhone 性能提升,也写了新能源汽车价格变化,这样的一篇日记文档?
如果以块为基准,那么怎么界定主题的范围?比如我有一篇探讨历年 iPhone 的价格变化的文章,但是 iPhone 和价格这两个关键词,写在了不同的两个块中,那么能搜到吗?
当然,这只是我这个技术小白的一个疑惑,也许业内已经解决了但是我不知道,说错了还望勿怪
PS:这其实也是所有支持 Daily Note 笔记法的笔记软件难以解决的问题。搜索其实是以主题为基准的,传统笔记一篇文档就是一个主题,所以搜索相对来说好做。DN 流笔记,日常琐碎用块粒度记录,系统文章又用文档粒度记录,一个搜索方式难以兼容两种不同的书写粒度,所以搜索只有一半的功能。
MongoDB(来自于英文单词“Humongous”,中文含义为“庞大”)是一个基于分布式文件存储的数据库,由 C++ 语言编写。旨在为应用提供可扩展的高性能数据存储解决方案。MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似 JSON 的 BSON 格式,因此可以存储比较复杂的数据类型。
宋真宗赵恒曾经说过:“书中自有黄金屋,书中自有颜如玉。”
Open Source, Open Mind, Open Sight, Open Future!
jQuery 是一套跨浏览器的 JavaScript 库,强化 HTML 与 JavaScript 之间的操作。由 John Resig 在 2006 年 1 月的 BarCamp NYC 上释出第一个版本。全球约有 28% 的网站使用 jQuery,是非常受欢迎的 JavaScript 库。
uTools 是一个极简、插件化、跨平台的现代桌面软件。通过自由选配丰富的插件,打造你得心应手的工具集合。
PWA(Progressive Web App)是 Google 在 2015 年提出、2016 年 6 月开始推广的项目。它结合了一系列现代 Web 技术,在网页应用中实现和原生应用相近的用户体验。
Android 是一种以 Linux 为基础的开放源码操作系统,主要使用于便携设备。2005 年由 Google 收购注资,并拉拢多家制造商组成开放手机联盟开发改良,逐渐扩展到到平板电脑及其他领域上。
应用程序编程接口(Application Programming Interface)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。
京东是中国最大的自营式电商企业,2015 年第一季度在中国自营式 B2C 电商市场的占有率为 56.3%。2014 年 5 月,京东在美国纳斯达克证券交易所正式挂牌上市(股票代码:JD),是中国第一个成功赴美上市的大型综合型电商平台,与腾讯、百度等中国互联网巨头共同跻身全球前十大互联网公司排行榜。
禅道是一款国产的开源项目管理软件,她的核心管理思想基于敏捷方法 scrum,内置了产品管理和项目管理,同时又根据国内研发现状补充了测试管理、计划管理、发布管理、文档管理、事务管理等功能,在一个软件中就可以将软件研发中的需求、任务、bug、用例、计划、发布等要素有序的跟踪管理起来,完整地覆盖了项目管理的核心流程。
gzip (GNU zip)是 GNU 自由软件的文件压缩程序。我们在 Linux 中经常会用到后缀为 .gz 的文件,它们就是 Gzip 格式的。现今已经成为互联网上使用非常普遍的一种数据压缩格式,或者说一种文件格式。
Mozilla Firefox 中文俗称“火狐”(正式缩写为 Fx 或 fx,非正式缩写为 FF),是一个开源的网页浏览器,使用 Gecko 排版引擎,支持多种操作系统,如 Windows、OSX 及 Linux 等。
Ruby 是一种开源的面向对象程序设计的服务器端脚本语言,在 20 世纪 90 年代中期由日本的松本行弘(まつもとゆきひろ/Yukihiro Matsumoto)设计并开发。在 Ruby 社区,松本也被称为马茨(Matz)。
Laravel 是一套简洁、优雅的 PHP Web 开发框架。它采用 MVC 设计,是一款崇尚开发效率的全栈框架。
红帽提供的 PaaS 云,支持多种编程语言,为开发人员提供了更为灵活的框架、存储选择。
Communication channel for makers and users.
服务器,也称伺服器,是提供计算服务的设备。由于服务器需要响应服务请求,并进行处理,因此一般来说服务器应具备承担服务并且保障服务的能力。
Electron 基于 Chromium 和 Node.js,让你可以使用 HTML、CSS 和 JavaScript 构建应用。它是一个由 GitHub 及众多贡献者组成的活跃社区共同维护的开源项目,兼容 Mac、Windows 和 Linux,它构建的应用可在这三个操作系统上面运行。
DNSPod 建立于 2006 年 3 月份,是一款免费智能 DNS 产品。 DNSPod 可以为同时有电信、网通、教育网服务器的网站提供智能的解析,让电信用户访问电信的服务器,网通的用户访问网通的服务器,教育网的用户访问教育网的服务器,达到互联互通的效果。
Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的。Java 技术具有卓越的通用性、高效性、平台移植性和安全性。
我来 wolai:不仅仅是未来的云端笔记!
区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。所谓共识机制是区块链系统中实现不同节点之间建立信任、获取权益的数学算法 。
子曰:“工欲善其事,必先利其器。”
你创造的作品可能会帮助到很多人,如果是开源项目的话就更赞了!
Hibernate 是一个开放源代码的对象关系映射框架,它对 JDBC 进行了非常轻量级的对象封装,使得 Java 程序员可以随心所欲的使用对象编程思维来操纵数据库。
SQL Server 是由 [微软] 开发和推广的关系数据库管理系统(DBMS),它最初是由 微软、Sybase 和 Ashton-Tate 三家公司共同开发的,并于 1988 年推出了第一个 OS/2 版本。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于