一、Transformers (ONNX) 嵌入
TransformersEmbeddingModel 是一个 EmbeddingModel 实现,它使用选定的 句子转换器 在本地计算 句子嵌入。
您可以使用任何 HuggingFace 嵌入模型。
它使用 预训练 的 Transformer 模型,这些模型已序列化为 开放神经网络交换(ONNX) 格式。
应用 Deep Java Library 和 Microsoft ONNX Java 运行时库来运行 ONNX 模型并在 Java 中计算嵌入。
二、先决条件
要在 Java 中运行,我们需要将分词器和 Transformer 模型序列化为 ONNX 格式。
使用 optimum-cli 序列化 – 一种快速实现此目的的方法是使用 optimum-cli 命令行工具。以下代码片段准备了一个 Python 虚拟环境,安装所需的包,并使用 optimum-cli 序列化(例如导出)指定的模型:
python3 -m venv venv
source ./venv/bin/activate
(venv) pip install –upgrade pip
(venv) pip install optimum onnx onnxruntime sentence-transformers
(venv) optimum-cli export onnx –model sentence-transformers/all-MiniLM-L6-v2 onnx-output-folder
该代码片段将 sentence-transformers/all-MiniLM-L6-v2 转换器导出到 onnx-output-folder 文件夹中。后者包含嵌入模型使用的 tokenizer.json 和 model.onnx 文件。
您可以选择任何 HuggingFace 转换器标识符或直接提供文件路径来替代 all-MiniLM-L6-v2。
三、自动配置
Spring AI 的自动配置和 starter 模块的工件名称发生了重大变化。更多信息请参阅 升级说明。
Spring AI 为 ONNX Transformer 嵌入模型提供了 Spring Boot 自动配置。要启用它,请将以下依赖项添加到项目的 Maven pom.xml 文件中:
<dependency>
<groupId>org.springframework.ai</

