本文展示了 txtai 如何使用 Hugging Face 的数据集库进行索引和搜索。数据集开放了对大量且不断增长的公开可用数据集列表的访问。Datasets 具有选择、转换和过滤存储在每个数据集中的数据的功能。
在此示例中,txtai 将用于索引和查询数据集。
安装依赖
安装txtai和所有依赖项。也安装datasets.
pip install txtai
pip install datasets
加载数据集并构建 txtai 索引
在此示例中,我们将加载ag_news数据集,它是新闻文章标题的集合。这只需要一行代码!
接下来,txtai 将索引数据集的前 10,000 行。句子相似度模型用于计算句子嵌入。sentence-transformers 有许多可以交换的预训练模型。
除了嵌入索引之外,我们还将创建一个 Similarity 实例来重新排列搜索命中的相关性。
from datasets import load_dataset
from txtai.embeddings import Embeddings
from txtai.pipeline import Similarity
def stream(dataset, field, limit):
index = 0
for row in dataset:
yield (index, row[field], None)
index += 1
if index >= limit:
break
def search(query):
return [(result[“score”], result[“text”]) for result in embeddings.search(query, limit=50)]
def ranksearch(query