功能遐想:语义搜索

本贴最后更新于 586 天前,其中的信息可能已经水流花落

刚才看到一个软件功能介绍,感觉里面的 AI 功能「语义搜索」有点意思。

我觉得「语义搜索」应该是知识管理的刚需,平常不同的表述一大堆完全记不住,记不住又找不到真的很烦。

我是把思源笔记作为知识库用的,如果能在思源笔记的搜索中引入「语义搜索」的 AI 功能(搜索算法),应该会很有帮助。

这个功能应该能够在本地实现而不用联网


试一下投票功能

你想要这种功能吗?

多选 公开 永不结束 43 票
想要
83% 36 票
用不上
6% 3 票
讨论讨论
9% 4 票

  • 思源笔记

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

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

    26103 引用 • 108379 回帖
1 操作
JeffreyChen 在 2023-11-20 21:43:56 更新了该帖

相关帖子

欢迎来到这里!

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

注册 关于
请输入回帖内容 ...
  • 我觉得 D 大目前没空搞这些。obsidian 这么大的用户量都没搞这个功能。

    1 回复
  • 所以说是遐想 根本没法指望trollface

    但我觉得更多的 AI 功能应该是个人知识管理的未来必需品

  • zxhd86 1 赞同

    你是否在找:思源小助手插件?

    1 回复
  • player via Linux

    需要有价格不菲的显卡来跑大模型。每个文档都有分段做 embedding 向量。然后搜索词也做 embedding 向量。 最后做个查几个文档,与问题最相近的。这样基本就可了。能接入 openai,也可以调接口完成。

  • 话说思源小助手现在能用吗?我之前下载了,但 README 里没有教程,下载了也没有界面(设置点不开、Dock 多出两个空按钮、块菜单里也没多出什么)

    1 回复
  • 想法是好的,但是想纯本地运行就是有点异想天开了。

    思源现在估计很难入局做这种 AI 类的东西,太耗精力了,再加上 openai 的 api key 的价格也不便宜,我觉得在思源笔记的笔记功能能独当一面之前都不要为了 ai 去做过多投入。

    1 回复
  • 这种「AI」其实就是搜索算法,印象中很久以前就有了,用不上大语言模型那么高端的东西。

    刚才上 GitHub 也搜到了一些相关的项目,但我对搜索这方面不了解,所以也不好说。

  • xnyshu 1 赞同 via macOS

    这个功能颠覆了双链。更灵活,不需要费时添加链接。

    2 回复
  • 换个角度看也可以更方便建立双向链接

  • zxhd86 1 1 评论

    功能很多,所以文档天然难产,毕竟作者是写给自己用的,他不需要文档就知道怎么用,在写代码花了很大功夫的情况下对于写文档就提不起热情了……

    两个 dock,一个是 ai 对话,能根据你投喂给 ai 的块进行回答,另一个是智能推荐,其实就是语义搜索,会在你写文档的时候自动浮现相似的块。

    但是,需要提前说明的是,在本地运行这个模型,对性能的消耗不小。

    1 回复
    害,写完程序就不想写文档了,这东西真要写文档得写老长了
    leolee
  • 为了能本地运行,你投入的钱都得几万块……

    1 回复
  • leolee via Android

    不用啦,用来做 embedding 的模型,不需要推理的那么大,量化以后百来兆的模型中文嵌入效果其实就不错了

    1 回复
  • wumaojj via macOS

    颠覆不敢说,但多一个震撼性的自动助理,是很好的。

    就像现在的 AI 审片一样,可以给医生 N 多建议。

    但说,拿掉医生?

    当然,AI 的进化也可能很快打脸。

  • 调成 openAI 或者 索引占用核心改为 1,有时间得加一下星火和百度的嵌入接口

  • 类似这样?

    1 回复
  • 感觉相当不错

  • xnyshu via macOS

    大神写篇教程。

  • leolee 1 赞同 1 评论

    虽然我也顶了,不过我要先提醒一下哈,就我目前开发的经验来看,这个功能会面临几个问题:

    如果嵌入使用本地模型的话,首先即使压缩模型的大小,中文可用的 sota 模型 text-vec-chinese 也至少是百来兆的,使用 cpu 嵌入性能占用不低,使用 gpu 的话暂时我还没有找到比较好整合进思源的库(我目前用的是 transformers.js)

    然后如果使用远程的接口的话,要生成嵌入向量就需要把笔记内容发送给服务商的接口(思源小助手的嵌入选项只有本地模型和 open AI 也有这个原因),这里有可能有隐私问题。

    再就是向量的最近邻计算,我用 js 来做的话单纯的计算倒不是很慢,几十万个块也能快速出结果,但是这样做的代价是把全部向量加载进了内存,如果不这样做的化还得找一个合适的向量数据库。

    最后是向量的存储问题,如果检索粒度到单个内容块的话,尤其是对于习惯使用短文本列表的用户,特征向量文件的大小可能比笔记本身还要大很多,这也是一个问题。

    1 回复
    做进软件本体肯定就要找一下合适的向量数据库了,我这种绿皮搞法肯定是不行的
    leolee
  • 我知道这个功能非常难做好,但还是想顶帖看看有没有大佬感兴趣开发trollface

  • 顶顶贴,有人开发咩 👀

  • 这个功能很好,但是我觉得会非常难做好。不谈技术方面的问题,光逻辑层面就有一个大难题。其实视频开头也点出了这个问题了,即每个页面聚焦一个主题,搜索时以页面为基准。

    但是思源是支持 Daily Note 笔记法的,所以在一个日记文档页面中可能会有 N 个不同的主题。而在系统文章中,则是一个页面一个主题了。

    于是问题来了,语义搜索,究竟以什么粒度为基准

    如果以文档页面为基准,那会不会搜出来日记的杂讯?比如我搜一个 iPhone 的价格变化,那么有没有可能会搜出来,在一篇日记当中即写了 iPhone 性能提升,也写了新能源汽车价格变化,这样的一篇日记文档?

    如果以块为基准,那么怎么界定主题的范围?比如我有一篇探讨历年 iPhone 的价格变化的文章,但是 iPhone 和价格这两个关键词,写在了不同的两个块中,那么能搜到吗?

    当然,这只是我这个技术小白的一个疑惑,也许业内已经解决了但是我不知道,说错了还望勿怪huaji

    PS:这其实也是所有支持 Daily Note 笔记法的笔记软件难以解决的问题。搜索其实是以主题为基准的,传统笔记一篇文档就是一个主题,所以搜索相对来说好做。DN 流笔记,日常琐碎用块粒度记录,系统文章又用文档粒度记录,一个搜索方式难以兼容两种不同的书写粒度,所以搜索只有一半的功能。

    1 操作
    Reader 在 2023-12-12 11:39:20 更新了该回帖
请输入回帖内容 ...
JeffreyChen
思源笔记同步教程:https://ld246.com/article/1692089679062 爱发电:https://afdian.com/a/JeffreyChen

推荐标签 标签

  • Logseq

    Logseq 是一个隐私优先、开源的知识库工具。

    Logseq is a joyful, open-source outliner that works on top of local plain-text Markdown and Org-mode files. Use it to write, organize and share your thoughts, keep your to-do list, and build your own digital garden.

    7 引用 • 69 回帖 • 7 关注
  • HTML

    HTML5 是 HTML 下一个的主要修订版本,现在仍处于发展阶段。广义论及 HTML5 时,实际指的是包括 HTML、CSS 和 JavaScript 在内的一套技术组合。

    108 引用 • 295 回帖 • 1 关注
  • Unity

    Unity 是由 Unity Technologies 开发的一个让开发者可以轻松创建诸如 2D、3D 多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。

    25 引用 • 7 回帖 • 121 关注
  • Thymeleaf

    Thymeleaf 是一款用于渲染 XML/XHTML/HTML5 内容的模板引擎。类似 Velocity、 FreeMarker 等,它也可以轻易的与 Spring 等 Web 框架进行集成作为 Web 应用的模板引擎。与其它模板引擎相比,Thymeleaf 最大的特点是能够直接在浏览器中打开并正确显示模板页面,而不需要启动整个 Web 应用。

    11 引用 • 19 回帖 • 394 关注
  • Elasticsearch

    Elasticsearch 是一个基于 Lucene 的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于 RESTful 接口。Elasticsearch 是用 Java 开发的,并作为 Apache 许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。

    117 引用 • 99 回帖 • 196 关注
  • 996
    13 引用 • 200 回帖 • 5 关注
  • Kubernetes

    Kubernetes 是 Google 开源的一个容器编排引擎,它支持自动化部署、大规模可伸缩、应用容器化管理。

    118 引用 • 54 回帖 • 2 关注
  • WebComponents

    Web Components 是 W3C 定义的标准,它给了前端开发者扩展浏览器标签的能力,可以方便地定制可复用组件,更好的进行模块化开发,解放了前端开发者的生产力。

    1 引用 • 10 关注
  • H2

    H2 是一个开源的嵌入式数据库引擎,采用 Java 语言编写,不受平台的限制,同时 H2 提供了一个十分方便的 web 控制台用于操作和管理数据库内容。H2 还提供兼容模式,可以兼容一些主流的数据库,因此采用 H2 作为开发期的数据库非常方便。

    11 引用 • 54 回帖 • 671 关注
  • ActiveMQ

    ActiveMQ 是 Apache 旗下的一款开源消息总线系统,它完整实现了 JMS 规范,是一个企业级的消息中间件。

    19 引用 • 13 回帖 • 674 关注
  • 持续集成

    持续集成(Continuous Integration)是一种软件开发实践,即团队开发成员经常集成他们的工作,通过每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽早地发现集成错误。

    15 引用 • 7 回帖 • 1 关注
  • 新人

    让我们欢迎这对新人。哦,不好意思说错了,让我们欢迎这位新人!
    新手上路,请谨慎驾驶!

    52 引用 • 228 回帖
  • 大疆创新

    深圳市大疆创新科技有限公司(DJI-Innovations,简称 DJI),成立于 2006 年,是全球领先的无人飞行器控制系统及无人机解决方案的研发和生产商,客户遍布全球 100 多个国家。通过持续的创新,大疆致力于为无人机工业、行业用户以及专业航拍应用提供性能最强、体验最佳的革命性智能飞控产品和解决方案。

    2 引用 • 14 回帖
  • Ngui

    Ngui 是一个 GUI 的排版显示引擎和跨平台的 GUI 应用程序开发框架,基于
    Node.js / OpenGL。目标是在此基础上开发 GUI 应用程序可拥有开发 WEB 应用般简单与速度同时兼顾 Native 应用程序的性能与体验。

    7 引用 • 9 回帖 • 403 关注
  • CloudFoundry

    Cloud Foundry 是 VMware 推出的业界第一个开源 PaaS 云平台,它支持多种框架、语言、运行时环境、云平台及应用服务,使开发人员能够在几秒钟内进行应用程序的部署和扩展,无需担心任何基础架构的问题。

    5 引用 • 18 回帖 • 189 关注
  • jQuery

    jQuery 是一套跨浏览器的 JavaScript 库,强化 HTML 与 JavaScript 之间的操作。由 John Resig 在 2006 年 1 月的 BarCamp NYC 上释出第一个版本。全球约有 28% 的网站使用 jQuery,是非常受欢迎的 JavaScript 库。

    63 引用 • 134 回帖 • 734 关注
  • Kafka

    Kafka 是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。 这种动作(网页浏览,搜索和其他用户的行动)是现代系统中许多功能的基础。 这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。

    36 引用 • 35 回帖 • 2 关注
  • Linux

    Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX 和 Unix 的多用户、多任务、支持多线程和多 CPU 的操作系统。它能运行主要的 Unix 工具软件、应用程序和网络协议,并支持 32 位和 64 位硬件。Linux 继承了 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

    954 引用 • 944 回帖
  • sts
    2 引用 • 2 回帖 • 241 关注
  • V2Ray
    1 引用 • 15 回帖 • 3 关注
  • 快应用

    快应用 是基于手机硬件平台的新型应用形态;标准是由主流手机厂商组成的快应用联盟联合制定;快应用标准的诞生将在研发接口、能力接入、开发者服务等层面建设标准平台;以平台化的生态模式对个人开发者和企业开发者全品类开放。

    15 引用 • 127 回帖 • 4 关注
  • Wide

    Wide 是一款基于 Web 的 Go 语言 IDE。通过浏览器就可以进行 Go 开发,并有代码自动完成、查看表达式、编译反馈、Lint、实时结果输出等功能。

    欢迎访问我们运维的实例: https://wide.b3log.org

    30 引用 • 218 回帖 • 644 关注
  • GAE

    Google App Engine(GAE)是 Google 管理的数据中心中用于 WEB 应用程序的开发和托管的平台。2008 年 4 月 发布第一个测试版本。目前支持 Python、Java 和 Go 开发部署。全球已有数十万的开发者在其上开发了众多的应用。

    14 引用 • 42 回帖 • 822 关注
  • VirtualBox

    VirtualBox 是一款开源虚拟机软件,最早由德国 Innotek 公司开发,由 Sun Microsystems 公司出品的软件,使用 Qt 编写,在 Sun 被 Oracle 收购后正式更名成 Oracle VM VirtualBox。

    10 引用 • 2 回帖 • 17 关注
  • CAP

    CAP 指的是在一个分布式系统中, Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性),三者不可兼得。

    12 引用 • 5 回帖 • 634 关注
  • 知乎

    知乎是网络问答社区,连接各行各业的用户。用户分享着彼此的知识、经验和见解,为中文互联网源源不断地提供多种多样的信息。

    10 引用 • 66 回帖
  • 外包

    有空闲时间是接外包好呢还是学习好呢?

    26 引用 • 233 回帖 • 2 关注