txtai:开始语义搜索的最简单方法

哆啦A梦19961年前 ⋅ 3830 阅读

传统的搜索使用关键字来查找数据,语义搜索通过理解文本的语义来进行搜索,不一定是相同的关键字。这就显得更智能,关键字匹配的搜索显得更弱智。

这个库使用起来还是很简单的,pip安装包,然后调用其api即可创建语义搜索服务。关键是还有大量的例子可以参考。

pip install txtai
# Get started in a couple lines
from txtai.embeddings import Embeddings

embeddings = Embeddings({"path": "sentence-transformers/all-MiniLM-L6-v2"})
embeddings.index([(0, "Correct", None), (1, "Not what we hoped", None)])
embeddings.search("positive", 1)
#[(0, 0.2986203730106354)]

应用

txtai 的一系列示例应用程序。还提供了Hugging Face Spaces上托管版本的链接。

应用描述
基本相似度搜索基本相似性搜索示例。来自原始 txtai 演示的数据。🤗
图书搜索书籍相似度搜索应用程序。使用自然语言语句索引书籍描述和查询。仅限本地运行
图片搜索图像相似度搜索应用程序。索引图像目录并运行搜索以识别与输入查询相似的图像。🤗
总结一篇文章总结一篇文章。从网页中提取文本并构建摘要的工作流程。🤗
维基搜索维基百科搜索应用程序。查询 Wikipedia API 并总结最上面的结果。🤗
工作流生成器构建并执行 txtai 工作流程。将摘要、文本提取、转录、翻译和相似性搜索管道连接在一起,以运行统一的工作流程。🤗

大量的例子:

https://github.com/neuml/txtai/tree/master/examples

https://github.com/neuml/txtai

以前我们使用elasticsearch、lucene等开发搜索服务,这种通过关键词搜索的方式已经过时了,因为关键词匹配的搜索不够智能,且无法对非文本比如图片、视频语音等进行搜索。

未来是语义智能搜索的时代了,这种基于语义向量的搜索更强大,更智能。

txtai 加载的模型和embedding都是存储在内存中,如果索引的数据量大会不会很占用内存?

python 3.6.5下安装报错:

ModuleNotFoundError: No module named 'swig'

@mybooks  官方建议 Python 3.7+

@hue  这是一定的就像redis数据都存储在内存,具体占用内存看你数据量和vector的维度大小

@哆啦A梦1996  谢谢,改成python 3.9后再次安装错误消失

全部评论: 0

    相关推荐