公众号关注 “GitHubDaily”
设为 “星标”,每天带你逛 GitHub!
自 OpenAI 开放 GPT3.5/4 的 API 接口以来,不少人开始基于它来搭建本地知识库,并尝试用 AI 训练自己的客服系统、智能助理、法律或金融顾问等等。
但是,这里面有一个问题,就是通过 ChatGPT 返回的答案,并不一定 100% 真实可信,这对于一些对内容比较严谨的论文、行业分析报告、法律合同文件来说,用 ChatGPT 就不是最优解了。
那么,怎么做到数据真实可信,在保证隐私安全的前提下,快速提升文档检索效率呢?
这里给大家推荐一个我最近在 GitHub 看到的开源解决方案:Semantra,一款方便人们进行语义搜索的开源工具。
与传统的文本匹配方式不同的是,它能够直接使用语义查询。
GitHub:https://github.com/freedmand/semantra
使用命令行即可快速运行,快速处理本地的文本和 PDF 文件。在任务完成后,它会在本地搭建一个 Web 搜索页面,让你能在界面上对文档进行查询。
Semantra 的设计目的是方便易用,可定制,并且注重隐私。适合需要在大量文档中进行精确搜索的个人或团体,例如新闻从业者、研究员、学生或教师等。
下面说下怎么安装和使用。
安装 & 使用
首先,你需要确认电脑当前的 Python 版本 >= 3.9。
最简单的安装方式是使用 pipx。如果你还没有安装 pipx,可以运行如下命令:
python3 -m pip install --user pipx
python3 -m pipx ensurepath
打开一个新的命令行终端窗口,让 pipx
设置的新路径设置生效。然后运行:
pipx install semantra
这个命令会将 Semantra 安装到你的电脑上,并添加到环境变量中。
这时,你可以在终端中输入 semantra --help
命令,看看有没有对应的输出结果。
Semantra 的主要作用,是对存储在本地计算机上的文档(文本或 PDF 文件)进行操作,你可以选择处理单个或多个文档。
PS:所有文档在第一次运行处理时,花费的时间会比较长,但是第二次处理会快很多,按作者的说法,基本上能做到瞬间完成处理。
使用 semantra
命令,对单个文档进行处理:
semantra doc.pdf
同时处理多个文档:
semantra report.pdf book.txt
文档处理成功后,将在本地启动一个 Web 服务器。默认情况下,链接指向 localhost:8080
。
打开该链接后,便可以开始在此网页上对文档进行语义查询,并根据返回的结果,使用 +
和 -
给结果打标签,优化下一次查找。
也即是说,你用的越多,它查找的结果就越准确。
该项目对文档的处理有两种方式:「内嵌模型」和调用「OpenAI API」。默认是用的 MPNet 语言模型。
如果你电脑配置还过得去,或者想离线处理文档,可以优先选择下载大语言模型,这种方式可以最大程度保证你的隐私安全。
如果想用 OpenAI API,项目也提供了相对应的方案,不过所产生的 Token 消耗,你需要自行承担。
针对这两种方案,作者都在 GitHub 中给出了详细文档,这里便不再赘述。
具体选用哪个,我个人建议是,在这个需求上,没必要用 OpenAI,因为语义理解,大部分语言模型已经做的很不错了。
ChatGPT 的主要能力,是基于它原有知识,帮你发散思维,给你提供多种解决方案。在文档查询这件事情上,只需要 AI 能够清晰理解我们的表达,并给出明确指向即可。
自 ChatGPT 火了之后,很多人都想着把所有工作交给它来处理,但面对一些需要保证数据真实性、操作严谨性的工作,强行让 ChatGPT 来处理, 反而是一种舍本逐末的行为。
这也是 semantra
项目本次给我的最大启发。
如果你想了解更多有趣、实用的 AI 技术,以及 ChatGPT 新进展,欢迎点击下方链接,加入我们社群进一步交流探讨。
👇 每个进群的人,都会收到我们赠送的一枚 ChatGPT 账号。
社群入口:ChatGPT 社群,正式上线!
为了能够第一时间接收到文章推送,建议大家给 GitHubDaily 公众号加个星标。