语义自动完成
语义自动完成是一个 React 组件,它扩展了 v5 MUI 的自动完成功能,并使用一个小型、量化的机器学习(ML)模型在客户端执行语义相似度搜索。该模型只需下载一次,之后就从浏览器缓存中获取。所有功能都集成在这个 React 组件中!
演示
按含义对网页段落进行排序:
https://mihaiii.github.io/semantic-autocomplete/
如何安装
安装:
npm install --save semantic-autocomplete
然后导入:
import SemanticAutocomplete from "semantic-autocomplete";
使用方法
由于语义自动完成扩展了 MUI 的自动完成,整个 v5 MUI 自动完成 API 也适用于语义自动完成。唯一的例外是 filterOptions 属性。
如果你已经在项目中使用了 autocomplete
,只需替换标签名称即可。 🙌
查看此页面了解如何使用 MUI 的自动完成,同样适用于语义自动完成。
除了 MUI 的自动完成 API 外,还提供以下属性:
-
threshold
:如果设置了值,组件将过滤掉低于此余弦相似度值的选项。默认无值(表示不过滤,仅排序)。点击查看代码示例。 -
onResult
:选项排序/过滤完成后的回调函数,使用结果选项数组作为第一个参数。点击查看代码示例。 -
model
:Huggingface ML 模型仓库的名称。它必须包含 ONNX 嵌入模型。仓库的文件夹结构必须是 transformers.js 使用的标准结构。如果你想更改默认使用的模型,这个过滤器可能会有帮助。我为这个组件制作了一些小型模型。试试看哪个最适合你的用例。默认值:Mihaiii/Venusaur
(指向这个仓库),它加载 ONNX 量化模型,大小约 15 MB。点击这里查看代码示例 -
pipelineParams
:加载模型时传递给 transformer.js 的参数。默认值:{ pooling: "mean", normalize: true }
。更多信息请参见此页面。
致谢 / 鸣谢
- 感谢 xonova 构建了 transformers.js,提供了清晰详细的文档,始终愿意提供帮助,并在 他的 HF 账号 上提供了 大量演示。本组件的工作基于他的教程 如何使用 tranaformers.js 构建 React 组件。
- 感谢 andersonbcdefg 构建了许多小型模型,如 gte-tiny 或 bge-micro-v2,并在我制作 Venusaur 之前为我提供了一些指导。